본문 바로가기
기록하는 중/JAVA

[Java] 배열

by 성장하는 요롱이 2023. 11. 25.

 

 변수 타입

 

 -  기본 타입 변수 : 실제 값을 변수 안에 저장

 -  참조 타입 변수 : 주소를 통해 객체 참조, 동일한 객체를 참조하는지 다른 객체를 참조하는지 조사

 

 참조 변수의 ==, != 

 

 -  기본 타입(byte, char, short, int, long, float, double, boolean)일 때 : 변수의 값이 같은지 다른지 조사

 -  참조 타입(배열, 열거, 클래스, 인터페이스) : 동일한 객체를 참조하는지 다른 객체를 참조하는지 조사

 

 null, NullpointerException

 

  - null : 변수가 참조하는 객체가 없을 경우 초기값으로 사용 가능, null로 초기화된 참조 변수는 스택 영역 생성

            참조 타입의 변수에만 저장 가능

  - NullPointerException : 참조 변수가 null 값을 가지고 있을 때 : 객체의 필드나 메소드를 사용하려고 했을 때 발생

 

 배열

 

  -  같은 타입의 데이터를 연속된 메모리에 저장하는 구조.  

  -  각 데이터 저장 위치는 인덱스로 접근

  -  배열 이름 : 배열의 시작 주소

  -  중복된 변수 선언 줄이기 위해 사용

  -  반복문 이용해 요소들을 쉽게 처리

  -  배열의 요소는 각괄호[ ] 안의 인덱스로 구분되며 0부터 시작.

  -  배열의 요소의 개수는 '배열명.length'로 얻을 수 있음.

  -  배열 생성  

new 데이터 타입 [요소 수];                  ex ) new int[3]

  -  배열 선언(배열 변수 선언), 이때 변수명은 배열의 시작 주소를 저장

데이터 타입[ ]  변수명;                    or                     데이터 타입 변수명 [ ]

  -  배열 변수는 참조 변수 , 배열이 생성되기 전에 null 로 초기화 가능

데이터 타입 [ ]  변수 = null;       ※  배열 변수가 null 값을 가진 상태에서 인덱스 못함

 

  배열 선언과 사용

 

데이터 타입[ ] 배열명 = null;
배열명 = new 데이터 타입 [ 배열의 크기 ] ;
데이터 타입[ ] 배열명 = new 데이터 타입 [ 배열의 크기 ]
int [  ]  num;  // 배열 선언
num = new int[5] ;    // 배열 생성
int [  ]   num = new int[5];   // 배열 선언과 동시에 생성

 

 배열 선언시 자료형의 디폴트값

 

데이터 타입 초기화
byte 0
short 0
int 0
long 0
float 0.0f
double 0.0
char ' ₩u0000'(null)
boolean false
Object null
참조형 null

 

 배열 초기화

 

※  자바에서는 배열 변수를 선언할 때 배열 크기를 지정 할 수  없다.

  int arrayValue[5]   ( X )

  -  배열 생성과 초기화를 동시에 진행하는 방법 

데이터 타입[ ] 배열명 = new 데이터타입[ ] {값1, 값,2, 값3,...};
데이터 타입[ ] 배열명 = {값1, 값2, 값3,...};

 

 배열 복사

 

  -  배열은 한번 생성하면 크기 변경 불가

  -  더 많은 저장 공간이 필요하다면 큰 배열을 새로 만들고 이전

  -  배열로부터 항목 값들을 복사

 

 배열 복사 방법

  

  - Arrays 클래스 이용

  - for 문 이용

public class ArrayCopy{
        public static void main(String[ ] args){
             int[ ] oldIntArray = { 1, 2, 3};
             int[ ] newIntArray = new int [5];

             for(int i = 0; i < oldIntArray.length; i++){
                        newIntArray[i] = oldIntArray[i];
             }
             for(int i = 0; i < newIntArray.length; i++){
                        System.out.print(newIntArray[i] + ", ");
             }
  }
}

 

  -  System.arraycopy() 메서드 이용

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length))

src  : 원본 배열
srcPos : 원본 배열 본사 시작 인덱스
dest : 새배열
destPos : 새배열 붙여넣기 시작 인덱스 
length : 복사 항목수

 

 명령행 매개변수

 

  -  프로그램을 실행할 때 함께 전달하는 정보를 의미.

  -  java 클래스 ( 문자열0, 문자열1, 문자열2, ... , 문자열 n-1 ) 

      →  String[ ] args = { 문자열0, 문자열1, 문자열2, ..., 문자열 n-1 )  : main() 메서드 호출 시 전달

      →  public static void main( String [ ] args) {

            ...

         }

  -  args는 String 타입의 배열 주소를 가지는 변수인데 이것을 명령행 매개변수라고 함.

'기록하는 중 > JAVA' 카테고리의 다른 글

[Java] 2차원 배열  (0) 2023.11.28
[Java] 확장 for 문  (0) 2023.11.28
[Java] 반복문 - for , while, do ~ while, continue, return  (0) 2023.11.21
[Java] switch ~ case, break  (0) 2023.11.21
[Java] 조건문 - if  (0) 2023.11.21