배열명 : 모든 변수의 대표 이름인덱스 : 첨자, 모든 변수를 구분하는 숫자배열요소 : 배열에 속한 각 변수를 의미int[] 배열명 -- 추천int 배열명[] -- c계열에서 나온 것 자바에서도 함께 쓰임배열명 = new int[생성할 변수의 갯수] int a[] = new int[5];
배열명[인덱스]배열명.length로 알아낼 수 있음
// 기존 배열
int[] a = { 10, 20, 30 };
// 신규 배열
int[] b = new int[5];
// 신규 배열 <- 기존 배열
// for (int i = 0; i < a.length; i++) {
// b[i] = a[i];
// }
// 더 간단하게 처리하는 법
System.arraycopy(a, 0, b, 0, a.length);
// (기존 배열, 기존배열 시작 인덱스, 목적지 배열, 목적지 배열의 시작 인덱스, 보낼 인덱스 갯수)
팁) ctrl 키 + 함수(ex arraycopy) 누르면 system class 열리면서 어떤 식으로 만들어졌는지 볼 수 있음
결과
System.out.println("배열 a");
System.out.println("참조값(주소값) = " + a);
System.out.println(Arrays.toString(a));// 배열 a 확인
System.out.println("배열 b");
System.out.println("참조값(주소값) = " + b);
System.out.println(Arrays.toString(b));// 배열 b 확인

@ = at, @ 뒤가 메모리 참조값(주소값)
Arrays.toString(배열명)- 배열 내용 조회
a = b;

메모리 누수 발생garbage collector가 담당 : System.gc())
public static void ex03() {
// 전체 구구단 출력하기 - 1
// 2 x 1 = 2
// ...
// 9 x 9 = 81
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.println(i + " x " + j + " = " + i * j);
}
}
// 고정 값을 바깥 LOOP에 배치
// ex 단을 2로 고정시키고 1~9 순회, 단을 3으로 고정시키고 1~9 조회
}
public static void ex04() {
// 전체 구구단 출력하기 - 2
// 2x1=2 3x1=3 4x1=4 ... 9x1=9
// ...
// 2x9=18 3x9=27 4x9=36 ... 9x9=81
for (int i = 1; i <= 9; i++) {
for (int j = 2; j <= 9; j++) {
System.out.print(j + " x " + i + " = " + i * j + "\t");
}
System.out.println(" ");
}
// DAN * N 일 때, N 값이 고정값 => N이 바깥쪽 LOOP
}


"%-4d", j * i)"%4d", j * i)
"%-4d", j * i)
public static void ex06() {
// 삼각별 출력하기 - 2 (2중 loop)
// star=12345
// row=1 *****
// row=2 ****
// row=3 ***
// row=4 **
// row=5 *
//
// row=1, star=1~5
// row=2, star=1~4
// row=3, star=1~3
// row=4, star=1~2
// row=5, star=1~1
for(int row=1; row <= 5; row++) {
for(int star=1; star <= 6-row; star++) {
System.out.print("*");
} //6-row = star갯수와 row의 합이 항상 6인 것에서 찾아낸 관계
//star갯수와 row의 합에서 row빼주면 해당 row의 star 갯수만 남음
System.out.println();
}
}
역순출력은 매번 -- 이용해서 풀었었는데
for (int i = 5; i > 0; i--) {
for (int j = i; j > 0; j--) {
System.out.print("*");
}
System.out.println();
}
이렇게 풀지 말고 관계 파악해서 ++로 풀어야 좋음.
public static void ex07() {
// 삼각별 출력하기 - 3 (2중 loop)
// space/star=123456789
// row=1 *
// row=2 ***
// row=3 *****
// row=4 *******
// row=5 *********
//
// row=1, space=1~4, star=5~5
// row=2, space=1~3, star=4~6
// row=3, space=1~2, star=3~7
// row=4, space=1~1, star=2~8
// row=5, space=1~0, star=1~9
for(int row=1; row <= 5; row++) {
for(int space=1; space <= 5-row; space++) {
System.out.print(" ");
} // 5-row : row+space갯수=5, space갯수=5-row
for(int star=6-row; star <= row+4; star++) {
System.out.print("*");
} // 6-row : row+star 시작위치=6, star 시작 위치=6-row
// 4+row : star 종료위치 - row=4, star 종료 위치=4+row
System.out.println();
}
}
🟢 구디아카데미후기 IT국비지원 민경태 강사님 수업 13일차! 🟢
오늘 수업 완전 유익했다!!!
int[] b = new int[5];
new를 통해서 메모리 영역을 할당받는다는 사실도 처음 알았다. (그냥 썼었는데,,)
수업 넘 좋다 ㅋㅋㅋ