반응형
배열의 선언
배열안에 담기는 데이터의 자료형을 정한 후 배열의 이름 정하기 new 키워드를 사용해 배열의 크기를 정해줌
int[] arr1 = new int[5]
: int형 데이터가 5개 들어가는 배열 생성
크기 5 (메모리 확보), 인덱스 0 ~ 4
배열 초기화
arr1[0] = 100;
arr1[1] = 200;
arr1[2] = 300;
arr1[3] = 400;
arr1[4] = 500;
배열 선언과 초기화를 동시에
int[] arr2 = {100, 200, 300, 400, 500};
배열을 이용한 성적 관리
String[] name= {"김경아","안서영","참사랑"};
int[] score=new int[3];
Scanner scanner=new Scanner(System.in); //사용자에게 데이터 입력받기
System.out.printf("%s의 점수를 입력하세요 : ",name[0]);
score[0]=scanner.nextInt();
System.out.printf("%s의 점수를 입력하세요 : ",name[1]);
score[1]=scanner.nextInt();
System.out.printf("%s의 점수를 입력하세요 : ",name[2]);
score[2]=scanner.nextInt();
System.out.printf("%s의 점수 : %d\n",name[0],score[0]);
System.out.printf("%s의 점수 : %d\n",name[1],score[1]);
System.out.printf("%s의 점수 : %d\n",name[2],score[2]);
scanner.close(); //리소스 반환
실행결과)
김경아의 점수를 입력하세요 : 100
안서영의 점수를 입력하세요 : 85
참사람의 점수를 입력하세요 : 90
김경아의 점수 : 100
안서영의 점수 : 85
참사랑의 점수 : 90
배열의 출력
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = null;
int[] arr3 = null; //메모리가 할당되지 않은 상태
배열의 길이
System.out.println(arr1.length);
배열의 요소 출력
System.out.println(Arrays.toString(arr1));
배열 요소 복사
: arr1이 가리키고있는 메모리 주소의 값(데이터)을 복사한 다른 주소가 arr3이됌
배열 1번의 요소만 복사해와서 새로운곳에 그 요소를 만들고 그새로운곳의 주소를 담고있다
arr3 = Arrays.copyOf(arr1, arr1.length);
System.out.println(Arrays.toString(arr3));
배열 레퍼런스
: arr1의 메모리 주소를 arr2에 대입
arr2 = arr1;
System.out.println(Arrays.toString(arr2));
System.out.println(arr1);
System.out.println(arr2);
System.out.println(arr3);
arr1와 arr2의 주소는 같다 (같은 배열을 가리키고, 같은 배열을 레퍼런스하고 있다)
arr1와 arr3의 주소는 같지않다 (다른 객체다)
기본자료형은 변수에 직접 값이 저장되지만
객체 자료형은 값은 어딘가에 있고 그 값이 있는 곳, 객체가 잇는곳의 메모리 주소만 변수에 담는다
반응형
'Java' 카테고리의 다른 글
[JAVA] Dangling meta character '+' near index 0 (0) | 2020.05.27 |
---|---|
[JAVA] 문자열 String - charAt() (0) | 2020.04.29 |
[JAVA] 오버로딩, 오버라이딩 (0) | 2020.04.15 |
[JAVA] 접근제어자 (0) | 2020.04.12 |
[JAVA] 변수와 메모리 (0) | 2020.04.07 |