자바 프로그래밍: 기본자료형과 참조자료형

 자바의 두 주요 데이터 유형인 기본자료형과 참조자료형에 대해서 살펴보겠습니다.

1. 자료형

  1. 자바는 정적 타입 언어이며, 컴파일 타임에 모든 변수 및 표현식의 타입을 검사한다.
  2. 이에 따라 변수의 타입이 컴파일 시점에 결정되며 해당 변수는 프로그램 실행 중에 다른 타입으로 변경할 수 없음.
  3. 따라서 자바에서는 변수를 사용하기 위해 선언,대입의 단계를 거쳐야 한다.
     int a; //선언 a = 10; //대입int b = 10; //선언과 대입을 동시에              //자료형의 종류들 float c = 3.14F; long d = 10000000L; boolean e = true;  
  4. 자료형이 필요한 이유
    1. 변수가 사용할 공간의 크기와 특성에 따라 자료형을 사용하여 변수를 선언한다.
    2. 즉 변수가 사용할 메모리 크기와 타입을 구분하기 위해 자료형을 사용한다.

2. 자료형 실습

  1. 프로그래밍에서 기본자료형은 실제 값을 메모리에 직접 저장하고 고정된 크기를 갖는 반면, 참조자료형은 객체의 메모리 주소를 저장하고 가변적인 크기를 가진다. 이러한 차이는 메모리 관리와 성능 최적화에 중요하며, 간단한 데이터 처리에는 기본자료형이, 복잡한 객체 지향 프로그래밍에는 참조자료형이 적합하다.
  2. 문자열 리터럴과 `String` 클래스
     String str = "Hello World";             
    • 자바에서 문자열은 큰따옴표(” “)로 둘러싸인 텍스트로 표현되며, 이를 문자열 리터럴이라고 한다.
    • 문자열 리터럴은 자바의 String 클래스를 사용하여 표현된다.
    • String은 참조자료형에 해당하며, 이는 문자열 데이터가 힙 메모리에 저장되고 변수 str은 이 메모리 주소를 참조한다는 것을 의미한다.
    • 자바에서는 문자열 리터럴이 자동으로 String 객체로 관리되기 때문에, 개발자는 별도의 객체 생성 과정 없이 문자열을 쉽게 사용할 수 있다.
  3. new 키워드와 문자열 객체 생성
     String str1 = new String("Hello World");             
    • 자바에서 new 키워드는 새로운 객체를 생성하는 데 사용된다.
    • String 클래스에 new 키워드를 적용하면, 문자열 리터럴 “Hello World”를 바탕으로 새로운 String 객체가 생성되고, 이 객체는 힙 메모리의 독립된 영역에 할당된다.
    • 이 방식으로 생성된 문자열은 기존에 존재하는 동일한 내용의 문자열 리터럴과는 다른 메모리 주소를 가지게 된다.
    • 따라서, new를 사용하여 생성된 문자열은 같은 내용의 다른 문자열 리터럴과는 별개의 객체로 취급된다.
  4. 문자열 비교: == 연산자와 equals() 메소드
    String str = "Hello World";
    String str1 = new String("Hello World");
    String str2 = "Hello World";
    System.out.println(str == str1); //false : new 키워드를 사용해서 만든 문자열은 선언:대입으로 한 변수와 다르다.
    System.out.println(str == str2); //true : new 키워드를 사용하지 않은 문자열들은 같은 값이라면 같은 자리를 참조하게 된다.
    System.out.println(str.equals(str1)); // false : 선언,대입으로 한 변수와 new 키워드를 사용한 변수와 비교해도 True 가 나오는 것을 볼 수 있다.
  5. 자바에서 == 연산자는 두 객체의 메모리 주소를 비교하는 데 사용된다. 만약 두 변수가 메모리상에서 같은 객체를 참조하고 있다면 true를, 그렇지 않다면 false를 반환한다. 이 코드에서 strstr1은 내용은 같지만, str은 문자열 리터럴을 참조하고 str1new 키워드를 사용하여 생성된 별도의 객체를 참조하기 때문에, str == str1false를 반환한다.
  6. 반면, equals() 메소드는 두 문자열 객체의 내용이 같은지 비교한다. 이 방법으로 strstr1을 비교하면, 두 문자열의 내용이 동일하기 때문에 true를 반환한다.

– 자바에서 기본자료형과 참조자료형의 사용 적절성

기본자료형과 참조자료형의 선택은 메모리 관리와 성능 최적화에 중요한 역할을 한다. 간단한 데이터 처리에는 기본자료형이, 복잡한 객체 지향 프로그래밍에는 참조자료형이 적합한 이유는 다음과 같다.

  1. 메모리 효율성: 기본자료형은 스택 메모리에 저장되며, 고정된 크기를 가지고 있어 메모리 관리가 간단하다. 반면, 참조자료형은 힙 메모리에 저장되며, 동적으로 메모리가 할당되고 해제된다.
  2. 실행 속도: 기본자료형은 메모리에서 직접 접근하여 값을 처리하기 때문에 실행 속도가 빠르다.
  3. 복잡한 객체 관리: 참조자료형은 객체의 참조를 저장한다. 이는 복잡한 객체 지향 프로그래밍에서 유연성과 재사용성을 제공한다.
  4. 가비지 컬렉션: 참조자료형은 가비지 컬렉션에 의해 메모리 관리가 이루어진다.

결론적으로, 간단한 데이터 처리와 빠른 실행 속도가 필요할 때는 기본자료형을, 복잡한 객체 관리와 유연한 메모리 관리가 필요할 때는 참조자료형을 사용하는 것이 적절하다.

단축키


// Ctrl + D = 한 줄 삭제
// Ctrl + alt + 화살표 = 현재커서에 있는 행을 화살표 방향으로 복사
// 자바는 CamelCase 사용
// F11 현재 파일 실행
// 주석은 // 을 사용
/*
    멀티라인 주석 사용 가능
*/
// 실행문 단위를 {}(중괄호)로 구분한다.
// 자바는 ;(세미콜론)을 이용해 실행문을 구분한다.
// 자바는 클래스 이름과 파일명을 일치시켜야한다.
    

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top