본문 바로가기

교내 개발 공부/[학교 지원 Study] 자바 프로그래밍 입문

JAVA 기초 문법 | 배열과 메모리 | int | byte | arrays

인프런

자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!

색션 1. JAVA 기초 문법

배열과 메모리

 

8-1 : 배열의 메모리 크기

배열을 구성하는 데이터의 자료형에 따라서 배열의 메모리 크기가 결정된다.

int[] arr == new int[3];

1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte

int형 : 4byte

arr: 12byte

 

8-2 : 배열을 가리키는 배열이름

기본 자료형 데이터를 담고 있는 변수와 달리 배열 변수는 배열 데이터의 주소를 담고 있다.

int i = 10;               int[] i = new int[3]

10                          i[] 주소 -> 10   20  30

| 변수 i                   배열 i         i[0] i[1] i[2]

                              i 해당 번호 레퍼런스

 

8-3 : 배열 기본속성

기본 자료형 데이터를 담고 있는 변수와 달리 배열 변수는 배열 데이터의 주소를 담고 있다.

package pjtTest;

import java.util.Arrays;

public class EX13 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 배열 기본속성
		int[] arrAtt1 = {10, 20, 30, 40, 50, 60};
		int[] arrAtt2 = null;//비어있는상태
		int[] arrAtt3 = null;
		
		// 배열 길이
		System.out.println("arrAtt1.length : " + arrAtt1.length);
		
		// 배열 요소 출력
		System.out.println("arrAtt1: " + Arrays.toString(arrAtt1));
		
		// 배열 요소 복사
		arrAtt3 = Arrays.copyOf(arrAtt1, arrAtt1.length);
		System.out.println("arrAtt3 : " + Arrays.toString(arrAtt3));
		
		// 배열 레퍼런스
		arrAtt2 = arrAtt1;
		System.out.println("arrAtt1 : " + arrAtt1);
		System.out.println("arrAtt2 : " + arrAtt2);
		System.out.println("arrAtt3 : " + arrAtt3);
		
	}

}

arrAtt1.length : 6

arrAtt1: [10, 20, 30, 40, 50, 60]

arrAtt3 : [10, 20, 30, 40, 50, 60]

arrAtt1 : [I@3941a79c

arrAtt2 : [I@3941a79c

arrAtt3 : [I@506e1b77

 

8-4 : 다차원 배열

배열 안에 또 다른 배열이 존재한다.

-3차원 배열부터는 사용 잘 안 함. 어마어마하게 메모리 용량이 갑자기 너무 많은 메모리를 필요로하게 됨. 그러면 프로그램 기능 저하. 그렇게 할 정도로 많은 데이터를 다루면 로직이 복잡해질 수 있음. 간혹 2차원 배열은 종종 쓰이기도

package pjtTest;

import java.util.Arrays;

public class EX14 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 다차원 배열
		int[][] arrMul = new int[3][2]; //배열 안에 또 다른 배열이 있는 2차원 배열
		arrMul[0][0] = 10;
		arrMul[0][1] = 100;
		arrMul[1][0] = 20;
		arrMul[1][1] = 200;
		arrMul[2][0] = 30;
		arrMul[2][1] = 300;
		
		System.out.println("arrMul[0] : " + Arrays.toString(arrMul[0]));
		System.out.println("arrMul[1] : " + Arrays.toString(arrMul[1]));
		System.out.println("arrMul[2] : " + Arrays.toString(arrMul[2]));
		
	}

}

import java.util.Arrays필요. arrays사용하려면