본문 바로가기

Java12

클래스 로딩 시작기반이 탄탄한 자바 개발자로 성장하기 위해선 클래스 로딩에 대한 이해가 필요하다고 생각합니다. 클래스 로딩은 자바의 핵심 중 하나이며, 자바의 가장 기본적인 동작 원리 중 하나입니다. 클래스 로딩에 대해 알아보겠습니다.본문클래스 로딩이란?클래스 로딩은 자바 가상 머신이 클래스 파일을 읽어와서 메모리에 올리는 과정을 말합니다. 클래스 로딩은 두 단계로 이루어져 있습니다. 로딩 -> 링크입니다.로딩로딩은 클래스 파일을 구성하는 바이트의 데이터 스트림을 가져오는 과정입니다. 클래스 로더는 클래스 파일을 읽어와서 바이트 코드를 메모리에 저장합니다. 이때 클래스 로더는 클래스 파일을 찾는 경로를 지정해야 합니다.링크링크는 로딩된 클래스 파일을 실행 가능한 형태로 연결하는 과정입니다. 링크는 세 단계로 이루어져.. 2024. 12. 5.
자바 17 시작자바 17의 새로운 기능을 정리하고자 합니다.본문1. Text Blocks"""로 시작하고 끝나는 여러 줄의 문자열을 표현하는 방법입니다.String SQL = """ SELECT * FROM table WHERE column = 'value' """;2. switch 문switch 문에 새로운 문법이 추가되었습니다. case 문에서 ,를 사용하여 여러 값을 한 번에 처리할 수 있습니다. 또한 ->를 사용하여 switch 문을 표현할 수 있습니다.before public enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } var random = new Ran.. 2024. 12. 4.
자바 모듈 시작모듈은 자바 9부터 추가된 기능이다. 모듈의 도입은 애플리케이션 아키텍처에 깊은 영향을 미친다. 그래서 모듈을 이해하고 사용하는 것은 중요하다고 생각하여 이 글을 작성하게 되었다.본문배경모듈은 런타임에 의미를 가지는 응용 프로그램 배포 및 의존성의 단위다.이는 다음과 같은 자바 개념과 다르다.JAR 파일은 런타임에는 보이지 않으며 단순히 클래스 파일들을 포함하고 있는 압축된 디렉터리다.패키지는 실제로 접근 제어를 위해 클래스를 그룹화하기 위한 네임스페이스다.의존성은 클래스 레벨에서만 정의한다접근 제어와 리플렉션이 결합돼 명확한 배포 단위 경계 없이 최소한의 시행으로 개방적인 시스템을 생성한다.반면에 모듈은 다음과 같은 특징을 가진다.모듈은 모듈 간의 의존성 정보를 정의하므로 컴파일 또는 애플리케이션 .. 2024. 12. 4.
자바 11에서의 작은 변경 사항 시작The Well-Grounded Java Developer 책을 읽으면서 책 내용 기반으로 자바 11에서의 작은 변경 사항을 정리합니다.본문var 키워드를 지원하는 지역 변수 타입 추론var 키워드를 사용하여 지역 변수의 타입을 추론할 수 있습니다.var example = "Hello, Java 11!";example.getClass();$1 ==> class java.lang.String컬렉션 팩토리(JEP 213)ListList에 of() 메서드가 추가하여 불변 리스트를 쉽게 생성할 수 있습니다.var listExample = List.of(1,2,3);listExample ==> [1, 2, 3]listExample.getClass();$3 ==> class java.util.ImmutableC.. 2024. 12. 2.