
해당 포스트는
Yalco님의 강의를 바탕으로 작성했습니다.
https://www.youtube.com/watch?v=iN22AgS_Chk
자료형은 한정된 메모리 공간에서 용량을 초과하지 않고 많은 작업을 실행하기 위해 작업상 다뤄야 할 데이터들의 종류에 따라 적절하게 메모리 공간을 할당하기 위함.
실제 자료형들이 데이터를 메모리에 저장하는 방식은 각 자료형의 범주에 포함되는 모든 데이터를 가장 효율적으로 저장해서 메모리를 절약하도록 설계
자료형은 데이터 저장 뿐만 아니라 주어진 위치에서 데이터를 읽을 때도 중요
num이라는 변수가 주어졌을 때 몇 칸을 읽을 것인가?다양한 형태(자료형) 데이터를 담는 주머니
일반적으로 선언과 초기화를 동시에 한다
int age = 28;
boolean isMarried = false;
double height = 163.0;
char sex = 'f';
String name = "멋쟁이 박의연"
값이 한번 할당되면 변경할 수 없는 변수
값을 변경할 수 없으므로 특정한 값을 영구적으로 유지하고자 할 때 사용
final 키워드를 사용한다.
final int AGE = 20;
AGE = 28; // error
영원히 20살이고 싶어 ..
식별자(identifier)는 변수, 상수, 클래스, 메소드, 인터페이스, 패키지 등
다양한 프로그래밍 요소의 이름을 의미한다.
예약어(reserved words)는 자바에서 특정 의미를 가지고 있는 단어들로
식별자로 사용 불가한 키워드이다.
Java Kewords 확인하기
규칙
1. 문자, 숫자, 언더스코어(_), 달러사인($) 포함 가능
2. 문자 또는 _, $으로 시작해야 함 - 숫자로 시작할 수 없음
3. 공백(스페이스)를 포함할 수 없음
관례
4. 클래스는 대문자로 시작
5. 상수는 대문자와 _를 사용
6. 변수와 메서드는 낙타표기법(camel case) 사용
Java는 정적 자료형, 자료형이 다른 데이터는 넣을 수 없다.
일반적으로 컴파일 언어는 정적 타입(Static), 인터프리터 언어는 동적 타입(Dynamic)이다.
변수의 타입(자료형)이 컴파일 타임 또는 코드 작성 시점에 결정된다.
변수를 선언할 때 타입을 명시적으로 지정해야 하며, 그 타입은 이후 변경될 수 없다.
코드 실행, 배포 전 개발 단계에서 컴파일을 거치기 때문에
문법적 오류가 있을 때 컴파일 과정에서 컴파일 오류(Compile Error)를 발생시켜 수정할 수 있다.
개발자에게 자료형의 일관성을 요구하는 정적 타이핑에 유리하다.
정적 타입 언어 : Java, C, C++
변수의 타입(자료형)이 런타임에 결정된다.
변수를 선언할 때 그 타입을 명시적으로 지정하지 않으며, 변수가 할당된 값에 따라
타입이 자동으로 결정된다.
타입 선언이 불필요하고, 타입 변환에 있어 유연성(같은 변수에 다른 타입의 값 할당)을 가져 편리하지만 타입 검사가 런타임에 이루어지므로 잘못된 값이 사용될 경우
런타임 오류(Runtime Error)의 위험성이 커진다.
동적 타입 언어인 JavaScript의 한계를 보완하기 위해 TypeScript가 등장했다.
동적 타입 언어 : JavaScript, Python
[참고1] 컴파일 언어와 인터프리터 언어의 비교는 프로그램의 코드 실행 방식에 대한 개념이고, 정적 타입과 동적 타입은 변수의 데이터 타입을 관리하는 방식에 관한 개념이다.
[참고2] 컴파일 타임(프로그램 실행 전), 런타임(프로그램 실행 중)