본문 바로가기
CS/JAVA

[JAVA] 변수 : 타입

by 두둠칫 2020. 10. 11.

1. 변수

 

1) 정의 : 단 하나의 값(Data)을 저장할 수 있는 메모리 공간.

 

2) 예약어 : keyword 또는 reserved word라고 함.

ex) true, if 등..

 

3) 분류

Data > Type > Data Type > 기본형(primitive type) 또는 참조형(reference type)

* JAVA는 참조형 변수 간의 연산을 할 수 없다. why? 

 

 

 

2. 타입

 

1) 참조형 변수(reference type variable)

(Class name) (variable name) : 객체의 주소를 할당 받는다

 

Class, 배열, Interface 등

 

ex) Date today = new Date();

 

2) 기본형 변수(primitive type variable) : 8가지

논리형 : boolean

문자형 : char

정수형 : byte, short, int, long

실수형 : float, double (기본형 == double)

* boolean을 제외하고 7개의 기본형은 서로 변환과 연산이 가능

 

3) 상수, 리터럴(constant, literal)

상수 : 값을 저장한 후 변경할 수 없음, final keyword로 선언

리터럴 : 그 자체로 값을 의미하는 것

ex) 상수 = 리터럴;

     final int var = 1;

     (keyword) (data type) (name) = (literal);

 

 

4) 리터럴 타입과 접미사

 

4-1) 2,8,16 진수 표현법

2진수 : 0b~ : 0b10 = 10진수 2

8진수 : 0~ : 010 = 10진수 8

16진수 : 0x~ : 0x10 = 10진수 16

 

4-2) 접미사

e : 10의 제곱 곱하기

ex) 2e1 = 2 * 10^1

 

long : L

float: f or F

double : d or D

 

* data type마다 기본형은 접미사를 붙이지 않아도 됨

  정수형 기본형 : int

  실수형 기본형 : double

  ex) float var = 3.14 (X) : error 발생, 근본적으로 float type 크기가 double type보다 작아서 에러가 발생하는 것.

       float var = 3.14f (O)

       double var = 3.14 (O)

 

* float형의 최대 overflow는 무한대, 최소 overflow는 0

float 변수의 범위는 +- (1.4*10^(-45) ~ 3.4*10^(38))

 

 

5) String

String과 연산하면 무조건 문자열로 변환되어 연산됨

ex) "hi" + 8.0 = "hi8.0"

 

 

 

3. print, scan

 

1) println() vs printf()

println() : 변수값을 그대로 출력, 즉 다른 형식으로 출력할 수 없음

printf() : 지시자(specifier)을 통해 같은 값이라도 다른 형식(format)으로 출력, 즉 형식화된 출력이 가능

 

2) 지시자 접두사

 

%n(지시자) : 앞에 빈 공간을 포함하여 길이 n만큼으로 출력

%-n(지시자) : 뒤에 빈 공간을 포함하여 길이 n만큼으로 출력

%0n(지시자) : 앞에 빈 공간을 0으로 채워넣어 길이 n만큼으로 출력

 

%(전체자리.소수점이하자리)f : 지정한 소수점 이하 자리에서 반올림하여 출력

 

3) scanf()

 

기본

Scanner scanner = new Scanner(System.in);

(변수) = scanner.nextLine();

'CS > JAVA' 카테고리의 다른 글

[JAVA] Abstract, Interface  (0) 2021.01.12
[JAVA] 상속, 다형성, 캡슐화  (0) 2021.01.12
[JAVA] 데이터의 메모리 할당 순서  (0) 2021.01.12
[JAVA] 변수와 메서드  (0) 2020.10.30
[JAVA] 개요  (0) 2020.10.11