안녕하세요! 첫 게시글입니다! 많이 부족한 실력이지만 열심히 해보겠습니다!!
많관부!!!🙇🏻♀🙇🏻♀
배열이란? 하나의 공간에 여러개의 값을 담을 수 있는 개념 입니다.
"같은 자료형의 값" 으로만 담을 수 있다.
정확히는 배열의 각 인덱스 자리에 실제 값이 담깁니다.
일반적으로 1 2 3 4 로 시작할것 같지만 인덱스는 0부터 시작합니다.!!! ⭐
배열을 왜 사용하나요?
변수는 하나의 공간에 하나의 값만을 담을 수 있습니다. 따라서 대량의 데이터들을 보관하고자 할 때 각각의 변수를 만들어서 따로 관리해야하는 복잡함이 있지만, 배열을 사용하게 된다면 더 간단해지겠죠 ?!
1. 배열의 선언 (표현법)
[표현법]
자료형 배열명 [];
자료형[] 배열명;
EX)
int arr[];
int []arr;
배열을 선언과 동시에 할당하기 = 배열 만듦과 동시에 크기를 지정해줍니다.
int[] arr = new int[5];
배열의 선언, 할당, 초기화를 다 동시에 해보기
int[] arr1 = new int[] {1,2,3,4};
int[] arr2 = {1,2,3,4};
만약 System.out.println(arr1 == arr2);
이렇게 한다면 결과값은 어떻게 될까요???
당연히 false입니다!!!
각각의 변수에 담겨있는 주소값을 비교하기 때문입니다. 원하는 값을 얻으려면 인덱스를 비교하도록 해요 !
주소값을 담는변수 => 참조변수(레퍼런스변수)!
실제 리터럴값을 곧바로 담는 변수 => 일반변수!
2. 배열의 장점
반복문으로 활용이 가능합니다!
for(int i=0; i<=4; i++){
arr[i]=i;
}
for(int i=0; i<=4; i++){
System.out.println(arr[i]);
}
이런식으로 코드를 작성한다면 sysout을 일일히 하나씩 안적어도 되겠죠 ?
System.out.println(arr); => 실제 arr 박스에는 "주소값" 이라는게 담겨져있기때문에
반드시 인덱스로 출력하여야 원하는 값을 얻을 수 있습니다.
System.out.println(arr[i]);
3. 배열의 예시
public void method1() {
int[] iArr = new int[3]; // 0번 ~ 2번 인덱스
double[] dArr = new double[4]; // 0번 ~ 3번 인덱스
for(int i =0; i<3 ; i++) {
System.out.println(iArr[i]);
}
for(int i =0; i<4 ; i++) {
System.out.println(dArr[i]);
}
내가 각 인덱스에 초기화를 하지 않아도 값들이 담겨있습니다.
그 이유는 Heap영역에는 절대 빈공간이 존재할 수 없기 때문입니다.
따라서 공간이 만들어질때 JVM이 기본적으로 초기화(대입)을 진행해줍니다.
JVM이란 ?
Java Virtual Machine의 줄임말
말 그대로 직역한다면 자바를 실행하기 위한 가상의 컴퓨터(기계)
자바 프로그램 실행환경을 만들어주는 소프트웨어라고 생각하면된다.
자료구조는 알면 코드를 이해하는데 도움이 되니 한번 검색해보세요 !!
나이를 모두 더하는 프로그래밍을 해보자!
public void method2() {
int age1 = 15;
int age2 = 23;
int age3 = 50;
int age4 = 34;
int age5 = 25;
System.out.println(age1);
// 반복문 사용 불가
for(int i=1; i<6; i++) {
System.out.println(agei); //agei 라는 이름의 변수를 찾고있음
System.out.println(age + i); //age 라는 이름의 변수를 찾고있음
}
*/
}
반복문을 사용하지 못합니다.
만약, 배열을 가지고 프로그래밍을 하게 된다면 ?
public void method(){
int[] ages = new int[5];
ages[0] = 15;
ages[1] = 23;
ages[2] = 50;
ages[3] = 34;
ages[4] = 25;
// 인덱스 값 출력
int sum = 0;
for(int i =0; i<ages.length; i++ ) {
sum += ages[i];
}
}
sum += ages[i] 는 누적합 공식이다.
무식한 방법이지만 이해가가지 않으면 누적합 공식을 외우는것이 좋다.
그냥 딱 봤을때 ! 오 누적합~! 이렇게 ,,ㅎㅎ
이런식으로 나이의 합을 구할 수 있게됩니다.
배열을 공부하면서 알아야할 에러 (배열이 아니더라도,,!!)
NullPointerException
값이 들어가야할 자리에 null이 들어갔을경우에 발생하는 에러이다.즉, 실제 값이 아닌 null을 가지고 있는 객체/변수를 호출할 때 발생하는 예외이다.
다시한번 배열을 공부하면서 자료구조에 대해서 한번더 알아볼 수 있었다.다음 시간에는 배열의 복사에 대해서 알아보도록 하자!
공부중이라 틀린 부분도 있을수 있습니당,,
댓글로 남겨주세요 ~ !! 같이 공부해요 ~!!
'개발관련' 카테고리의 다른 글
MSA(2) 로드밸런싱, 서킷브레이커, API GW, 보안구성 (0) | 2024.08.02 |
---|---|
MSA란 무엇일까 ? (2) | 2024.08.01 |
Window AWS배포 - EC2, RDS를 활용하여 배포하기편 (EC2접속하기) (0) | 2024.08.01 |
자바 꽉자바! : (3)배열의 예시와 연습 (2) | 2023.11.24 |
자바 꽉자바! : (2)배열의 복사에 대해 알아보자! (0) | 2023.09.21 |