자바(JAVA) - 기본형(Primitive) VS 참조형(Reference)
변수의 데이터 타입을 가장 크게 기본형, 참조형으로 분류할 수 있다. 기본형 - int, long, double, boolean과 같이 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입 참조형 - People person1, int[ ] a 와 같이 데이터에 접근하기 위한 주소를 저장하는 데이터 타입 기본형 참조형 사용 바로 사용 가능 객체, 배열을 통해 메모리 상에 생성된 객체를 통해 사용 가능 연산 가능 불가능 연산 예시 ) 기본형 참조형 하지만, 참조형에서 멤버 변수에 접근한 경우에는 아래와 같이 연산을 할 수 있다. 정리해보자면, 기본형을 제외한 나머지는 모두 참조형이다. 기본형은 모두 소문자로 int, long, double, boolean이 있고, 그외 대문자로 시작하는 클래스는 모두 참조형..
2024. 2. 16.
자바(JAVA) - String, StringBuffer, StringBuilder 각 성능차이
String 불변(immutable) 문자열을 조작하는 경우 유용하게 사용가능하다. 한번 생성되면 할당된 메모리 공간이 변하지 않는다. 문자열을 연결, 추가, 수정, 삭제 등을 하면 새로운 String 객체 생성 -> 메모리 낭비 스레드 안전함. 동기화 처리되어 있어 멀티스레드 환경에서도 안전하게 사용가능. (즉 , + 연산자 , concat 메서드를 통해 본래 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이는 것이 아니라, 새로운 String 객체를 만든 후, 새 String 객체에 연결된 문자열을 저장하고, 그 객체를 참조하도록 한다. ) 위 코드는 String 문자열을 이용하여 문자열을 추가해주었다. 이는 문자열이 변경되는 것처럼 보일 수 있으나, 또 다른 String 객체를 생성..
2023. 7. 24.
자바(JAVA) - 메모리 사용 영역(Method, Heap, Stack)
메모리의 사용 영역을 알기전에, 자료형은 크게 기본 자료형과 참조 자료형으로 나뉜다. 기본 자료형 8개(int, long, char ... 등)의 이름은 모두 소문자로 시작하는 반면, 참조 자료형은 모두 대문자(String, System, ...등)은 모두 대문자로 시작한다. 기본 자료형은 스택 메모리에 생성된 공간에 실제 변숫값을 저장하는 반면, 참조 자료형은 실제 데이터 값은 힙 메모리에 저장하고, 스택 메모리의 변수 공간에는 실제 변숫값이 저장된 힙 메모리의 위칫값을 저장한다. 클래스(Class)영역, 메소드(Method)영역, 상수(Final)영역, 정적(Static)영역 - Static 영역이라고도 부르며, 전역 변수와 정적 멤버변수 (static 변수)가 저장되는 영역. 스택 (Stack)영역..
2023. 7. 11.