JVM이 프로그램을 수행하기 위해 OS로부터 할당받는 메모리 영역.
class명 앞에 final이 붙은 class로 상속이 불가능하다는 특징을 가집니다.주로 보안상의 이유로 사용되는데 중요한 class의 자식 class를 생성해서 해당 class를 통해 시스템을 파괴할 수 있기 때문에 이를 방지하기 위해서 사용됩니다.대표적인 예로 St
Java에서 일반적으로 객체를 생성할 때 new 키워드를 사용합니다. 그러나 문자열은 특이하게도 new 키워드 뿐만 아니라 바로 값을 할당할 수도 있는데 이를 문자열 리터럴이라고 부릅니다.
자바에서 가장 많이 사용되는 객체중 하나인 String 클래스는 잘못 사용하는 경우 메모리와 성능에 많은 영향을 줍니다.
native 키워드는 해당 메서드가 JNI(Java Native Interface)를 사용해서 네이티브 코드로 구현되었음을 나타냅니다.
직렬화(Serialization)는 객체의 상태를 바이트 스트림으로 변환하는 메커니즘입니다. 반대로 역직렬화(Deserialization)는 바이트 스트림을 실제 자바 객체로 재생성 재생성하는 메커니즘입니다.
Java 8 이전, 인터페이스에는 오직 추상 메소드만 가질 수 있었습니다.
추상화는 내부 구현을 숨기고 사용자에게 기능만 표시하는 것을 의미합니다. 추상 클래스(Abstract Class)와 인터페이스(Interface)는 모두 추상화를 위해 사용되는데요. 이 둘은 어떤 차이가 있을까요?
어노테이션(annotaions)은 프로그램에 추가 정보를 제공하는데 사용됩니다.
Assertions은 JDK 1.4부터 추가된 프로그램에 대한 가정을 테스트하는 기능입니다.