본문 바로가기
Java

[JAVA] Array 배열

by 겅아링 2020. 4. 26.
반응형

배열의 선언

배열안에 담기는 데이터의 자료형을 정한 후 배열의 이름 정하기 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