int[] arr = new int[5]; //기존 배열
int[] tmp = new int[arr.length * 2] //2배 길이 배열 생성
for(int i=0; i < arr.length; i++)
tmp[i] = arr[i]; //arr[i]의 값을 tmp[i]에 저장
arr = tmp; //참조변수 arr이 새로운 배열 tmp를 가리키게 함.
char[] abc = {'A', 'B', 'C', 'D'};
char[] num = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
//배열 abc와 num을 붙여서 하나의 배열(result)로 만든다.
char[] result = new char[abc.length + num.length];
System.arraycopy(abc, 0, result, 0, abc.length);
System.arraycopy(num, 0, result, abc.length, num.length);
System.out.println(result);
//배열 abc를 배열 num의 첫 번째 위치부터 배열 abc의 길이만큼 복사
System.arraycopy(abc, 0, num, 0, abc.length);
System.out.println(num);
String str = "abc";
String str1 = new String("abc");
//전자는 HEAP의 메모리 영역인 String Constant Pool에서 관리되므로
//HEAP에 바로 할당되는 후자보다 유리.
//왜냐하면 String은 기본적으로 불변의 성질을 가져야 함.
//String Constant Pool에 할당된 객체는 재활용이 됨.
//따라서 전자가 유리.
char charAt(int index) //index에 있는 문자를 반환
int length() //문자열 길이 반환
String substring(int from, int to) //(from~to)에 있는 문자열을 반환.(to는 미포함)
boolean equals(Object obj) //문자열 같은지 비교. true, false 반환
boolean equalsIgnoreCase(Object obj) //대소문자 구분없이 비교
char[] toCharArray() //문자열을 문자배열로 변환해서 반환
인텔리제이는 edit Configurations - Program arguments에
값을 입력해서 진행 가능.
//cmd에서 실행 방법
c:\jdk1.8\word\ch5> javac MainTest //소스파일을 클래스로 컴파일
c:\jdk1.8\word\ch5> java MainTest abc 123 //args[0], args[1]과 같이 매개변수로 전달
//커맨드 라인에 숫자를 입력해도 전부 문자열로 처리됨.
//JVM이 입력된 매개변수가 없을 때,
//null이 아닌 크기가 0인 배열을 생성해서 args에 전달하므로
//NullPointerException 발생 X.
배열의 배열로 구성됨. --> 1차원 배열의 묶음.
int[][] score = new int[4][3]; //선언
int[][] arr = new int[][]{{1, 2, 3}, {4, 5, 6}}; //선언과 초기화-1
int[][] arr = {{1, 2, 3}, {4, 5, 6}}; //선언과 초기화-2
//가변 배열 선언 - 0으로 자동 초기화
int[][] score = new int[5][];
score[0] = new int[4];
score[1] = new int[3];
score[2] = new int[2];
score[3] = new int[2];
score[4] = new int[3];
//가변 배열 선언, 초기화
int[][] score = {
{100, 100, 100, 100},
{20, 20, 20},
{30, 30},
{40, 40},
{50, 50, 50}
}