Backend/Java

· Backend/Java
1. ENUM 이 도입된 이유 1.1 String 사용 시 타입 안정성 부족 문제값의 제한 부족: 오타나 잘못된 문자열을 입력할 가능성이 있다.컴파일 시 오류 감지 불가: 런타임에서만 문제가 발견되기 때문에 디버깅이 어려워질 수 있다. 1.2 상수 사용 시 안정성은 높아지나 여전히 String 자체를 막을 수 없음. 1.3 타입 안전 열거형 패턴 (Type-Safe Enum pattern)public class ClassGrade { public static final ClassGrade BASIC = new ClassGrade(); public static final ClassGrade GOLD = new ClassGrade(); public static final ClassGrade ..
· Backend/Java
Class 클래스: 자바에서 Class 클래스는 클래스의  정보(메타데이터)를 다루는데 사용된다. Class 클래스를 통해 개발자는 실행 중인 자바 어플리케이션 내에서 필요한 클래스의 속성과 메소드에 대한 정보를 조회하고 조작할 수 있다.  Class 클래스의 주요 기능타입 정보 얻기: 클래스의 이름, 슈퍼클래스, 인터페이스, 접근 제한자 등과 같은 정보를 조회할 수 있다.리플렉션(reflection): 클래스에 정의된 메서드, 필드, 생성자 등을 조회하고, 이들을 통해 객체 인스턴스를 생성하거나 메서드를 호출하는 등의 작업을 할 수 있다.동적 로딩과 생성: Class.forName() 메서드를 사용하여 클래스를 동적으로 로드하고, newInstance() 메서드를 통해 새로운 인스턴스를 생성할 수 있다..
· Backend/Java
래퍼 클래스 기본형의 한계 객체가 아님: 기본형 데이터는 객체가 아니기 때문에, 객체 지향 프로그래밍의 장점을 살릴 수 없다. 예를 들어 객 체는 유용한 메서드를 제공할 수 있는데, 기본형은 객체가 아니므로 메서드를 제공할 수 없다. 추가로 객체 참조가 필요한 컬렉션 프레임워크를 사용할 수 없다. 그리고 제네릭도 사용할 수 없다.null 값을 가질 수 없음 : 기본형 데이터 타입은 ` null` 값을 가질 수 없다. 때로는 데이터가 ` 없음` 이라는 상태를 나 타내야 할 필요가 있는데, 기본형은 항상 값을 가지기 때문에 이런 표현을 할 수 없다기본형을 감싸는 클래스를 만들어 해결할 수 있음자바 래퍼 클래스 :래퍼 클래스는 기본형의 객체 버전이다. 자바는 기본형에 대응하는 래퍼 클래스를 기본으로 제공한다...
· Backend/Java
String은 클래스다. 따라서 String 변수에는 String 인스턴스의 참조값만 들어갈 수 있다. String - 비교:String 클래스는 == 비교가 아니라 항상 equals() 비교를 해야한다.동일성(Identity) : == 연산을 제공한다. 연산자를 사용해서 두 객체의 참조가 동일한 객체를 가리키고 있는지 확인동등성(Equality) :  equals()  java 메서드를 사용하여 두 객체가 논리적으로 같은지 확인new String()과 달리 문자열을 사용하는 경우 자바에선 메모리 최적화를 위해 문자열 풀을 사용한다.그로인해 동일한 문자를 사용하는 경우 문자열 풀에서 만든 인스턴스를 참조(공유)하므로 == 비교에 성공한다.따라서 혼선을 막기위해 모든 비교는 equals() 동등성 비교로 ..
· Backend/Java
기본형과 참조형의 공유: 자바의 데이터 타입을 가장 크게 보면 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있다.기본형: 하나의 값을 여러 변수에서 절대로 공유하지 않는다.참조형: 하나의 객체를 참조값을 통해 여러 변수에서 공유할 수 있다.  공유 참조와 사이드 이펙트:사이드 이펙트(Side Effect)는 프로그래밍에서 어떤 계산이 주된 계산 외에 추가적인 부수 효과를 일으키는 것  불변 객체1. 자바에서 객체의 공유 참조는 막을 수 없다.2. 불변 객체를 도입하여 값의 변경을 막는다.3. 불변 객체이므로 참조하는 인스턴스의 값을 변경하려면 새로운 인스턴스를 생성해서 할당해야한다.  withXXXX:"with"는 관례처럼 사용되는데, 원본 객체의 상태가 그대로 ..
Coffebara
'Backend/Java' 카테고리의 글 목록 (7 Page)