JAVA8 Lombok (@EqualsAndHashCode ) 직접 오버라이드 장 단점 @EqualsAndHashCode를 사용하면 Lombok이 알아서 Equals 와 HashCode를 재정의 해준다. @EqualsAndHashCodepublic Class User { private Long id; private String name; private int age;}// 이렇게 하게 되면 // Equals 와 hashCode 를 모든 필드에 대해 비교 후 재정의 하게 된다. 나는 id만 equals 와 hashCode로만 재정의를 하고 싶다고 한다면직접 오버라이드를 사용 하거나 @EqualsAndHashCode에 정의를 해주면 된다. Lombok@EqualsAndHashCode(onlyExplicitlyIncluded = true)public clas.. JAVA 2025. 3. 5. equals / == 비교 문자열 비교 시에는 == 을 사용하지 않는다.문자 String은 참조형이기 때문에 ==은 주소(참조값)을 비교하기 위해서 사용하므로문자열 비교시에는 equlas를 사용해서 비교를 해준다. String str = "Hello"; String str2 = "Hello"; String str3 = new String("Hello"); System.out.println(str == str2); //true System.out.println(str == str3); //false (주소값이 다르기때문) System.out.println(str.equals(str2)); //true System.out.println(str.equals(str3)); //true JAVA 2025. 3. 3. builder 패턴 @NoArgsConstructor @Getter @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false , length = 20) private String email; @Column(nullable = false , length = 20) private String username; @Column(nullable = false , length = 500) // 패스워드 인코딩(BCrypt) private String password; @Column(nullable = false , length = 20) private String .. JAVA 2023. 7. 4. object 클래스 ,string 관련 equlas() - 두 인스턴스의 주소 값을 비교하여 true/false를 반환한다. - 재정의 하여 두 인스턴스가 논리적으로 동일함의 여부를 구현한다. - 인스턴스가 다르더라도 논리적으로 동일한 경우 true를 반환하도록 재정의 할수 있다. hashCode() - 인스턴스의 저장 주소를 반환한다. - 힙메모리에 인스턴스가 저장되는 방식이 hash 방식 - 자료의 특정 값에 대한 저장 위치를 반환해주는 해시 함수를 사용 String , StringBuilder , StringBuffer String : String은 불변하다는 특징을 가지고 있어 수정을 하지못하고 새로운 String 인스턴스가 생성되고 전에 있던 String은 GC에 의해 사라짐 StringBuffer : 멀티 쓰레드 프로그래밍에서 동기.. JAVA 2023. 3. 4. super 키워드 , 다운캐스팅 , instanceof super - 하위 클래스에서 가지는 상위 클래스에 대한 참조 값 - super()는 상위 클래스의 기본 생성자를 호출 - 하위 클래스에서 명시적으로 상위 클래스의 생성자를 호출하지 않으면 super()가 호출 된다. - 상위 클래스의 기본 생성자가 없는 경우 하위 클래스에서는 생성자에서는 super를 이용하여 명시적으로 상위 클래스의 생성자를 호출 함 - super는 생성된 상위 클래스 인스턴스의 참조 값을 가지므로 super를 이용하여 상위 클래스의 메서드나 멤버 변수에 접 근 할 수 있다. 다운 캐스팅 - 업캐스팅된 클래스를 다시 원래의 타입으로 형 변환 하는 것이다. - 하위 클래스로의 형 변환은 명시적으로 해야 한다. instanceof - 원래 인스턴스의 형이 맞는지 여부를 체크하는 키워드 맞.. JAVA 2023. 3. 4. 변수 범위 변수 선언 위치 사용 범위 메모리 생성과 소멸 지역 변수 (로컬 변수) 함수 내부 함수 내부에서만 사용 스택 함수 호출 시 생성 함수 끝나면 소멸 멤버 변수 (인스턴스 변수) 클래스 멤버 변수로 선언 클래스 내부에서 사용 private 아니면 참조 변수로 다른 클래스에서 사용 가능 힙 인스턴스 생성될 때힙에 생성 , 가비지 컬렉터가 메모리 수거할 때 소멸 static 변수 (클래스 변수) static 예약어를 사용하여 클래스 내부에 선언 클래스 내부에서 사용 private이 아니면 클래스 이름으로 다른 클래스에서 사용 가능 데이터 영역 프로그램이 처음 시작할 때 상수와 함께 데이터 영역에 생성 프로그램이 끝나고 메모리 해제할 때 소멸 - static 변수는 프로그램이 메모리에 있는 동안 계속 영역을 차지.. JAVA 2023. 3. 4. 접근 제어자 사진 설명을 입력하세요. 사진 설명을 입력하세요. 접근 제어 지시자 클래스 외부에서 클래스의 멤버 변수 , 메서드 , 생성자를 사용할 수 있는지 여부를 지정하는 키워드 private : 같은 클래스 내부에서만 접근 가능 (외부 클래스 , 상속 관계의 클래스에서도 접근 불가) default : 같은 패키지 내부에서만 접근 가능 (상속 관계라도 패키지가 다르면 접근 불가) protected : 같은 패키지나 상속관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근 할수가 없음 public: 클래스의 외부 어디서나 접근 할 수 있음 JAVA 2023. 3. 4. 면접 질문 이번 취업을 하기 위해 면접 어느 정도의 면접 질문에 대한 내용을 공부하며 간략하게 작성을 하였다. 경력직 취업이라 질문에 대한 내용은 많이 나오진 않았지만 그래도 까먹을 거 같아서 작성을 하기로 하였다. 1 . 객체지향 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 장점:코드 재사용 용이 , 유지보수 쉬움 단점: 설계시 많은 시간 , 노력이 필요 추상화 : 공통의 속성이나 기능을 묶어 이름을 붙이는 것 캡슐화 : 코드를 재수정 없이 재활용 , 접근 제어자를 통한 정보 은닉 상속 : 부모클래스의 속성과 기능을 그대로 이어받아 사용할수있게하고 기능의 일부분을 변경해야할경우 상속받은 자식 클래스에서 해당 기능만 다.. JAVA 2023. 3. 4. 이전 1 다음