본문 바로가기
Book

자바의 정석 - 자바 기본기 정리하기 (4)배열

by devLog by Ronnie's 2021. 11. 10.

들어가며


문제 구현에 있어서 자바에 대한 기본기의 부족함을 느껴서 오랜만에 자바의 기본 저서인 자바의 정석을 다시 피게 됐다. 그러면서 정말 신기한 경험을 하게 되었는데 바로 예전에 잘 이해가 안가서 읽고 넘어갔던 내용들이 이제는 내 머릿속에서 자연스럽게 그려지는 경험을 하게 되었다. 그동안에 시간들이 헛되지는 않았나보다.

 

어느 곳에서나 기본기는 중요하듯이 이번 기회를 통해 자바 기본기를 더 단단히 다지고자 챕터별로 글로 정리하면서 다시 한번 암기를 하고 좀 더 디테일하게 알아야 되는 곳은 챕터를 나눠서 자바의정석에 나온 내용 + 보강된 내용을 더해서 정리를 하고자 한다. 

 

정리


배열
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것은 배열이라고 함
선언 방법은  타입[] 변수이름; -> int[] score;

배열 생성
배열은 선언 후 생성하거나 선언과 동시에 생성가능하다. -> 선언만 한다면 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이기 때문에 생성을 해줘야 비로소 값을 저장할 수 있는 공간이 만들어지는 것이다.
선언 후 생성 -> int[] score; score = new int[5]; 선언과 동시 생성 -> int[] score = new int[5];

배열의 초기화
배열은 생성과 동시에 자동적으로 기본값 0 으로 초기화 된다. 근데 생성시 원하는 값으로 초기화를 하고 싶을때는 다음처럼한다.
int[] score = new int[]{50,60,70,80} 또는 for문을 돌려 값을 넣어줌

스트링 배열
배열의 타입이 String인 경우에도 int 배열과 마찬가지이다. 숫자 배열과 다르게 초기화 값은 null로 초기화된다.

String 클래스
사실 문자열이라는 용어는 문자를 연이어 늘어놓은 것과 마찬가지이므로 char배열과 같은 뜻이다.
그런데 자바에서는 char배열이 아닌 String 클래스를 이용해서 문자열을 처리하는 이유는 String클래스가 char배열에 여러가지 기능을 추가하여 확장한 것이기 때문이다. 그래서 char배열을 쓰는 것보다 String클래스를 사용하여 문자열을 다루는 것이 더 편하다.
객체지향개념이 나오기 이전의 언어들은 데이터와 기능을 따로 다루었지만, 객체지향언어인 자바에서는 데이터와 그에 관련된 기능을 하나의 클래스에 묶어서 다룰수 있게 해준다. 여기서 기능은 함수를 의미하며 메서드는 객체지향언어에서 함수를 대신 하는 용어일뿐 같은 뜻이다.
String 객체와 char배열의 중요한 차이점은 String객체는 읽을 수만 있을 뿐 내뇽을 변경할 수 없다. (불변객체)

String 주요 메서드
char charAt(int index) -> 해당 위치에 있는 문자를 반환
int length() -> 길이 반환
String substring(int from, int to) -> 해당 범위의 문자열 반환
boolean equals(Object obj) -> 문자열의 내용이 같은지 확인
char[] thCharArray() -> 문자열을 문자배열로 변환해서 반환 

2차원배열의 초기화
int[][] score = new int[4][3];
int[][] score = {
{1,2,3},
{4,5,6}
       }

Arrays 클래스 
배열을 다루는데 유용한 메서드들을 제공해줌
equals(), toString(), copyOf(), copyOfRange()

댓글