
Lambda Expression java 8부터 추가된 Lambda Expression(람다식)이란 함수를 하나의 식(expression)으로 표현한 것이다. 람다식 이전 public interface Goods { public void doSome(); } public class Computer implements Goods { @Override public void doSome() { System.out.println("do Operation!"); } public class Main { public static void main(String[] args) { Goods com = new Computer(); com.doSome(); } } } 기존 자바에서 interface를 이용해 다형성을 제공하..

Immutable(불변) 자바의 객체의 타입에는 Immutable(불변) 타입과 mutable(가변) 타입이 있다. new 연산자로 객체를 생성하면 heap 영역에 객체가 생기고 래퍼런스 값을 가지는 변수가 stack에 생길 것이다. 불변 객체라는 것은 이 객체의 값을 heap영역에서 바꿀 수 없다는 뜻이다. 오직 새 객체를 만들어 래퍼런스 값을 주는 재할당만이 가능하다. // String, Boolean, Integer, Float, Long 등등이 해당 String str = "test"; str = "test2"; // 재할당 불변객체들 Integer, String 등의 API를 살펴보면 public final class Integer, public final class String으로 구성되어있다..

마샬링과 직렬화 직렬화와 마샬링은 거의 비슷하게 사용된다. 위에 사진과 같이 마샬링이 직렬화보다 더 큰 범위를 가지며, 직렬화는 마샬링의 한 부분이다. 마샬링 (Marshalling) 마샬링은 직렬화와 거의 비슷한데 다른점은 코드베이스를 포함하여 객체를 직렬화 한다. 코드베이스? 코드베이스는 객체를 받는이에게 이 객체의 구현을 어디서 찾을 수 있는지에 관한 정보를 말한다. 만약 다른 프로그램에게 객체를 전달했는데 이 객체를 다시 사용 하려면 데이터 타입에 관한 정보가 있어야 한다. 코드베이스는 이 데이터가 어디에 있는지 알려주는 정보를 말한다. 코드베이스가 있기 때문에, 객체의 정보를 알지 못하는 다른 JVM에게 마샬링을 통해서 건네주면, 그 JVM이 언마샬링을 통해, 객체를 원래 상태로 되돌릴 수 있다..

컬렉션 프레임워크(Collection Framework) 자바에서 컬렉션 프레임워크란, 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. (배열의 단점을 보완해준다) JDK 1.2 이전까지는 컬렉션 클래스들을 서로 각자 다른 방식으로 처리해야 했으나 JDK 1.2부터 컬렉션 프레임워크가 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화 되었다. 이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다. 컬렉션 (Collection) : 여러 객체(데이터)를 담을 수 있는 자료구조, 다수의 데이터 그룹 프레임워크 (Framework) : 표준화, 정형화된 체계적인 프로..