Java의 변수를 공부하면서 놓치고 지나가거나 쉽게 잊어버릴 만한 개념들을 정리합니다.자바의 변수명 작명 규칙은 다음과 같습니다.대소문자가 구분되며 길이에 제한이 없다.예약어를 사용해서는 안 된다.숫자로 시작해서는 안 된다.특수문자는 '\_'와 '$'만을 허용한다.그렇
Short Circuit Evaluation > 비트 연산자 &, | > * 양쪽 모든 항을 계산 > > 논리 연산자 &&, || > * 필요 없는 경우에는 두번째 항을 계산하지 않음 > * &&의 첫번째 항이 false이면 두번째 항을 계산하지 않는다. > *
Enhanced switch를 사용해 좀더 간결한 swich문을 작성할 수 있습니다.: 대신 ->를 사용하면 break;를 생략할 수 있습니다.: 와 ->는 하나의 switch문에서 섞어서 사용할 수 없습니다.switch 문의 제약조건은 다음과 같습니다.1\. swit
배열의 특징은 다음과 같습니다.크기 변경이 불가능 하다.모두 같은 타입이어야 한다.따라서 배열의 크기를 변경하고 싶다면 새로운 배열에 복사 해야 합니다.Java에서 일반적으로 가장 효율적인 배열 복사 방법은 System.arraycopy()를 사용하는 것입니다.arra
함수를 호출하는 Caller 입장에서 함수에게 넘겨주는 실제 값을 Argument(인자)라고 합니다.함수가 정의될 때 전달 받을 argument를 저장하기 위해 선언하는 변수를 Parameter(매개변수)합니다.Argument Type은 Parameter Type과 일
다음과 같은 단계로 인스턴스가 만들어진다고 생각해 볼 수 있습니다.new 연산자가 클래스 정의를 보고 메모리에 공간을 할당하고, 그 참조값을 생성자에게 인자로 넘겨줍니다.생성자는 new 연산자가 넘겨준 인스턴스의 참조값을 통해 인스턴스 변수같은 메모리 공간에 접근하여
상속 범위 > * 생성자와 초기화 블럭은 상속되지 않습니다. 멤버만 상속됩니다. > * 접근 제어자가 private 또는 default 인 멤버들은 상속되지 않는다기보다 상속은 받지만 자손 클래스로부터 접근이 제한되는 것입니다. > * 모든 멤버를 복사해서 가져오지만
Java 의 abstract class 혹은 interface 를 보면 추상화 기능을 메서드에서만 제공하고 있습니다.객체의 행위는 추상화 하지만 속성은 추상화 하지 않는 이유는 다음과 같이 생각해 볼 수 있습니다.객체 지향 프로그래밍에서 중요한 것은 객체의 행위이며,
Checked & Unchecked Exceptions > * Exception 은 Checked Exception(RuntimeException 을 제외한 Exception) 과 Unchecked Exeption(RuntimeException) 으로 구분할 수 있습니다. > * RuntimeException 과 Exception 으로 구분해서 부르...
Object 클래스의 hashCode() 는 반환 타입이 int 입니다.32bit JVM 에서 64bit JVM 으로 넘어가면서 long 타입의 hash code 를 사용하는 것이 맞지만 기존의 int 타입을 유지하는 것을 선택했습니다.그 이유는 Java 가 backw
멀티 쓰레드 상황이 아닌데도 ConcurrentModificationException 을 마주하는 경우가 있습니다.대부분의 경우 Iterator 를 사용하여 순회를 하는 도중에 변경을 시도했기 때문입니다.컬렉션의 Iterator 가 생성된 이후 컬렉션의 구조가 변경되면
Generic type Erasure > 컴파일러는 제네릭 타입을 이용하여 소스파일을 검사하고, 필요한 곳에 형변환을 추가한 뒤에 제네릭 타입을 제거합니다. > 컴파일 된 .class 파일에는 제네릭에 대한 정보가 없습니다. > 따라서 제네릭을 사용할 때 다음과 같은
enum 클래스를 사용하는 것은 Singleton pattern을 구현하는 간단하고 안전한 방법입니다.상수로 자신의 인스턴스를 가지고 생성자 호출을 막아서 인스턴스를 요구할 때 마다 기존의 동일한 인스턴스를 제공하는 싱글톤 패턴은 enum 클래스의 기능에 그대로 포함되
Standard Annotation > Meta Annotation >
Lock & Condition Java 의 Thread 는 발전을 거듭하면서 synchronized 블럭만으로는 부족했던 기능들을 ReentrantLock, Condition 을 통해 제공하게 되었습니다. | Lock 종류 | 설명
SQL (Oracle DB)
함수형 프로그래밍은 다음과 같은 개념을 중시합니다.순수 함수동일한 입력을 받으면 항상 동일한 출력을 반환하고, 외부 상태를 변경하거나 부작용(side-effect)을 일으키지 않는 함수를 핵심으로 합니다.불변성데이터가 생성된 후에는 그 상태를 변경하지 않는 것을 중요하
✅ 최소 지식 원칙은 자신이 직접 알고 있는 친한 객체와만 상호작용하라는 원칙으로, 점('.' 참조)을 2개 이상 연달아서 사용하지 말라는 원칙으로도 잘 알려져 있습니다.❓ Stream 을 사용하다 보면 메서드 체이닝을 통해 참조를 여러번 거듭하게 됩니다.이는 최소 지
불변(immutable) 이란 인스턴스가 생성, 초기화 된 이후에 변하지 않음을 의미합니다.JDK 21 에서 추가된 record 는 불변 객체를 만드는 가장 쉬운 방법입니다.Lombok 라이브러리는 getter, setter, constructor 등 반복적으로 작성해