본문 바로가기

전체 글72

[JAVA] 깊은 복사(deep copy) VS 얕은 복사(shallow copy) 깊은 클론 VS 얕은 클론 1. 얕은 클론 List friends = new AraayList(); friends.add("감자친구1"); Person person = new Person(10, "김감자", friends); Person copy = person.clone(); List copyFriends = copy.getFriends(); copyFriends.add("복사친구1"); System.out.print(person.toString); System.out.print(copy.toString); // 결과 person.toString = copy.toString 동일 : Person[10, 김감자, [감자친구1, 복사친구1]] class Person implements Cloneable {.. 2023. 8. 10.
@ActionForm @Resource 란? @ActionFrom 란? HTML로 부터 form 값을 전달받을때 사용하는 어노테이션 *이름과 From값의 내용이 같아야 받을 수 있다 @Resource 란? 리소스를 주입하거나 참조하고자 할때 사용한다. 2023. 8. 8.
[JAVA] 접근제어자 Private, protected, default, public 자바의 접근제어자에 대해 알아보겠습니다. 1. 접근제어자란? 객체지향 프로그래밍에서 클래스의 멤버 변수와 메서드에 대한 외부로부터의 접근을 제어하는 키워드입니다 2. 접근제어자의 종류? 종류 같은 클래스 같은 패키지 같은패키지 또는 다른패키지의 자식 클래스 접근제한 없음 private O protected O O default O O O public O O O O 3. 접근제어자 생략? 접근제어자가 아래와 같이 없는 경우 자동으로 default로 설정됩니다. People people; // 위, 아래 모두 같은 내용 default People people; 2023. 8. 8.
JPA 준영속성, 영속성, merge, 변경감지 준영속성 엔티티 : - 영속성 컨텍스트가 관리하지 않는 객체- 이전에 영속성 상태가 된적 있던 엔티티 영속성 엔티티 : - 생성한 객체가 영속성 컨텍스트에 저장되있는 상태- DB에서 엔티티를 조회하여 영속성 컨텍스트에 의해 관리되어지는 상태 merge - 비영속, 준영속 상관없이 정상 작동한다.- 그렇기 때문에 미처 값을 변경하지 못한 부분은 null 값으로 들어갈 수 있음- 식별자(id) 값으로 엔티티를 조회하며, 값이 있을경우 병합하고 없을경우 새로 생성한다. 변경감지- 엔티티 매니저를 통해 entity를 꺼낸 후 값을 수정하는 방식- 커밋 시점에 알아서 변경감지를 통해 변경된 부분만 값이 변경된다. 2023. 8. 7.