프로그래밍/Java

Java 정리05

minNa2 2023. 2. 7. 18:40

- 기본 타입: 정수, 실수, 논리

- 참조 타입

1) 객체의 번지를 참조하는 타입

2) 메모리의 번지를 변수 안에 저장

3) 배열, 열거, 클래스(String 클래스), 인터페이스

 

- JVM 메모리 영역: 메소드 영역, 힙 영역, JVM 스택

- 메소드 영역: JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역

- 힙 영역: 객체와 배열이 생성되는 영역

- JVM 스택 영역: 메소드를 호출할 때마다 프레임을 추가하고 메소드가 종료되면 해당 프레임을 제거하는 동작을 수행

 

- 참조 타입의 null: 힙 영역의 객체를 참조하지 않는다는 것

 

- 예외(Exception): 프로그램 실행 도중에 발생하는 오류

- NullPointerException

1) 참조 타입 변수를 잘못 사용했을 때

2) null 상태에서 있지도 않은 객체의 데이터(필드)나 메소드를 사용하는 코드를 실행했을 때

 

- 문자열은 String 객체로 생성되고, 변수는 String 객체를 참조

- 변수는 스택 영역에 생성, 문자열은 힙 영역에 String 객체로 생성

- 참조 되지 않는 객체는 메모리에서 자동 제거

 

- new 연산자(객체 생성 연산자): 힙 영역에 새로운 객체를 만들 때 사용하는 연산자

 

- equals() 메소드: 객체와 상관 없이 내부 문자열을 비교하고 싶을 때 사용

원본 문자열.equals(비교 문자열)

 


 

- 배열 // 타입[] 변수;   타입 변수[];

1) 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여한 자료구조

2) 한 번 생성된 배열은 길이를 늘이거나 줄일 수 없음

- 인덱스: 배열 항목에 붙인 번호, 각 항목의 데이터를 읽거나 저장하는데 사용(0부터 시작)  //배열이름[인덱스]

 

p.181

- 값의 목록으로 배열 객체를 새성할 때 배열 변수를 이미 선언한 후에는 다른 실행문에서 중괄호를 사용한 배열 생성 금지

- 배열 변수를 미리 선언한 후 값 목록들이 나중에 결정되는 상황이라면 new 연산자 사용

 

- 값들을 저장할 배열 미리 만들고 싶을 때

타입[] 변수 = new 타입[길이];

 

- new 연산자로 배열을 처음 생성할 경우 배열은 자동적으로 기본값으로 초기화

 

- 배열 길이 얻을 때: 배열 변수.length;

- length는 읽기 전용 필드라 값 바꿀 수 없음

 

- 다차원 배열

타입[][] 변수 = new 타입[행][열];

 

- 배열 간의 항목 값들 복사: for문, System.arraycopy()

System.arraycopy(원본 배열, 원본에서 복사 시작할 인덱스, 새 배열, 새 배열에 붙여넣을 시작 인덱스, 복사할 개수);

 

- 향상된 for문

1) for(타입 변수 : 배열) { ~ }

2) 반복 실행을 하기 위해 루프 카운터 변수와 증감식 사용 X

 


 

- 열거 타입: 한정된 값인 열거 상수 중에서 하나의 상수를 저장하는 타입(요일, 계절 등)

public enum Season {

  SPRING, SUMMER, FALL, WINTER //열거 상수

}

 

Season today; //열거타입: Season, 열거 타입 변수: today

today = Season.WINTER;

 

- 열거 타입의 이름은 첫 글자를 대문자로 하고 나머지는 소문자, 여러 단어이면 각 단어의 첫 글자를 대문자로

- 열거 상수는 모두 대문자, 여러 단어이면 단어 사이에 _(밑줄)  //열거 상수는 객체

- 반드시 "열거 타입.열거 상수" 형태

 

 

출처: 한빛미디어

반응형