본문 바로가기
IT/Java

Java 배열 개념, 특징, 기초

by Jeami 2013. 6. 23.
반응형


이제 막 프로그래밍 언어를 배우는 분들에게 까다로운 챕터 중 하나가 배열이라고 생각합니다. 원리는 알겠지만, 어디서 어떻게 사용해야 하는지 모르는 경우가 다반사!! 실무에서 접해본다면 이게 무슨 외계어인가하는 난해함과 난감함을 느끼될 배열!!

하지만 차근차근 하나하나 살펴본다면 그리 어렵지 않습니다!!(저의 바램..ㅠㅠ)

배열을 사용하는 이유는 한꺼번에 많은 Data를 담기 위함입니다. 사실 실무 프로그램 대부분은 대량의 DB를 바탕으로 하기 때문에 어느 분야에서든 배열은 필수적인 개념이자 사용해야만 하는 것입니다. 배열을 사용하지 않고서는 프로그래밍할 수가 없게 되는 것이지요(저도 초보인지라 배열은 어떻게 이용해야 할지.....ㅠㅠ)

프로그래밍 언어를 공부한다는 것은 100% 이해하면서 다은 단계로 나가는 것이 거의 불가능에 가깝습니다. 그렇기 때문에 초급 프로그래머는 100% 이해보다는 스스로가 이해해야 할 부분과 사용법을 암기하는 부분을 잘 구별해야 한다고 생각합니다. 하나하나 분석하는 것도 중요하지만 전체그림을 보고 처음부터 끝까지 살펴본 후 반복적으로 그것을 계속 살펴본다면 어느정도 익숙해지고 쉽게 다가오게 되는데, 그때 100% 이해하고자 달려들면 될 것 같네요.(개인적인 의견으론..)

여튼 이래저래 서론이 길었습니다^^;

이제 배열에 대해 공부해볼게요.

한번에 모든 내용을 담을 수 없기 때문에 적당한 분량씩 포스팅 하도록 하겠습니다.


1. 배열의 특징

같은 Data Type의 변수들을 한꺼번에 여러 개를 생성할 수 있습니다.

int[] a = new int[10];

=> int[]는 Data Type을 의미합니다. 그리고 이것은 배열 클래스 타입이라고도 합니다. 때문에 a라는 객체로 인스턴스를 생성해 줄 수 있는 것이지요.

Data Type을 이용한 배열 클래스 생성의 예를 들어보면,

-------------------------

byte[] a = new byte[];

int[] a = new int[];

long[] a = new ling[];

------------------------------------------

이런 식으로 사용할 수 있겠네요.

그리고 클래스를 이용한 배열 클래스 생성의 예는.

---------------------

String[] b = new String[]

Image[] b = new Image[]

--------------------------

이렇게 표현해 줄 수 있겠습니다.


2. 배열 세부내용

int[] a = new int[10];

=> 이것은 무엇을 의미할까요? int형의 변수 a를 10개 생성하라는 것입니다.

그럼,

int[] a = new int[]{1,2,3,4,5,6,7,8,9,10};

int[] a = {1,2,3,4,5,6,7,8,9,10};

=> 이 두 문장은 무엇을 의미할까요? 배열을 생성한 후 각각의 변수에 일일이 값을 대입한 것을 의미합니다. 하나씩!!

다음의 예를 통해 좀 더 자세히 알아보도록 하겠습니다.


자바 배열



객체 a,b,c 모두 배열을 생성해주는 방법입니다. 

아래는 실행 결과!

자바 배열

a,b 객체 배열은 같은 방법이라고 보시면 됩니다.

하지만 c 객체 경우에는 생성된 배열 갯수만큼 값을 하나씩 대입해야하는 번거로움이 있지요. Data가 수천 수만개라면 어떻게 될까요 ㅡㅡ; 생각만해도 끔찍하네요.ㅋㅋ

출력문의 length 멤버가 보이시나요?

배열의 갯수를 알기 위해 사용하는 것이고, 사용법도 코딩을 보시면 간단히 알 수 있을 것 같습니다.

일단 이번 포스팅은 여기서 마무리하고 다음에 또 배열을 이어가도록 하겠습니다^^



반응형

'IT > Java' 카테고리의 다른 글

Static 메모리만의 특징  (0) 2013.06.23
Static 메모리 작동 예제  (0) 2013.06.23
Constructor(생성자)  (0) 2013.06.22
Static  (0) 2013.06.22
JVM(자바 동작 원리)  (0) 2013.06.22

loading