본문 바로가기
IT & 개발/Java의 정석

Java의 정석 3판 2장

by 매직아일랜드 2021. 10. 23.

이 포스팅은 Java의 정석을 공부하며, 정리의 목적으로 작성되었습니다.

 

Chapter 02 변수(Variable)

 

변수(variable)

값을 저장할 수 있는 메모리상의 공간을 의미

 

변수의 선언과 초기화

1. 선언 방식

  ex) int age;

  - 변수타입(ex. int) : 어떤 타입인지를 지정하는 것 / 변수타입에 알맞은 크기의 저장공간이 확보됨

  - 변수이름(ex. age) : 변수에 붙인 이름으로 메모리 공간에 이름을 붙여주는 것 / 저장공간은 변수이름을 통해 사용 가능

2. 초기화

  ex) int age = 20;

  - 초기화란, 변수를 사용하기 전에 처음으로 값을 저장하는 것

  - 공유자원이므로 쓰레기값이 남아있을 수 있기 때문에, 초기화를 해야 함

  - 변수의 값을 저장할 때는 대입 연산자 =을 이용함

  - 타입이 같은 경우 콤마를 구분자로 하여 여러 변수를 한 줄에 선언하기도 함 (ex. int a=0, b=1;)

3. 값 가져오기

  - 변수에 저장된 값을 사용하려면 변수의 이름을 적어주면 됨 (ex. int b = a+10;)

 

변수 명명규칙

1. 대소문자 구분 / 길이 제한 X

2. 예약어 (ex. for, while ...) 사용 X

3. 숫자로 시작할 수 없음

4. 특수문지는 '_','$'만 허용

(그 외 자바 프로그래밍에서는 클래스는 첫 글자는 대문자로 시작, 여러 단어로 이루어진 경우 첫 글자는 대문자로, 상수는 모두 대문자로 표시 등의 규칙이 있다.)

 

변수의 타입 

1. 자료형 : 값의 종류에 따라 값이 저장될 공간의 크기와 저장형식을 정의한 것

   자료형은 크게 두가지로 나누어짐

   - 기본형 : 실제 값을 저장

   - 참조형 : 주소를 값으로 저장 (ex. 클래스이름 변수이름;) / 참조변수는 null 또는 객체의 주소를 값으로 가짐

 

기본형 cf. 1byte = 8bit

1. 논리형 : boolean (1byte)

2. 문자형 : char (2byte)

3. 정수형 : byte (1byte), short(2byte), int(4btye), long(8byte)

4. 실수형 : float(4byte), double(8byte)

   *실수는 부동소수점 형태로 저장되며, 정밀도가 변수를 선택하는 중요한 요소 중 하나

 

상수와 리터럴

1. 상수 : 변수와 달리 한번 값을 저장하면 다른 값으로 변경 불가 / 그러므로, 선언과 동시에 초기화 필수

   ex) final int MAX_SIZE = 10;

   - 상수를 사용하면, 코드의 이해와 수정이 용이함

2. 리터럴 : 그 자체로 값을 의미하는 것 / '1','A','3.14'와 같은 상수 값

   - 리터럴의 접미사

     논리형 : 없음 / 정수형 : L(long), 없으면 int / 실수형 : f (float), d(double), 없으면 double / 문자형 : 없음 / 문자열 : 없음

  - 진수 표현

    16진수 : 0x / 8진수 : 0 / 10진수 : 0b

 - 제곱 표현

    e (ex. 10e3 -> 10^3 / 10e-3 -> 10^(-3))

 

출력

1. 출력시 : printf() 사용

2. 지시자

   - %f : 부동 소수점의 형식으로 출력

   - %e : 지수 표현식의 형식으로 출력

   - %c : 문자로 출력

   - %f : 문자열로 출력

 

비트와 바이트

1. 비트 : 컴퓨터가 값을 저장할 수 있는 최소 단위 (0or 1)

2. 바이트 : 8bit

3. 워드 : cpu가 한번에 처리할 수 있는 데이터의 크기 (ex. 32비트 cpu = 4btye = 1word)

 

음수의 2진 표현

1. 음수를 표현할 때에는 2의 보수법을 사용

   (왼쪽 첫번째 비트(MSB)만 변경할 경우, 0이 2개가 생기는 문제가 발생하므로 2의 보수법을 사용한다)

   n의 보수는 더했을 때 n이 되는 수를 말함

   2의 보수 = 1의 보수 + 1

 

문자열 관련 용어 정리

1. 유니코드 : 문자가 숫자로 변환될 때 사용하는 표

2. 인코딩 : 문자 -> 코드

3. 디코등 : 코드 -> 문자

 

정수 및 실수 관련 용어 정리

1. 오버플로우 : 타입이 표현할 수 있는 값의 범위를 넘어서는 것 / 오버플로우가 발생하면 예상과 다른 결과를 얻을 수 있음

2. 언더플로우 : 실수형으로 표현할 수 없는 작은 값 / 이 때. 변수 값은 0이 됨

 

형변환

1. 형변환이란, 변수 또는 상수의 타입을 다른 타입으로 변환하는 것 ex) int socre = (int)a; //a는 double형

2. 넓은 범위에서 좁은 범위로 변환 -> OK  / 좁은 범위에서 넓은 범위로 재변환하는 경우, 값의 오차 발생할 수 있음

3. 자동 형변환 : 형변환이 없는 경우, 기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환 함

 

 

 

 

'IT & 개발 > Java의 정석' 카테고리의 다른 글

Java의 정석 3판 4장  (0) 2021.10.23
Java의 정석 3판 3장  (0) 2021.10.23
Java의 정석 3판 1장  (0) 2021.10.20