Back-end/JAVA,Spring

[JAVA] 변수란? Variable

cheersHena 2018. 5. 16. 18:04
반응형

변수란?

변하는 수 : 어떠한 값을 저장하는 공간.



변수 타입

1.기본형 primitive type

 논리형 boolean 문자형 char 정수형 byte/short/int/long 실수형 float/double

계산을 위한 실제 값 저장. 즉 값을 직접 가지는 것. (like 저금통) 

2.참조형 reference type 

 객체의 주소를 저장. 기본형 8개 타입을 제외한 나머지 타입. (like 통장)


* 기본형의 종류와 크기.

논리형 boolean-1byte

문자형 char-2byte 

(무조건 한글자) 홑따옴표. 'A' '1' '/n' *문자열: 문자형의 모임. 쌍따옴표"ABC" "123" "true"

정수형 byte-1byte / short-2byte / int-4byte / long-8byte

실수형 float - 4byte / double - 8byte


* 암기 tip

boolean : true or false 1byte

char: 자바에서 유니코드 사용 (2byte체계) 2byte

byte : 크기가 1byte라서 byte

int(4byte)기준으로 짧은건 short 2byte 긴건 long 8byte

float 4byte 두배 double 8byte


식별자 identifier

프로그래밍에서 사용하는 모든 이름 e.g.변수의 이름.. 

예약어는 식별자로 사용할 수 없음.


프로그래머 권장 룰.

1.클래스 이름의 첫글자는 대문자. 변수 첫글자는 소문자.

2.여러단어로 이루어진 이름은 단어 첫글자를 대문자로 한다. e.g. lastIndexOf ,StringBuffer..

3.상수 이름은 모두 대문자. 여러단어 이루어진 경우 _로 구분. e.g. PI, MAX_NUMBER


상수 contant

변수처럼 값 저장할 수 있는 공간이지만 변수와 달리 한번 값 저장하면 변경 불가. 선언방법 

final 이후 변수선언과 같이 선언후, 선언시 반드시 초기화 함께해야한다. 

e.g. final int MAX_SPEED = 10;


리터럴 literal

그 자체로 값을 의미. 변수 혹은 상수에 들어가있는 값을 리터럴이라고 함. 

e.g.age = 28; name = hena; -> age, name: 변수 / 28, hena: 리터럴


문자형 char

문자가 저장되는 것 같지만 사실은 문자가 아닌 '문자의 유니코드 즉, 정수'가 저장됨.


incoding : 문자 -> 숫자

decoding  문자 <- 숫자


오버플로우 overflow

타입이 표현할 수 있는 값의 범위를 넘어서는 것. 에러는 발생하지 않지만 결과가 완전히 달라짐.

부호없는정수는 2진수로 '0000'이 될때 오버플로우 발생.

실수는 값이 무한대 infinity 가 됨. 

실수에는 언더플로우가 있는데 이때는 값이 0이됨.(정수에서는 언더플로 발생no)


부호비트 :이진수의 맨앞 숫자

0 = + 

1 = -


부호비트가 있을때, 부호비트가 0에서 1이 될때 오버플로우 발생


형변환(캐스팅 Casting)

변수 또는 상수의 타입을 다른 타입으로 변환하는 것.

e.g. 정수끼리

char ch ='A';
int code = (int) ch;


e.g. 정수->실수

double d = 3.14;
int i = (int) d; // 3으로 들어감.

 

e.g실수->정수

int i =10;
double d= i; // 10.0으로. *10과 10.0은 다름.


자동형변환.

작 ->큰 변환시 발생.



반응형