티스토리 뷰
배열 선언
int[] int_arrays;
int int_arrays[];
배열 생성
int[] array;
array = new int[5]; // 0으로 초기화. 참조형 배열은 null로 초기화
OR
int[] array = new int[]{1,2,3,4,5};
OR
int[] array = {1,2,3,4,5};
JAVA 에서의 배열의 특징
1) Java에서는 길이가 0인 배열도 생성할 수 있다.
int[] arr = new int[0];
2) JVM이 모든 배열의 길이를 별도로 관리. read-only라서 수정할 수는 없다.
arr.length
3) 배열의 이름 변수에는 배열의 할당된 시작 주소가 저장되어 있다. 따라서 함수의 파라미터로 받는 경우 메모리 할당을 한 후에 넘겨주어야 한다.
int add(int[] num){};
add(new {1,2,3,4,5}); // O
add({1,2,3,4,5}); // X
배열 복사
1) naive 한 방법
int[] arr = new int[]{1, 2, 3, 4, 5}; // source
int[] temp = new int[10]; // 원하는 배열의 크기만큼을 새로 생성
for(int i = 0; i < arr.length; i++) // for문을 돌며 값 복사
temp[i] = arr[i];
arr = temp; // 배열의 시작 주소를 새로 생성한 배열의 주소로 바꾼다
*원래 arr의 메모리는 garbage collector에 의해 해제된다
2) System.arraycopy() 함수를 이용한 복사
arraycopy 함수는 지정된 범위의 값들을 한 번에 통째로 복사한다. 배열은 연속적으로 할당되므로 C에서의 memcopy와 같이 한꺼번에 메모리 복사를 하는 듯하다.
다차원 배열 선언
int[][] int_arrays;
int int_arrays[][];
다차원 배열 생성
int[][] array;
array = new int[5][3]; // 0으로 초기화. 참조형 배열은 null로 초기화
OR
int[][] array = new int[][]{ {1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15} };
OR
int[][] array = { {1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15} };
가변 배열
int[][] arr = new int[5][]; 와 같이 생성하면 각 행마다 다른 길이의 배열을 생성할 수 있다.
'Java' 카테고리의 다른 글
| static method 는 언제 써야할까 (0) | 2020.09.29 |
|---|---|
| Refactoring 참고 링크 모음 (0) | 2020.09.09 |
| 의존성 주입 Dependency Injection (0) | 2020.08.27 |
| valueOf (0) | 2020.08.25 |
| 클래스 멤버 (0) | 2020.05.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Git
- 암호화
- ruby
- WebClient
- 코테 log
- SHA
- gitignore
- ActiveAdmin
- annotation
- DesignSystem
- ASCII
- Java
- 이벤트스토밍
- fetchResults
- Generic
- 실용주의
- Lombok
- TroubleShooting
- querydsl
- effective-java
- SQL 전문가 가이드
- sort algorithm
- 메모리 릭
- IntelliJ
- Spring-Boot
- 이펙티브자바
- point
- aws
- Encoding
- 사고..
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
글 보관함