목록TIL (2)
이숭간 공부기록
자바의 String, StringBuilder, StringBuffer에 최대한 깊게 알아보자! Constant pool 자바 클래스 파일 구성항목중 하나인 Constant pool은 리터럴 상수값을 저장하는 곳이다. 문자열뿐만 아니라, 모든종류의 숫자, 문자열, 식별자이름등에 대한 인덱스를 번호로 제공한다. 즉, 런타임시점에 "hello"의 리터럴을 사용하는 메소드를 여러번 호출한다해도 새로운 메모리공간을 할당하는것이 아니라, Constant pool의 인덱스를 참조한다. 단, Constant Pool은 클래스단위로 관리되기때문에 같은 리터럴이라 하더라도 서로다른 클래스에서 등장한다면 다른 인덱스값을 갖는다. 정리 : CP를 사용해 이미 존재하는 문자열의 경우, 똑같은 문자열을 갖는 새로운 메모리공간을..
우선 엄연하게 말한다면 자바의 동작방식은 Call by Value이다. 이는 주소(레퍼런스)를 하나의 값으로 보기 때문이다. 자세히 알아보자 Call by Value(값에 의한 호출) 함수가 호출될 때, 메모리공간에서 함수를 위한 별도의 임시공간이 생성된다. (메모리 스택공간) 함수 호출시 인자로 전달되는 변수의 값(메모리에 저장되어있는)을 복사하여 함수의 인자로 전달한다. 복사된 인자는 로컬변수의 특성을 갖는다. 함수안에서 값이 변경되어도 외부 변수값은 변경되지 않는다. Call by Reference(참조에 의한 호출) 함수가 호출될 때, 메모리공간에서 함수를 위한 별도의 임시공간이 생성된다. (메모리 스택공간) 함수 호출시 인자로 전달되는 변수의 레퍼런스를 전달한다. 함수에서 인자값이 변경되면 레퍼..