Java

Java 문법(5) - 배열 기초, String

sangchu 2022. 2. 6. 21:41

배열

  • 하나의 변수 이름으로 여러 개의 변수를 사용할 수 있게 하는 기법
  • 변수 혹은 상수의 모음
  • 배열에 포함된 요소들이 연속 할당되는 것이 특징
  • 하나의 배열은 하나의 자료형으로 통일됨

 

배열의 선언

import java.io.*;
class Main {
		public static void main(String[] args) throws Exception {				
			
			int [] Array = new int[10];

		}
}
  • int [] Array 에서 []는 배열형 변수라는 뜻 → Array 변수는 배열이라는 것을 나타냄
  • new int[10]; 에서 new 는 변수에 메모리 공간을 할당할 때 사용하는 단어로, 참조형 자료형에 메모리 공간을 할당할 때 사용
    • 참조형 자료형: 기본형 자료형 제외한 나머지 자료형 모두
    • 참조형 자료형의 경우 new 를 사용하여 메모리를 할당하지 않으면 사용할 수 없음
  • 위 예제에서 int형 배열 자료형을 선언했음에도 new 를 통해 메모리를 할당함 → 기본형 자료형을 사용했을지라도 배열은 그 자체로 참조형이기 때문

 

배열 사용하기

  • 배열은 0부터 시작 → 10칸의 배열이 선언되어 메모리에 할당받으면, 메모리에는 순서가 0부터 시작하는 10칸의 메모리 공간 생성됨

  • n칸의 배열을 생성했다면, 그 배열은 0번 메모리부터 (n-1)번 메모리까지 사용할 수 있음

 

 

String

  • 여러 개의 문자를 하나의 자료형으로 취급하는 문자열 자료형
  • Character 자료형은 1개의 문자만 저장 가능
  • String 자료형은 여러 개의 문자를 저장 가능

 

배열과 String

  • C 프로그램에서는 문자 여러 개 처리하고 싶으면 char형 배열을 사용 → 하지만, 배열은 처음 선언할 때 전체 길이를 한정 짓기 때문에 저장할 수 있는 데이터의 최대치가 정해져 있음 → java는 String으로 이러한 문제를 해결
  • 문자열: 여러 개의 문자의 묶음, 큰 따옴표로 감싸서 표현
import java.io.*;
class Main {
		public static void main(String[] args) throws Exception {
			
			char c;
			c = 'G';
			
			System.out.println(c);
		}
}
import java.io.*;
class Main {
        public static void main(String[] args) throws Exception {
            
            String str;
            str = "GURUM";
            
            System.out.println(str);

            //char [] cArr = new char[5];
            //cArr = "GURUM"; 이렇게 사용하는 것은 불가능합니다.
        }
}

 

ASCII 코드

  • 1Byte(8bit)로 표현할 수 있는 숫자를 각각의 문자와 매칭시킨 코드

  • DEC: Decimal의 약자로 10진수 숫자를 뜻함
  • HEX: Hexadeciaml의 약자로 16진수 숫자를 뜻함
  • Oct: Octet의 약자로 8진수 숫자를 뜻함
  • char형에 저장되는 문자가 ASCII코드표에 의해 각각의 글자와 대응되는 숫자로 표현될 수 있기에 Switch문의 조건으로 들어갈 수 있음

 

String 심화 이론

String str = "Hello Java"

  • 공백도 컴퓨터 입장에서는 하나의 문자
  • 문자열 마지막 칸에는 NUL문자가 저장됨

 

클래스와 String

  • String은 참조형 자료형임에도 불구하고 new 를 사용하지 않고 사용할 수 있음 → String변수 선언과 동시에 메모리에 공간이 할당되므로 기본형 변수와 동일하게 사용하면 됨
  • String은 클래스의 형태를 갖고 있음
  • 클래스는 변수와 함수를 동시에 가지고 있는 사용자 정의형 자료형
  • String 자료형은 그 자체로 클래스 → 여러 가지 기능을 한 번에 가지고 있음

 

 

 

 

'바로 실행해보면서 배우는 java'를 학습하며 정리한 문서