자바기본기가 부족한 나에게 그동안 공부해왔던것이지만 까먹고 잊어버린것들을 이번에 리마인드 할겸 정말 기초적인 내용부터 기본기를 다지는 방법으로 내용을 채워보겠다.

기본형(primitive type) 참조형(reference type)

자료형은 쿠게 기본형과 참조형으로 나눌수 있다. 기본형 변수는 실제 값을 저장하는 반면 참조형 변수는 어떤값이 저장되어있는 주소(memory adress)를 값으로 갖는다.

기본형 참조형
- 논리형 boolean 객체주소를 저장
- 문자형 char  
- 정수형 byte, short, int  
- 실수형 long, double  

클래스이름 변수이름; // 변수의 타입이 기본형이 아닌 것들은 모두 참조변수이다. 자세한건 밑에서 다시 다루겠다.

기본형의 크기와 범위

Alt text blog.itthis.me

리터럴과 접미사

일단 변수, 상수, 리터럴이 뭔지 알아보자

  • 변수(variable) 하나의 값을 저장하기 위한공간
  • 상수(constant) 값을 한번만 저장할 수 있는 공간
  • 리터럴(literal) 그 자체로 값을 의미하는 것 [아래의 2019값과 33값이 리터럴이다]
int year = 2019;
final int  MAX_AGE = 33;

그렇다면 접미사는 무엇인가??
아래의 3.14F 100L이 접미사가 되겠다. 만약 접미사를 생략하게되면 3.14의 라인은 에러가 나게된다. 그 이유는 값을 double로 리터럴이 간주해버리기 때문이다. 즉 double -> float에 타입이 안맞기 떄문에 에러를 낸다.

float pi = 3.14F;
long hight = 100L

기본형 (Primitive type)

자바를 허면 언젠가는 반드시 알아야할 내용으로 매번 어느책이던 앞부분에서 자세하게 소개되는데 이번엔 자세히 알아보자

논리형 - boolean

논리형에는 boolean 하나밖에 없다. boolean 에는 truefalse만 가능하며 기본값은 false이다

boolean run = true;
boolean checked = false;
문자형 - char

문자형도 1개 밖에 없다. 문자를 저장하기 위한 변수를 선언할때 사용되며 단하나의 문자만을 저장할수 있다
문자 리터럴 대신 문자와 유니코드를 직접 저장할수도 있다. 아래와 같이 말이다.

char ch = 'A';
char ch = 65;
정수형 - byte, short, int, long

정수형에는 4개의 자료형이 있으며 각 자료형이 저장할수 있는 값의 범위가 서로 다르다

byte(1) < short(2) < int(4) < long(8)

오버플로우 : 타입이 표현할수 있는 값의 범위를 넘어서는 것 (애러는 아니나 원하지 않는 결과를 얻을수 있음.)

실수형 - float, double

연산속도의 향상이나 메모리를 절약하려면 float를 선택하고, 더큰 값의 범위나 정밀도를 요하면 double를 선택하면된다.


형변환 (casting)

형변환이란, 변수 또는 상수의 타입을 다른 타입으로 변환하는 것

double d = 123.3;
int s = (int)d; // double타입의 변수 d를 int 타입으로 형변환
자동형변환

컴파일러가 생략된 형변환을 자동적으로 추가해준다.

float f = 1234; // float f = 1234f; 와같음

기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환 해준다.