Another Brain

3일차(5월 21일)_ 배열(array) 본문

P/JAVA

3일차(5월 21일)_ 배열(array)

뉸누나ㄴ나 2021. 5. 22. 14:06

http://www.dbguide.net

**GuGuDantest review

 

## 배열(array)
-- 그룹 데이터 자료 저장구조
-- 다차원 배열
>> 1차원
>> 2차원
>> n차원
-- 기본형, 객체형 지원타입

## 1차원 배열 : 선언, 생성, 초기화(할당)
1. 배열 선언
[modifiers] 타입[] 배열명;  // 권장 int[] nos;
[modifiers] 타입 배열명[];

2. 배열 생성
배열명 = new 타입[배열크기];  // nos = new int[5];

3. 배열요소 사용 : 값할당/값가져오기   
배열명[배열요소인덱스번호] = 값; // nos[0] = 100;
배열명[배열요소인덱스번호]

-- 배열요소 인덱스번호 시작은 0 ~ 배열크기-1 범위
-- 배열명 : 참조변수
-- 배열명.length 변수 : 배열크기 저장변수
-- 예외
>> 프로그램 수행중에서 발생하는 문제(오류)
>> ArrayIndexOutOfBoundsException
>> 잘못된 배열요소 접근시에 발생하는 문제(예외)

## 1차원 배열 : 선언 + 생성, 초기화(할당)
1. 배열 선언 및 생성
[modifiers] 타입[] 배열명 = new 타입[배열크기];

2. 배열요소 사용
배열명[배열요소인덱스번호] = 값;

## 1차원 배열 : 선언 + 생성 + 명시적초기화
-- 주의사항 : {}; (반드시 ; 세미콜론을 표기해야함)
1. [modifiers] 타입[] 배열명 = new 타입[]{초기값1, 초기값x};

2. [modifiers] 타입[] 배열명 = {초기값1, 초기값x};


## new 배열 객체 생성 순서(절차)
1. 메모리 할당
2. 기본값 자동 초기화
[3. 명시적 초기값 할당]  // 선택
4. 참조값(reference value) 할당

## 자바 데이터타입 기본값
-- 기본형
>> 정수형 : 0
>> 실수형 : 0.0
>> 논리형 : false
>> 단일문자형 : 공백문자 '\u0000'
-- 참조형
>> 모든클래스(인터페이스), 배열
>> null
>> null의미 : 어떠한 객체도 참조하지않고있음

## 2차원 배열   
-- 행과 열의 구조를 갖는 배열
-- 행마다 열의크기를 동일하게 생성
-- 행마다 열의크기를 다르게 생성
-- 2차원배열명.length : 2차원배열의 행크기 저장된 변수
-- 2차원배열명[행번호].length : 해당행의 열크기 저장된 변수
-- 행번호 시작 : 0
-- 열번호 시작 : 0

## 행마다 열의크기를 동일하게 생성
1. 선언, 생성, 초기화
-- 선언
[modifiers] 타입[][] 2차원배열명;  // 권장
[modifiers] 타입 2차원배열명[][];

-- 생성
2차원배열명 = new 타입[행크기][열크기];

-- 초기화(배열요소 사용)
2차원배열명[행번호][열번호] = 값;

2. 선언 + 생성, 초기화
-- 선언 + 생성 
[modifiers] 타입[][] 2차원배열명 = new 타입[행크기][열크기];

-- 초기화(배열요소 사용)
2차원배열명[행번호][열번호] = 값;

3. 선언 + 생성 + 초기화
[modifiers] 타입[][] 2차원배열명 = new 타입[][]{
{value1, value2, value3},
{value1},
{value1, value2, value3, valueX}
}

[modifiers] 타입[][] 2차원배열명 = {
{value1, value2, value3},
{value1},
{value1, value2, value3, valueX}
}

# 행마다 열의크기를 다르게 생성
1. 선언
[modifiers] 타입[][] 2차원배열명;

2. 생성
// 행크기만 지정, 열크기는 각 행마다 각각 다르게 지정생성
2차원배열명 = new 타입[행크기만지정][];

2차원배열명[행번호] = new 타입[해당행의열크기지정];

3. 배열요소 사용
2차원배열명[행번호][열번호] = 값;


## 자바 프로그래밍 컴파일 방법
-- default package 컴파일방법
dos> javac [options] *.java
dos> javac HelloWorld.java
dos> javac -encoding utf-8 HelloWorld.java


=> 클래스이름.class (byte code)

-- package 컴파일방법
dos> javac -d output-dir-name *.java

## 자바 프로그래밍 실행 방법
-- 자바실행 : .class 바이트코드의 확장자를 지정해서는 안됨(. 패키지구분자)

-- default package 실행방법
dos> java [options] main()메서드가있는실행클래스명
dos> java HelloWorld

-- package 실행방법
dos> java [options] 패키지명.패키지명.main()메서드가있는실행클래스명
dos> java HelloWorld

-- main() 메서드 아규먼트 전달 실행방법
dos> java [options] main()메서드가있는실행클래스명 아규먼트데이터1 "아규먼트 데이터x"
=> jvm이 실행시에 클래스명뒤에 공백을 구분자로해서 해당크기만큼의 String 타입의 배열객체를 생성해서 순서대로 배열요소 값을 할당

## Wrapper API
-- 자바의 기본형 타입을 객체형타입으로 변환하는 클래스
-- 문자열형식의 숫자데이터를 int 타입으로 변환 예시

int teamLenth = Integer.parseInt(args[0]);
Comments