1. 배열 Array
1) 변수 variable
- 단, '하나의 값'을 저장할 수 있는 메모리 공간이다.
2) 배열
- '같은 타입의 데이터를 여러 개'를 저장할 수 있는 메모리 공간이다.
- index는 0부터 시작
- 배열은 단지 멤버 객체들을 가리키는 index와 주소만 관리
- 배열을 선언 후 초기화하지 않으면 null값을 가리킨다.
- 배열은 한 번 초기화되면 길이를 늘리거나 줄일 수 없다.
3) 클래스
- '여러 타입의 데이터를 여러 개'를 저장할 수 있는 메모리 공간이다.
4) 배열의 구조
# 변수
int num = 10;
# 배열
1) int arr[] =
int[] arr = new int[3];
- 변수 arr는 참조형 변수이 된다.
- int형 메모리 공간이 3개가 있으므로, 4byte * 3 = 12byte
- 타입형 뒤에 [] 를 붙여쓰는 것을 추천한다!
2) syso(arr);
- arr의 주소값을 반환한다.
- ex: [I@7852e922
- [ : 배열, I : Integer, e : 16진법
3) 참조 변수는 자동으로 해당 데이터 타입에 맞는 값으로 초기화된다.
syso(arr[0]); // 0
syso(arr[1]); // 0
syso(arr[2]); // 0
4)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package arrayex; public class ArrayTest01 { public static void main(String[] args) { // 변수 int num1 = 10; // 변수의 선언과 초기화 System.out.println(num1); // 10 int num2; // 변수의 선언 num2 = 20; // 변수의 초기화 // 배열 int[] arr = new int[3]; // 변수의 선언 System.out.println(arr); // 주소값: [I@7852e922 // [ : 배열, I : Integer, e: 16진법 System.out.println(arr[0]); // 0 System.out.println(arr[1]); // 0 System.out.println(arr[2]); // 0 int[] arr2 = null; // 참조형 변수의 선언과 초기화 arr2 = new int[3]; System.out.println(arr2); } } | cs |
5) arr.length : 배열 arr의 길이를 나타낸다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package arrayex; public class ArrayTest02 { public static void main(String[] args) { int[] arr = new int[3]; arr[0] = 10; arr[1] = 20; arr[2] = 30; // arr[3] = 40; // java.lang.ArrayIndexOutOfBoundsException: 3 // for(int i=0; i<3; i++) { for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } System.out.println("배열의 길이: " + arr.length); } } | cs |
2. 변수의 초기값
boolean : false;
char : '\u0000';
byte, short, int: 0;
long : 0.0L;
float : 0.0F;
double : 0.0;
참조형 변수 : null;
# ASCII 코드는 8bit로 구성되어 있어 총 256개의 숫자, 문자, 특수 문자를 사용할 수 있었지만, 영어가 아닌 문자를 표현하기에는 어려웠다.
그래서 이를 보완한 것이 유니코드인데, 세상의 모든 문자를 표현할 수 있는 문자 세트이다.
총 16bit로 구성되어 65,536개의 문자들을 표현할 수 있다.
'\u'는 유니코드임을 명시적으로 보여주는 것이다.
3. 배열의 사용법
1) 명시적 초기화
int[] arr = new int[3];
- 3개라고 명시적으로 표기
2) 암시적 초기화
int[] arr = new int[] { 10, 20, 30 };
int[] arr = { 10, 20, 30 };
- 이미 값을 알고 있을 때 사용하는 것이 편함!
- 한 줄로 모든 데이터를 초기화 가능
'JAVA > JAVA1' 카테고리의 다른 글
JAVA1_day13 | 배열 Array 연습문제 (2) (0) | 2017.12.26 |
---|---|
JAVA1_day12 | 배열 Array 연습문제 (1) (0) | 2017.12.22 |
JAVA1_day11 | 제어문 중간테스트 (0) | 2017.12.21 |
JAVA1_day11 | 조건문 If 문 연습문제 (3) (0) | 2017.12.21 |
JAVA1_day10 | 추가공부 (0) | 2017.12.21 |