본문 바로가기

java

자바에서 객체란 무엇인가?

 - 객체는 변수들의 컬렉션으로 정의할 수 있다.

 - 객체에는 상태와 행위가 있다고 생각하면 이해하기 쉽다.

 

 - 원시 타입을 제외하면 자바 언어의 다른 모든 변수들은 참조 타입  이다. 원시 타입과 다른점은 빈 객체를 의미하는 null 이 존재한다는 것이다.

 

참조 타입의 의미

 - 원시 타입은 int i = 42 변수가 선언되었을때 42라는 값이 메모리에 할당 되고 int j = i라는 형식으로 i에의해 표현되는 값이 할당되었을 때 메모리의 다른 위치에 같은 값을 할당한다.

 - 할당되고 나면 i는 j 값에 영향을 미칠 수 없다.

 

 - 자바에서 new ArrayList(20) 같은 구문은 데이터를 저장하는데 필요한 영역을 메모리에 요구

 - List myList = new ArrayList(20) 구문으로 생성된 객체를 변수에 할당할 때 myList는 할당된 메모리 위치를 가리킨다.

 - 한 인스턴스에 변경이 생기면 다른 인스턴스가 접근했을 때 영향을 미친다.

 

@Test
public void objectMemoryAssigment() {
List<String> list1 = new ArrayList<>();

list1.add("entry in list1");
assertTrue(list1.size() == 1);

List list2 = list1;
list2.add("entry 2");
assertTrue(list1.size() == 2);
}