JVM 구조 및 자바 프로그램 실행 과정
Collection Framework란? 자료구조를 바탕으로 객체나 데이터들을 효율적으로 관리(추가, 삭제, 검색, 저장)할 수 있는 자료구조를 만들었습니다. 이러한 자료구조들이 있는 라이브러리를 컬렉션 프레임워크라고 한다. 대표적으로 List, Set, Map
Java Annotation은 자바 소스 코드에 추가하여 사용할 수 있는 메타 데이터의 일종이다. 메타 데이터란 애플리케이션이 처리해야할 데이터가 아니라 컴파일 과정과 실행 과정에서 코드를 어떻게 처리해야하는지 알려 주기 위한 추가 정보이다. 보통 @ 기호를 앞에 붙임
JAVA 8에 추가 되었다. 람다식 도입으로 인해 자바는 객체 지향 언어인 동시에 함수형 언어가 되었다. 메서드를 하나의 '식(expression)'으로 표현한 것이다. 메서드의 이름과 반환 값이 없어진다.익명 함수 (anonymous function) 라고도 한다.
스트림은 데이터 소스를 추상화하고 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다.데이터 소스를 추상화하였다는 것은 데이터 소스가 무엇이던 간에 같은 방식으로 다룰 수 있게 되었다는 것과 코드의 재사용성이 높아진다는 것을 의미한다.
자바에서는 문자열을 위해 char형의 배열이 아닌 String 클래스를 제공한다. String 클래스에는 문자열을 저장하기 위해서 문자형 배열 참조변수(char []) value를 인스턴스 변수로 정의해놓고 있다.
String 클래스는 인스턴스를 생성할 때 지정된 문자열을 변경할 수 없지만 StringBuffer 클래스는 변경이 가능하다. 내부적으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있으며, StringBuffer 인스턴스를 생성할 때 그 크기를 지정할 수 있다.
객체지향 개념에서 모든 것은 객체로 다뤄야한다. 그러나 자바에서는 8개의 기본형을 객체로 다루지 않는다. 그래서 자바가 완전한 객체지향 언어가 아니라는 얘기를 듣지만 대신 보다 높은 성능을 얻을 수 있다.