자바 3

For vs Stream

Java 1부터 지원public static void main(String[] args) { List list = List.of(1, 2, 3, 4, 5); for (int i = 0;i Java 5부터 지원 가독성이 좋고 OutOfIndex error에 안정적이다..class파일로 될 때 전통적인 for문으로 변경된다. public static void main(String[] args) { List list = List.of(1, 2, 3, 4, 5); for (Integer i : list) { System.out.println(list.get(i)); }}Java 8부터 지원Stream 생성 -> 중간 연산 -> 최종 연산 public static void main(Stri..

자바 2024.06.23

Record란

불변 객체불변 객체는 생성된 후 그 상태를 변경할 수 없는 객체를 의미한다.프로젝트를 진행하다 보면 데이터베이스 결과, 쿼리 결과 등 단순히 담기 위한 객체를 생성하는 경우가 있다.불변 객체를 사용함으로써 내부 필드값의 불변성을 보장해서 유지보수에서 이점을 챙길 수 있기 때문이다. Java에서 불변 객체java에서 불변 객체를 만들려면 아래와 같은 과정이 필요하다.private final로 선언을 해주어야 한다. 해당 객체를 만들기 위한 생성자도 만들어야 한다. 객체의 동등성을 위해 equals와 hashCode를 구현해야 한다. 필드에 접근하기 위한 getter를 정의해야 한다.디버깅을 위한 toString를 정의해야 한다. public class User { private final String..

자바 2024.06.07

[자바] Reflection

Reflecti의 어원reflect은 반사하다, 비추다는 의미를 가지고 있다. 이를 객체지향에서의 관점에서 보면 예를 들어 강아지를 클래스 거울에 속에 비친 강아지를 JVM 메모리 영역의 정보라고 볼 수 있다.즉 강아지를 직접 조작하는 것이 아니라 거울에 비친 강아지의 모습을 보고 클래스를 검사하고 조작하는 기술이라고 볼 수 있다. reflect의 정의런타임에 클래스와 인터페이스 등을 검사하고 조작할 수 있는 기능 런타임: 컴파일된 코드를 실행시키며 외부 링크와 운영체제 사용자와 상호작용하는 단계 리플랙션의 동작 원리 JAVA source(.java)코드를 Java Compiler가 컴파일하면. class파일인 (Java Byte Code)가 된다. 이를 Class Loader가 Runtime Data ..

자바 2024.05.23