일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Jenkins
- https://start.spring.io
- 제네릭
- 루프
- maven
- wrapper
- start.spring.io
- 메소드
- 콜렉션
- 인텔리제이
- Scanner
- 박싱
- 싱글턴
- unboxing
- Java
- 자동형변환
- 제너릭
- 싱글톤
- bootstrap
- 무한
- suvlet
- Short
- dependency
- 클래스
- 내장객체
- 언박싱
- 컬렉션
- 스프링
- boxing
- 빌드
Archives
- Today
- Total
Developer Gonie
[1주차] 21. 1차원 배열, 선언방법 3가지 본문
* 배열변수는 참조변수라고 명명함.
배열변수를 출력하면 배열의 시작주소가 출력된다. (=참조변수에 참조값이 들어가있다고 얘기한다.)
배열변수에는 배열의 시작주소(=참조값)가 들어있기 때문이다. 이 원리로 index로 배열 접근이 가능한 것이다.
int형 배열이면 4byte를 건너뛰면 다음 원소가 있겠구나(연속된 메모리 공간을 가짐) 이런식으로 접근됨.
* 같은 타입의 데이터만 배열로 묶어서 사용할 수 있는게 기본이지만
double 형 배열의 경우 이것보다 크기가 작은 int형 데이타는 들어올 수 있어서 다음과 같이 선언 가능.
double [] b = {1.1, 2, 3.3}
단, 실수형의 공간에 정수를 넣은 것이기 때문에 자동적으로 double(실수형)으로 형변환이 이뤄진다.
* 배열변수 선언시 []는 보통 데이터타입과 변수명 사이에 넣는다. 뒤에 넣어도 상관은 없음.
* 되도록이면 세번째 방법을 활용하는게 좋겠다. 사용자로부터 입력받은 걸로 초기화 하고자 한다면.
* 배열의 정의
같은 타입의 데이터를 한 묶음으로 묶어서 관리하는 것이 배열이다.
연속된 메모리 공간을 가지고 있으며 배열의 변수는 시작주소를 저장하고 있는 것이 특징이다.
코드(1차원 배열을 선언하는 3가지 방법)
public class Ex04_01_1차원 {
public static void main(String[] args) {
// 첫번째 방법
int[] a1 = { 10, 20, 30, 40, 50 };
// 두번째 방법
int[] a2 = new int[] { 10, 20, 30, 40, 50 };
// *세번째 방법 : 배열을 위한 공간부터 만들고 나중에 값을 채워넣는 방식. 0으로 초기화되어 있음
// 사용자에게 입력받은 값으로 배열을 만들고 싶은 경우 이 방식을 이용한다.
int[] a3 = new int[5]; // 아직 데이터를 넣기 전이어서 기본적으로 0이 들어가 있음.
a3[0] = 10;
a3[1] = 20;
a3[2] = 30;
a3[3] = 40;
a3[4] = 50;
// 배열변수 a에는 첫 방의 주소가 들어가 있어서 index로 접근이 가능한 것이다.
System.out.println("배열의 시작주소: " + a1);
System.out.println("---------------");
System.out.println("배열의 길이: " + a1.length);
for (int i = 0; i < a1.length; i++) {
System.out.println(a1[i]);
}
}
}
실행결과
배열의 시작주소: [I@73a28541 // 배열의 시작주소가 출력된 것임.
---------------
배열의 길이: 5
10
20
30
40
50
'K-DigitalTraining 강의 > 1. Java' 카테고리의 다른 글
[1주차] 23. 2차원 배열, 선언방법 3가지 (0) | 2022.05.20 |
---|---|
[1주차] 22. 확장 for문을 이용해 모든 원소를 한번에 출력하는 방법 (0) | 2022.05.19 |
[1주차] 20. 디버깅 방법 (0) | 2022.05.19 |
[1주차] 19. 반복문에서 사용하게 되는 분기문 (break, continue)의 차이점 (0) | 2022.05.19 |
[1주차] 18. 반복을 위한 while문(반복횟수를 구체화하기 힘든경우 보통 사용) (0) | 2022.05.19 |
Comments