목록언어/Java (10)
우당탕탕
람다식이란? 나는 처음 시작한 프로젝트가 금융권 프로젝트라 자바 7 버전으로 처음 프로젝트를 시작했었다. 이후 현재는 자바 11을 사용하는 프로젝트를 진행하면서 자바 8 이후 도입된 stream과 람다를 사용하다 보니 편해서 작성하게 되었다. 람다란? Java8 버전 이후에 추가된 기능으로 따지면 메서드를 하나의 식으로 표현한 것이다. 아래 예시 코드를 살펴보자 int num = 10; Runnable runnable = new Runnable() { @Override public void run() { System.out.println("number: " + num); } }; runnable.run(); 보통 람다 설명에서 자주 사용하는 Runnable 코드이다. 이를 람다로 사용하면 아래와 같이 적..

가비지 컬렉션 알고리즘 이 글은 [Java] 가비지 컬렉션(Garbage Collection)이란? 의 2편이다. ( GC에 대한 자세한 내용은 1편을 참고 ) 1편에서 GC 알고리즘 종류에 대해 말을 했었다. 1. Serial GC 2. Parallel GC 3. Parallel old GC 4. CMS(Concurrent Mark & Sweep) GC 5. G1 GC(Garbage First GC) 대충 이런 알고리즘이 있었는데 이에 대해 하나하나 알아보도록 하자 1. Serial GC Serial GC의 경우 Young 영역과 Old 영역이 다르게 실행된다. Young 영역의 경우 1편에서 설명한 Mark Sweep 방식으로 수행되지만 Old 영역의 경우 Compact 가 추가된 Mark Sweep..

가비지 컬렉션(GC)이란? 가비지 컬렉션(Garbage Collection , GC) 가비지 컬렉션이란 개발자가 동적으로 할당한 메모리 영역 중 더 이상 사용하지 않는 자원을 해제하는 기능이다. Java의 경우 개발자가 직접 메모리를 해제하지 않아도 JVM의 가비지 컬렉터가 알아서 정리해준다. (JVM 메모리 구조 중 Heap영역에서 사용하지 않는 객체를 삭제한다. 아래의 그림 참조 ) 아래의 예시 코드로 한번 알아보자 Car car = new Car("K5"); car = new Car("K3"); 처음에 K5라는 차가 생성되고 car는 K5를 바라보고 있다 이때는 가비지가 존재하지 않는다. 하지만 이후 K3라는 차가 생성되고 car는 K3를 바라보게 된다. K3를 바라보게 되는 순간부터는 K5라는 차..

자바란 무엇인가? 자바(Java)란? 위키백과에서는 자바를 이렇게 설명한다 자바는 썬 마이크로시스템즈의 제임스 고슬링( James Gosling )과 다른 연구원들이 개발한 객체 지향적 프로그래밍 (OOP: Object Oriented Programming) 언어이다. 여기서 처음 개발을 시작하는 사람들은 객체 지향적 프로그래밍이란 것이 뭘까?라는 생각이 들것이다. 그럼 객체지향 프로그래밍(OOP: Object Oriented Programming)이란 무엇일까? 간단하게 말해서 객체지향 프로그래밍이란 프로그램을 개발하는 기법으로 객체(부품 정도로 생각하면 된다)를 만들고, 이것들을 조립하여 전체 프로그램을 완성시키는 기법이라 설명할 수 있다. 더 깊은 내용으로는 나중에 한 번에 모아서 작성하도록 하겠다..