▶오늘의 주제 : 변수 기본 타입
▶자바는 정수, 실수, 논리값을 저장할 수 있는 기본타입을 제공합니다.
메모리 사용 크기 정도는 알고 있는 것이 좋습니다.
▶정수 타입
: 소스 코드에서 프로그래머에 의해 직접 입력된 값을 리터럴(literal) 이라고 부릅니다. 리터럴 중에서 자바가 정수로 인식하는 경우는 다음과 같습니다.
2진수: 0b 또는 0B로 시작하고 0과 1로 구성됩니다.
ob1011
8진수: 0으로 시작하고 0~7 숫자로 구성됩니다.
013
10진수 : 소수점이 없는 0~9 숫자로 구성됩니다.
12
16진수 : 0x 또는 0X로 시작하고 0~9 숫자와 A,B,C,D,E,F 또는 a,b,c,d,e,f로 구성됩니다.
0xB3
<정수 리터럴>
public class Hello {
public static void main(String[] args) {
int var1 = 0b01011; //2진수
int var2 = 0206; //8진수
int var3 = 365; //10진수
int var4 = 0xB3; //16진수
System.out.println("var1: " + var1);
System.out.println("var2: " + var2);
System.out.println("var3: " + var3);
System.out.println("var4: " + var4);
}
}
var1: 11
var2: 134
var3: 365
var4: 179
<byte 타입 변수>
public class Hello {
public static void main(String[] args) {
byte var1 = -128;
byte var2 = -30;
byte var3 = 0;
byte var4 = 30;
byte var5 = 127;
// byte var6 = 128; // 컴파일 에러 (허용 범위가 ~127까지)
}
}
<long 타입>
: 수치가 큰 데이터를 다루는 프로그램에서 주로 사용됩니다. 정수 리터럴 뒤에 소무나 l이나 대문자 L을 붙이면 됩니다. 일반적으로 대분자 L을 사용합니다.
public class Hello {
public static void main(String[] args) {
long var1 = 10;
long var2 = 20L;
// long var3 = 10000000000; 컴파일 에러
long var4 = 10000000000L;
System.out.println(var1);
System.out.println(var2);
System.out.println(var4);
}
}
10
20
10000000000
: 컴파일 에러난 이유는 뒤에 L을 안붙였습니다.
▶char 타입
: 작은 따옴표(')로 감싼 것을 문자 리터럴이라고 합니다. 문자 리터럴은 유니코드로 변환되어 저장됩니다. 유니코드는 세계 각국 문자를 2byte로 표현 할 수 있는 숫자(0~65535)로 매핑한 국제 표준 규약입니다. 자바는 이러한 유니코드를 저장 할 수 있도록 2byte 크기인 char 타입을 제공합니다.
char var1 = 'A'; //유니코드: 65
char var2 = 'B'; //유니코드: 66
char var3 = '가'; //유니코드: 44032
char var4 = '각'; //유니코드: 44033
유니코드는 정수이므로 char 정수 타입에 속합니다. 10진수 또는 16진수 형태로 유니코드를 저장할 수 있습니다.
char c = 65; //10진수
char c = 0x0041; // 16진수
작은따옴표(')로 감싼 문자 리터럴은 유니코드로 변환되기 때문에 int 타입 변수에도 저장할 수 있습니다. char 타입 변수에 저장하면 자동으로 문자로 매핑되어 출력되지만, int 타입 변수에 저장하면 유니코드 자체가 출력됩니다.
char var1 = 'A';
int var2 = 'A';
System.out.println(var1); //A를 출력
System.out.println(var2); //65를 출력
▶String 타입
자바에서 큰따옴표(")로 감싼 문자들을 문자열이라고 부릅니다.
public class Hello {
public static void main(String[] args) {
String name = "홍길동";
String job = "프로그래머";
System.out.println(name);
System.out.println(job);
}
}
홍길동
프로그래머
- 이스케이프 문자
이스케이프 문자 | 출력 용도 |
\t | 탭만큼 띄움 |
\n | 줄 바꿈( 라인 피드) |
\r | 캐리지리턴 |
\" | "출력 |
\' | '출력 |
\\ | \출력 |
\u16진수 | 16진수 유니코드에 해당하는 문자 출력 |
public class Hello {
public static void main(String[] args) {
System.out.println("번호\t이름\t직업");
System.out.println("행 단위 출력\n");
System.out.println("행 단위 출력\n");
System.out.println("우리는 \"개발자\" 입니다.");
System.out.println("봄\\여름\\가을\\겨율");
}
}
번호 이름 직업
행 단위 출력
행 단위 출력
우리는 "개발자" 입니다.
봄\여름\가을\겨율
▶실수 타입
: 소수점이 있는 실수 리터럴을 저장할 수 있는 타입에는 float와 double이 있습니다.
알파벳 소문자 e 또는 대문자 E가 포함되어 있는 숫자 리터럴은 지수와 가수로 표현된 소수점이 있는 10진수 실수로 인식합니다.
ex. 5e2
소스 코드에서 소수점이 있는 숫자 리터럴은 10진수 실수로 인식합니다.
ex. 0.25
- 자바는 실수 리터럴을 기본적으로 double 타입으로 해석하기 때문에 double 타입 변수에 저장해야 합니다. 실수 리터럴을 float 타입 변수에 저장하면 컴파일 에러가 발생합니다. 실수 리터럴을 float 타입으로 저장하고 싶다면 뒤에 소문자 f나 대문자 F를 붙여 컴파일러가 float 타입임을 알 수 있도록 해야 합니다.
public class Hello {
public static void main(String[] args) {
// float var = 3.14; 컴파일 에러
float var2 = 3.14f;
float var3 = 3E5f;
double var4 = 3.14;
double var5 = 314e-2;
}
}
▶논리 타입
: 자바는 참과 거짓을 의미하는 논리 리터럴로 true와 false를 사용합니다. 논리 리터럴은 다음과 같이 boolean 타입 변수에 저장할 수 있습니다.
public class Hello {
public static void main(String[] args) {
boolean stop = true;
if(stop) {
System.out.println("중지합니다.");
}else {
System.out.println("시작합니다");
}
}
}
중지합니다.
▶마무리
정수 타입 : 정수를 저장할 수 있는 타입으로 byte, short, int, long 타입을 말합니다.
char 타입 : 작은따옴표(')로 감싼 하나의 문자 리터럴을 저장할 수 있는 타입입니다.
String 타입: 큰따옴표(")로 감싼 문자열을 저장할 수 있는 타입입니다.
실수 타입: 실수를 저장할 수 있는 타입으로 float, double 타입을 말합니다.
boolean 타입 : 참과 거짓을 의미하는 ture와 false를 저장할 수 있는 타입입니다.
'Java' 카테고리의 다른 글
Java - 연산자와 연산식 (0) | 2022.11.08 |
---|---|
Java - 타입 변환 (0) | 2022.11.08 |
Java - 변수 (0) | 2022.11.08 |
Java - 객체지향언어 퀴즈 (0) | 2022.10.25 |
Java - 객체지향언어 (추상클래스) (0) | 2022.10.25 |