Java의 inner class(내부클래스) 또는 nested class(중첩클래스)는 class나 interface 내부에 선언된 클래스다. Inner class 장점 중첩 클래스는 private 포함하여 외부 클래스의 모든 멤버(멤버변수, 메서드)에 접근할 수 있
상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다.상속은 아래와 같은 장점을 가지고 있다.적은 양의 코드로 새로운 클래스를 작성할 수 있다. (시간단축)코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 용이하다.코드의 재사용성을 높이고
Java는 GC에 의해 암묵적으로 메모리를 회수한다. GC는 도달할 수 없는(unreachable) 객체가 있는지, 엄밀히 말하자면 해당 객체를 가리키는 참조가 없는지 주기적으로 확인하고 발견하게 된다면 메모리를 회수한다.하지만 프로그램에서 사용되지 않는(unused)
Java는 multi-thread 프로그래밍 언어이며 race condition이 발생할 위험이 높다. 동일한 리소스를 여러 스레드에서 동시에 접근할 수 도 있고 데이터가 변경될 수 도 있기 때문이다.race condition은 동시성 버그라고 말할 수 있으며 dead
Java의 논리 연산자에서 논리 표현식의 평가(evaluation)가 완료되기 전에 종료되는 경우를 숏서킷이라고 한다.평가(evaluation)가 완료되기 전에도 결과가 명확하기 때문에 결과가 반환되어 숏서킷이 일어난다.이는 불필요한 작업(뒤에 남은연산)을 피하고 효율
문제 이전 글에서 설명했다 싶히, HashMap은 동기화를 지원하지 않는다. 스레드로부터 안전한 데이터 구조가 아니기 때문에, 멀티 스레드(Multi-Thread)환경에서 데이터 불일치가 발생할 수 있다. 이 문제를 극복하기 위해 Collections.syncroni
equals와 hashCode 둘다 Object클래스에 정의 되어있기에, java의 모든 객체는 두 메서드를 상속받고 있다. equals equals는 객체가 동일한지 검사하기 위해 사용된다. Object에 구현된 방식은 2개의 객체가 참조하는 것이 동일한지를 확인하
Immutable의 사전적 의미로 불변의, 변경할 수 없는 이라는 뜻이다. 즉 Immutable List는 수정(추가, 삭제, 변경)이 불가능한 List이며, 컬렉션이 생성된 후 변경되는 것을 방지할 때 사용할 수 있다.finalfinal은 불변이 아닌 재할당을 금지하
HashTable과 HashMap 위의 개념을 다루기 이전에, HashTable과 HashMap이 있다. HashTable : JDK1.0부터 키-값(Key-Value)타입의 자료구조로 HashTable을 제공한다. HashMap : Java2부터 Java Collec