클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여접근 제어자: public, protected , (default) , private 그 외: static, final, abstract, native, transient, synchronized, v
Optional > T 타입 객체의 Wrapper 클래스 모든 종류의 객체 저장 가능 null을 간접적으로 다룰 수 있다. ※null을 직접 다루기에는 위험! NullPointerExeption null을 check해주어야함 -> if문 필요. 코드가 지저분해짐.
Java Virtual Machine , 자바 가상 머신은 어렵게 쓰여있지만 일종의 프로그램이다. 그렇다면 무엇을 하는 프로그램일까요?0,1로 작성된 기계어라고 해서 모든 컴퓨터에서 똑같이 동작하는 것이 아님! 윈도우에서 돌게 컴파일한 기계어는 맥이나 리눅스에서는 돌지
자바에서 동기화를 지원하는 방법에 대해 알아봅니다. synchronized 키워드와 wait & notify 그리고 이와 관련된 이슈에 대해 알아봅니다.
이번에는 자바에서 lock 과 conditin을 이용한 동기화에 대해 알아보겠습니다. 블록을 사용해서 wait & notify 메서드를 지난 포스팅에서 알아보았습니다. 하지만 wait & notify를 이용한 동기화 방법에는 쓰레드를 구분해서 통제하는 것이 불가능하
자바 자바의 가장 큰 특징은 플랫폼에 독립적인 언어라는 점입니다. 기본적으로 프로그램이 실행되기 위해서는 Windows, Linux와 같은 운영체제 위에서 실행이 됩니다. 아래 그림처럼 하드웨어를 기반으로 운영체제가 동작하고 그 위에서 프로그램이 실행되는 구조입니다.
이번에는 javac와 자바 바이트 코드에 대해서 알아보겠습니다.
자바 클래스들은 시작할 때 한번에 로드되는 것이 아니라 애플리케이션에서 필요할 때 로드된다. 클래스로더는 Java Runtime Environment의 일부로, 컴파일된 클래스(.class)를 런타임에 동적으로 JVM에 로드하는 역할을 수행하는 모듈이다. 클래스로더
런타임 데이터 영역 >JVM이라는 프로그램이 운영체제 위에서 실행되면서 할당 받는 메모리 영역이다. 런타임 데이터 영역은 5개의 영역으로 나눌 수 있다.
JVM 실행엔진과 자바 성능 최적화에 있어서 가장 중요한 JIT 컴파일러에 대해서 알아보자!