1. 기본 타입
자바는 정수, 실수 , 논리값을 저장할 수 있는 기본 타입을 제공한다. 자바가 제공하는 기본 타입은 총 8개이다.
- 정수를 저장할수 있는 타입 : byte , char , short , int , long
- 소수점이 있는 실수를 저장 할 수 있는 타입 : float, double
- 논리값을 저장할수 있는 타입 : boolean
2. 정수 타입
자바에서 정수 타립은 총 5개로 , 메모리 사용 크크와 저장되는 값의 범위가 서로 다르다.
타입 | 메모리 사용크기 | |
byte | 1byte | 8bit |
short | 2byte | 16bit |
char | 3byte | 16bit |
int | 4byte | 32bit |
long | 8byte | 64bit |
char 타입
하나의 문자를 작은따옴표로 감싼 것을 문자 리터럴이라고 부른다. 문자 리터럴릉 유니코드로 변환되어 저장한다. 유니코드는 세계 각국의 문자를 2바이트로 표현할 수 있는 숫자로 매핑한 국제 표준규약이다. 자바는 이러한 유니코드를 저장할 수 있도록 2바이트 크기인 char타입을 제공한다.
char var1 = 'A' // 유니코드 65
char var2 = 'B' //유니코드 66
유니코드는 정수이므로 char도 정수 타입에 속한다.
그래서 char 변수에 작은따옴표로 감싼 문자가 아니라 10진수 또는 16진수 형태로 유니코드를 저장할 수 있다.
public static void main(String[] args) {
char c1 = 'A'; //문자를 입력
char c2 = 65; // 10진수 입력
char c3 = '\u0041'; // 16진수 입력
char c4 = '가'; //문자를 입력
char c5 = 44032; // 10진수 입력
char c6 = '\uac00'; // 16진수 입력
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
}
값이 동일하게 나오는 것을 알 수가 있다 .
string 타입
작은따옴표로 감싼 문자는 char 타입 변수에 저장되어 유니코드에 저장되지만, 큰따옴표로 감싼 문자 또는 여러 개의 문자들은 유니코드로 변환되지 않는다.
- 잘못된 예시
char var1 = "A";
char var2 = "홍길동";
자바에서 큰따옴표로 감싼 문자들은 문자열이라 부른다. 작은따옴표와 큰따옴표는 컴파일러가 문자 리터럴과 문자열 리터럴을 구별하는 기호로 사용한다. 문자열을 변수에 저장하고 싶다면 다음 예시와 똑같이 작성해야한다.
String var1 = "A";
String var2 = "홍길동";
public class StringExample {
public static void main(String[] args) {
String name = "한정훈";
String job = "프로그래머";
System.out.println(name);
System.out.println(job);
}
이스케이프 문자
문자열 내부에 역슬레시가 붙는 문자를 사용할 수 있다. 이스케이프 문자를 사용하면 문자열 내부에 특정한 문자를 포함시킬수 있다. 예를들면 큰따옴표를 한 문장에 두번 쓰는 방법이다.
public static void main(String[] args) {
String name = "한정훈";
String job = "프로그래머";
System.out.println(name);
System.out.println(job);
String str = "나는 \"자바\"를 좋아합니다"; // \" : 따옴표 표시
String str2 = "번호\t이름\t나이"; // \t : tap 띄우기
String str3 = "홍길동\n감자바"; // \n: 줄바꿈
String str4 = "한정훈\r요리사"; // \r: 캐리지리턴
System.out.println(str);
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);
}
실수타입
소수점이 있는 실수 리터럴을 저장할 수 있는 타임에는 flaot과 double이 있다.
타입 | 메모리 사용 크기 | |
float | 4byte | 32bit |
double | 8btye | 64bit |
- 실수 리터럴
소스 코드에서 소수점이 있는 숫자 리터럴은 10진수 실수로 인식된다.
EX) 0.25 , -3.14
또한 알파벳 소문자 e 또는 대문자 E가 포함되어 있는 숫자 리터럴은 지수와 같이 가수로 표현된 소수점이 있는 10진수 실수로 인식한다.
EX)
5e2
0.12E-2
package sec03.exam01;
public class flaotDoubleExample {
public static void main(String[] args) {
//실수값 저장
//flaot var1 = 3.14; 컴파일 에러
float var2 = 3.14f;
double var3 = 3.14;
//정밀도 테스트
float var4 = 0.1234567890123456789f;
double var5 = 0.1234567890123456789;
System.out.println("var2:" + var2);
System.out.println("var3:" + var3);
System.out.println("var4:" + var4);
System.out.println("var5:" + var5);
// e사용하기
double var6 = 3e6;
float var7 = 3e6F;
double var8 = 2e-3;
System.out.println("var6:" + var6);
System.out.println("var7:" + var7);
System.out.println("var8:" + var8);
}
}
논리 타입
자바는 참과 거짓을 의미하는 논리 리터럴로 true와 false를 사용한다. 논리 리터럴은 다음과 같이 1byte 크기릐 boolean 타입 변수에 저장할 수 있다.
boolean stop = ture;
boolean state = false;
boolean 타입 변수는 주로 두가지 상태갑에 따라 조건문과 제어문의 실행 흐름을 변견하는데 사용한다.
package sec03.exam01;
public class BooleanExample {
public static void main(String[] args) {
boolean stop = true;
boolean start = false;
//값이 true일 때
if(stop) {
System.out.println("중지합니다.");
}else {
System.out.println("시작합니다.");
}
// 값이 false일때
if(start) {
System.out.println("중지합니다.");
}else {
System.out.println("시작합니다.");
}
}
}
'자바' 카테고리의 다른 글
[java] 연산자와 연산식 (0) | 2023.03.30 |
---|---|
[java] 변수와 시스템 입출력 (0) | 2023.03.27 |
[java] 타입 변환 (0) | 2023.03.24 |
[java] 변수 (0) | 2023.03.24 |
[java] 1. 프로그램 소스 분석 (0) | 2023.03.24 |