Notice
Recent Posts
Link
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

지니의 개발로그

[Java] 정적 타입 바인딩 (TIL #23일차) 본문

내일배움캠프

[Java] 정적 타입 바인딩 (TIL #23일차)

지니♥︎ 2024. 5. 9. 10:41

🚩 20240508 TIL 내일배움캠프 #23일차

 

🔴 질문

 

기존 변수의 자료형을 바꾸려 하면 컴파일 에러가 발생한다.

변수의 선언은 두 번 하면 안될까?

변수의 자료타입을 바꾸고 싶은데 어떻게 해야 할까?

 

 

🟠 분석

 

자바에서 변수의 자료형은 변수 선언 시 정해지며, 한번 정해진 자료형은 변경할 수 없다.

이것은 자바의 정적 타입 바인딩 특성 때문인데,

정적 타입 바인딩은 변수의 데이터 타입이 컴파일 시점에 결정된다.

 

기존 객체의 타입을 바꿀 수는 없기 때문에

새로운 타입의 객체를 생성하고 값을 대입하는 형식으로 자료형을 바꿔 사용할 수 있다.

 

🟡 참고

 

정적 타입 바인딩 (static type binding)이란?

 

⚪ 특징 :
변수 선언 시 데이터 타입을 명시해야 한다.
한번 선언된 변수의 데이터 타입은 변경할 수 없다.
컴파일 시점에 모든 변수의 데이터 타입이 결정된다.
컴파일러가 타입 체킹을 통해 타입 안전성을 보장한다.

⚪ 장점 : 
타입 안전성 보장 : 컴파일 시점에 타입 오류를 발견할 수 있어 런타임 에러를 방지한다.
메모리 효율성 향상 : 컴파일러에게 변수의 크기를 정확히 알려주기 때문에 메모리 할당이 효율적이다.
실행 성능 향상 : 런타임 시 타입 체킹을 하지 않아도 되므로 실행 성능이 높아진다.
코드 가독성 및 유지보수성 향상 : 변수의 자료형이 명확히 정의되어 있어 코드 이해가 쉬워진다.


⚪ 단점 :
유연성 부족 : 데이터 타입을 변경할 수 없어 유연성이 떨어진다.
타입 캐스팅의 번거로움 : 다른 자료형으로 변환하려면 명시적으로 타입 캐스팅이 필요하다.
제네릭 프로그래밍의 복잡성 : 타입 안정성을 위해 필요하며, 제네릭 프로그래밍은 코드를 복잡하게 만든다.

 

🟢 배움

 

자바의 변수의 데이터 타입이 컴파일 시점에 결정되고, 프로그램 실행 중에는 변경될 수 없는 정적 타입 언어이다.

자세히 알기 위해서는 프로그램 언어론 관련 내용으로 들어간다. 하나의 궁금증에서 파생되어 정적 타입 바인딩 특성과 타입 캐스팅, 자바의 정적 타입 바인딩 특성에 대해 이해할 수 있었다. 이러한 타입 시스템 개념들을 잘 이해하여 효율적인 자바 프로그래밍을 할 수 있어야겠다.