JAVA - 배열

안녕하세요 .

국비 기록용으로 남길려고합니다 

참고 하실때 도움되셨으면좋겠습니다 ..!(너무믿지 말아주세요 ...)


배열

같은 자료형 의 변수를 하나의 묶음으로 다루는것

배열은 저장된 값마다 인덱스 0부터 시작하여 설정

 

배열 선언

//배열선언방법
//자료형[] 배열변수명; ★★★★
//자료형 배열변수명[];
//2가지  방법이존재하는데 편한거사용가능하다
//하지만 처음에 알아보기 쉬운 자료형[] 배열변수명; 이방식을 주로 사용하는것 같다.
int[] age;
int age1;

double[] ave;
double ave[];

char[] ch;
char ch[];

String[] name;
String name[];

 

배열 할당

//배열할당
//선언된 배열을 크기를 할당한다.
//배열변수명 = new 자료형[배열크기];
int[] age;
String[] name;

age  = new int[5];     //int형 배열에 최대 5개의 공간을 부여
name = new String[10]; //String형 배열에 최대 10개의 공간을 부여

 

 

배열 저장 구조

배열은 참조 변수로 Heap영역에 할당되며 배열 공간의 주소를 저장

배열 공간은 주소를 이용해 인덱스를 참조하는 방식으로 값 처리

 

배열선언을 하면 Stack 영역에 메모리는 생성만 해두는것이고

배열 할당을 하면 Heap영역에 배열크기를 지정한만큼 공간을 생성해서 주소값을 할당받는다.

 

개인적으로 설명하기에는 많은 양이서 정리를잘해두신분 링크걸어요

정리엄청잘해두셧습니다!

 

https://yaboong.github.io/java/2018/05/26/java-memory-management/

 

자바 메모리 관리 - 스택 & 힙

개요 Java 에서 메모리 관리는 어떻게 이루어지는지 알아보기 위함. Stack 과 Heap 영역 각 역할에 대해 알아본다. 간단한 코드예제와 함께 실제 코드에서 어떻게 Stack 과 Heap 영역이 사용되는지 살펴

yaboong.github.io

 

배열 초기화

배열 초기화란 배열인덱스영역에 값을 처음 대입한것을 초기화라고한다.

아래에 반복문으로 초기화 하는방법도있다 .

//배열 선언
int[] age;
int[] num;
String[] name;

//배열 할당
age  = new int[5];
num  = new int[10];
name = new String[5];


//배열 초기화
//배열의 index 순서는 0~시작 한다.
age[0] = 1;
age[1] = 2;
age[2] = 3;
age[3] = 4;
age[4] = 5;

String[0] = "안";
String[1] = "녕";
String[2] = "하";
String[3] = "세";
String[4] = "요";

//반복문으로 초기화하기
for(int i = 0; i < num.length; i++){
    num[i] = i + 1;
}

 

선언과 동시에 초기화

배열 선언, 할당, 초기화 작업을 따로따로하면 코드양도 길어지도 가독성도안좋아지고 해서 선언과 동시에 초기화 하는방식도있다.

// 배열 선언과 동시에 초기화

// 방법1.
// 자료형[] 배열변수명 = {값,값,값,}; //이런식으로 작성해주면 배열크기를 작성안해도 알아서 배열크기를 지정해준다.
// 방법2.
// 자료형[] 배열변수명 = new 자료형[] {값, 값, 값}; //위에랑 같은방식이지만 new 키워드를 추가로 작성해준것이다. 
// 둘중에 편한걸로 작성하면된다.

int[] age = {1, 2, 3, 4, 5};
String[] name = new String {"안", "녕", "하", "세", "요"};
char[] ch = {'A', 'B', 'C', 'D','E','F'};

 

배열 값 확인

//배열 값 확인하는방법
//배열변수명[index];

String[] str = {"가", "나", "다", "라"};

str[0]; //가
str[1]; //나
str[2]; //다
str[3]; //라

 

실습문제

 
// 실습 문제1
// 1~10 까지 배열로 출력하라
    public void practice1(){
        int[] iArr = new int[10];
        for(int i = 0; i < iArr.length; i++) {
            iArr[i] = i + 1;
            System.out.print(iArr[i] + " ");
        }
    }

// 실습 문제2
// 10 ~ 1 까지 배열로 출력하라
    public void practice2() {
        int[] iArr = new int[10];
        
        int length = 10;
        for(int i = 0; i < iArr.length; i++) {
            iArr[i] = length--;
            System.out.print(iArr[i] + " ");
        }
    }

// 실습 문제3
// 입력받은 정수 값의 정수만큼 1 ~ 출력하라
    //실습문제 3
    public void practice3() {
        Scanner sc = new Scanner(System.in);
        
        System.out.print("양의 정수 : ");
        int size = sc.nextInt();
        
        int[] arr = new int[size];
        for(int i = 0; i < arr.length; i++) {
            arr[i] = i+1;
            System.out.print(arr[i] + " ");
        }
    }

'프로그래밍 > JAVA' 카테고리의 다른 글

JAVA - 객체(1편)  (0) 2021.05.23
JAVA - 2차원 배열  (0) 2021.05.23
JAVA - 반복문(for, while), 분기문(break, continue)  (0) 2021.05.14
JAVA - 조건문(if, else, else if, switch)  (0) 2021.05.13
JAVA - 연산자  (0) 2021.05.12
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유