전체 글
-
Java 15. Text BlockBackEnd/Java 2024. 12. 7. 09:00
Text Block Java 13 preview, Java 15 정식 기능으로 출시된 Text Block은 큰따옴표(") 3개를 사용해서 여러 줄에 걸친 문자열을 만들기 위한 새로운 Java 문법입니다.public class Main { public static void main(String[] args) { String str1 = "A\nBC\nDEF"; String str2 = "A\n" + "BC\n" + "DEF"; // Text Block String str3 = """ A BC DEF """; System.out.println(str3); }} Text Block 특성시작..
-
Java 14. Switch ExpressionBackEnd/Java 2024. 12. 7. 08:30
statement vs expressionstatement: 어떠한 프로그래밍 문장으로 조건문, 반복문 등이 해당됩니다.expression: 프로그래밍 문장이긴 한데 결과값이 하나의 값으로 정해지는 문장입니다. 3항 연산자 등이 해당됩니다.// expressionString grade = score >= 50 ? "P" : "F"; Switch Expression 기존에 statement였던 switch 문을 expression으로 사용할 수 있게 강화된 기능입니다. Java 12 preview, Java 14 정식 기능으로 출시되었습니다. 기존의 switch statementprivate String calculateTestGrade(int score) { String grade = ""; swi..
-
Java 12. preview featureBackEnd/Java 2024. 12. 7. 08:00
Java 11 LTS 버전이 출시되고 약 3년 후인 2021년 09월에 Java 17이 LTS 되었습니다.Java 11 (2018.09) LTSJava 12 (2019.03)Java 13 (2019.09)Java 14 (2020.03)Java 15 (2020.09)Java 16 (2021.03)Java 17 (2021.09) LTS experimentalJVM 레벨의 기능 초기 버전입니다. (ZGC)실험적이기 때문에 위험하거나 불완전합니다.호환성도 지켜지기 매우 어렵습니다. (25% 정도의 완성도)전용 플래그를 사용하여 experimental 기능을 사용합니다. (On/Off) incubatingexperimental과 비슷하지만, API 레벨입니다.모듈 형태로 배포되는 실험용 API 입니다.모듈과 패키..
-
Java 11. 주요 변경 내용BackEnd/Java 2024. 12. 6. 23:00
Java 11은 Java 10이 출시된지 6개월 후인 2018년 9월에 출시된 LTS 버전입니다. var Java 10에서 등장한 var을 람다식 매개변수에 적용 가능하게 되었습니다.// String 타입을 명시적으로 작성해 준 람다식입니다.Consumer c1 = (String x) -> System.out.println(x);// Java 11부터 람다식에 var을 사용할 수 있습니다.Consumer c2 = (var x) -> System.out.println(x); String 클래스 업데이트strip() 띄어 쓰기 혹은 탭 같은 white space를 앞 뒤로 제거해주는 함수입니다.stripLeading(): 앞 부분의 white space만 제거stripTrailing(): 뒷 부분의 wh..
-
Java 10. 주요 변경 내용BackEnd/Java 2024. 12. 5. 23:00
var 지역 변수의 타입을 추론하는 새로운 예약어가 등장했습니다.var num = 3;num = 10; // 가변 변수이기에 값을 변경할 수 있습니다.num = "ABC"; // Error !! 한 번 값이 추론되면 그 이후에 다른 타입의 값은 넣을 수 없습니다.var list = List.of(1, 2, 3);var map = Map.of("A", "B"); // Map map var 예약어는 if나 while 처럼 '키워드'가 아니기 때문에 변수 이름으로도 사용이 가능합니다. 기존 코드와의 호환성을 가지기 위함입니다.var var = 3; var는 타입을 추론하는 예약어이기 때문에 값이 없거나 null이면 안됩니다. 또한, 람다식 혹은 배열 타입은 추론할 수 없습니다.var num; ..
-
Java 9. 주요 변경 내용 (2)BackEnd/Java 2024. 12. 4. 23:00
Collection 기능 추가 Collection 객체를 생성하는 간결한 방법이 추가되었습니다.// Java 9 이전List oldList = Arrays.asList(1, 2);// Java 9 이후 정적 팩토리 메소드 of가 생겼습니다.List newList = List.of(1, 2);// SetSet oldSet = new HashSet(Arrays.asList(1, 2));Set newSet = Set.of(1, 2);// MapMap oldMap = new HashMap();oldMap.put("A", 1);oldMap.put("B", 2);Map newMap = Map.of("A", 1, "B", 2);// key-value가 많다면 ofEntries를 사용할 수도 있습니다.Map.ofEn..
-
Java 9. 주요 변경 내용 (1)BackEnd/Java 2024. 12. 3. 22:00
try-with-resources 확장 try-with-resources는 Java 7에서 추가된 기능으로 개발자가 직접 닫아줘야 하는 자원을 try() 안에 선언하면, try 로직이 끝난 후 자동으로 해당 자원을 닫아주는 것입니다. 자동으로 해당 자원을 닫아주기 위해서는 AutoCloseable을 구현하고 있어야 합니다. Java 7 이전 코드Resource resource = new Resource();try { // 작업} finally { resource.close();} Java 7 이후 코드try (Resource resource = new Resource()) { // 작업} Java 7의 try-with-resources의 경우, try() 밖에서 만든 자원을 닫을 수는 없습니다..
-
Java 9. JPMSBackEnd/Java 2024. 12. 2. 19:00
자바 플랫폼 모듈 시스템(JPMS) JPMS(Java Platform Module System)를 사용하면 코드의 재사용성, 유지보수성, 보안성을 향상시킬 수 있습니다. 모듈은 고유한 이름을 가지며, 관련된 패키지, 리소스, 모듈 디스크립터(module-info.java)로 구성됩니다. JPMS는 빌드 도구 없이도 모듈을 구성할 수 있고, JDK에서 필요한 일부 코드(모듈)만 다운로드할 수 있어 성능과 용량 측면에서 유지보수성을 높일 수 있습니다. JPMS 주요 특징신뢰적인 구성: 모듈 간 의존성을 명시적으로 선언할 수 있습니다.강력한 캡슐화: 모듈 내부의 패키지를 다른 모듈로부터 숨길 수 있습니다.확장성: 여러 모듈로 나누어 필요한 모듈만 사용할 수 있게 합니다.성능 향상: 필요한 모듈만 로드하므로..