Python을 이용하여 웹 개발도 진행하고, 알고리즘 공부를 진행하다가 Java로 언어 변경을 위해서 요즘 열심히 공부 중이다 !
그리고 Python과 달리 Java의 Type을 이용하여 변수를 선언하는 것은 변수에 대해서 확실하게 사용할 수 있어서 메리트로 느껴지고 있다.
근데 왜 int의 i는 소문자이고, String의 s는 대문자인가?!
나는 정말 이해할 수 없는 이 규칙 때문에 궁금해서 찾아보고, 정리하고자 블로그를 켰다.
자바에서 기본 데이터 타입(int, long, double, float, 등)과 객체 타입(String)의 명명 규칙 차이는 자바의 타입 시스템과 관련이 있다.
기본 데이터 타입 (Primitive Types)
소문자 사용: 기본 데이터 타입은 소문자로 시작한다.
- 예: int, long, double, float, char, boolean, byte, short
- 특징:
- 기본 데이터 타입은 자바 언어에 내장되어 있다.
- 메모리 효율성이 높고, 객체 생성 없이 직접 값을 저장한다.
- 기본 데이터 타입은 값 자체를 저장하며, 메모리 상에서 스택에 할당된다.
객체 타입 (Reference Types)
- 대문자로 시작: 객체 타입의 이름은 대문자로 시작한다.
- 예: String, Integer, Long, Double, Float, Character, Boolean, Byte, Short
- 특징:
- 객체 타입은 자바 클래스입니다. 클래스 이름은 관례적으로 대문자로 시작한다.
- 객체 타입은 메모리 상에서 힙에 할당되고, 객체에 대한 참조를 저장한다.
- 자바의 String 클래스는 문자열을 다루기 위해 특별히 설계된 클래스이다.
이유
- 명명 규칙: 자바는 객체 지향 언어로, 클래스 이름은 관례적으로 대문자로 시작한다. String은 자바의 내장 클래스 중 하나로, 이러한 명명 규칙을 따른다.
- 타입 시스템: 자바의 타입 시스템은 기본 데이터 타입과 객체 타입을 구별한다. 기본 데이터 타입은 값 자체를 저장하는 반면, 객체 타입은 객체를 가리키는 참조를 저장한다.
- 자바 표준 클래스 라이브러리: String은 자바 표준 클래스 라이브러리에 포함된 클래스이다. 표준 클래스 라이브러리는 대문자로 시작하는 클래스 이름을 사용하여, 개발자가 자바의 다른 클래스와 구별할 수 있도록 한다.