- 배열은 변수를 바로 저장하는 것이 아니라 참조변수를 통해서 주소값을 저장한다.
- 각 배열의 값을 배열의 요소(Element) 라고 한다.
- 배열의 길이는 int 값의 최대값인 약 20억이다.
- JVM이 모든 배열의 길이를 별도로 관리한다.
- 이미 생성된 배열의 길이는 변하지 않는 „상수”이다.
- Array.toString(배열이름) 을 통해서 for문을 사용하지 않고, 배열을 출력할 수 있다. ex : [1, 2, 3]
- char 타입의 배열은 System.our.println(배열이름)으로 출력할 수 있다.
- 다른 타입의 배열 이름을 입력해서 출력하려고 할 때, „타입@주소” 형태로 출력된다.
- 배열의 복사 : System.arraycopy( num, 0, score, 1, num.length) 으로 효율적으로 복사할 수 있다.
(num[0]에서부터 num.length 개수만큼을 score[1]에 순차적으로 복사한다.
- 배열복사에러 : ArrayIndexOutofBoundsException
- 0 <= Math.random() < 1
- JVM 이란?
자바가상머신으로, 바이트코드를 실행하는 주체, os에 맞게 해석해주는 역할을 한다.
메모리 관리와 Garbage Collector 수행
스택기반의 가상머신
자바 애플리케이션을 클래스 로더를 통해 읽어들여 자바 API와 함께 실행하는 것이다.
Java와 os 사이의 중개자 역할을 하여, OS에 구애받지 않고 재사용 가능하다.
자바 컴파일러(javac)가 소스코드(.java)를 .class 바이트 코드로 변환한다.
- JVM의 역할 정리
1) os로부터 메모리를 할당받는다.
2) javac 자바컴파일러가 .java 소스코드를 .class 바이트 코드로 변환한다.
3) 클래스로더 class loader로 .class 파일들을 JVM으로 로딩
4) 로딩된 .class 들을 execution engine 실행엔진으로 해석
5) 해석된 .class 바이트 코드는 RuntimeData Acess에 배치