백엔드 과정/자바 예습
[혼공자]Chap 02-2 기본 타입
mim
2021. 12. 14. 12:26
반응형

기본primitive 타입: 자바는 정수 , 실수, 논리값을 저장할 수 있는 기본 타입을 제공한다.
자바가 제공하는 기본 타입은 8개이다.
- 정수를 저장할 수 있는 타입에는 byte, char, short, int, long
- 소수점이 있는 실수를 저장할 수 있는 타입에는 float, double
- 참true, 거짓false 같은 논리값을 저장할 수 있는 타입에는 boolean
- 정수 타입 / 메모리 사용 크기 / 허용범위char / 2byte / 16bit / 0~65535(유니코드)→ char 타입은 음수 값을 가질 수 없다.int / 4byte / 32bit
- long / 8byte / 64bit
- short / 2byte / 16bit
- byte / 1byte / 8bit / -128~ 127
정수 리터럴(literal): 소스 코드에서 프로그래머에 의해 직접 입력된 값
- exam 1) 정수 리터럴
package sec02.exam01;
public class IntegerLiteralExample {
public static void main(String[] args) {
int var1 = 0b1011; //2진수 0b또는 0B로 시작한다.
int var2 = 0206; //8진수 0으로 시작하고 0~7 숫자로 구성된다
int var3 = 365; //10진수 소수점이 없는 0~9 숫자로 구성된다.
int var4 = 0xb3; //16진수 0x또는 0X로 시작하고 0~9숫자와 A,B,C,D,E,F또는 a,b,c,d,e,f로 구성된다.
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
- exam 2) byte 타입 변수
package sec02.exam01; public class ByteExample { public static void main(String[] args) { byte var1 = -128; byte var2 = -30; byte var3 = 0; byte var4 = 127; byte var5 =128; //byte 타입 변수에 저장되는 값의 허용범위를 초과함 System.out.println(var5); } }
- byte 타입의 허용범위( -128 ~127 )를 초과하여 대입했을 경우 컴파일 에러가 발생한다.
- exam 3) Char 타입 (문자 리터럴)
- 문자 리터럴은 유니코드로 변환되어 저장된다. 유니코드는 byte로 표현할 수 있는 숫자 (0~65535)로 매핑한 국제 표준 규약이다.
- 문자 리터럴을 int 타입에 저장할 경우 ( Char은 정수타입 )
char = 'A'; // A를 출력 -> 자동으로 문자로 매핑하여 출력 int = 'A'; // 65를 출력 -> 유니코드 자체가 출력
package sec02.exam04;
public class CharExample {
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);
}
}
하나의 문자를 ' ' 작은 따옴표로 감싼 것을 문자 리터럴 이라고 한다.
- exam 4) String 타입 (문자열)
package sec02.exam03; public class StringExample { public static void main(String[] args) { String name = "홍길동"; String job = "프로그래미"; System.out.println(name); System.out.println(job); } }
- 문자열 내부에 역슬래시 | 가 붙은 문자를 사용할 수 있는데, 이것을 이스케이프 문자 라고 한다.
Strng str = "나는 | "자바 | " 를 좋아합니다."; ->문자열 식별기호인 ""를 문자열 내부에 포함 시키고 싶을 때 사용.
- exam 5) 실수타입 (실수 리터럴)
- 실수 타입 / 메모리 사용 크기 /정밀도(소수점 이하 자리) double / 8byte / 64 bit / 15자리 (2배 이상 정확)
- float / 4byte / 32bit / 7자리
- 또한, 알파벳 e 또는 E 가 포함된 숫자 리터럴은 지수와 기수로 표현된 소수점이 있는 10진수 실수로 인식한다.
- 소수점이 있는 실수 리터럴을 저장할 수 있는타입에는 float와 double이 있다.
package sec02.exam03;
public class FloatDoubleExample {
public static void main(String[] args) {
//실수값 저장
//float 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); // double 타입인 var5가 float타입인 var4보다 2배이상 정밀한 값으로 출력
//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);
}
}
var2:3.14
var3:3.14
var4:0.12345679
var5:0.12345678901234568
var6:3000000.0
var7:3000000.0
var8:0.002
- exam 6) 논리타입 (논리 리터럴)
- 논리 리터럴은 1byte 크기의 boolean 타입 변수에 저장할 수 있습니다.
- boolean 타입 변수는 조건문과 제어문의 실행흐름을 변경하는 데 사용.
- 참과 거짓을 의미하는 논리 리터럴로 true와 false를 사용한다.
package sec02.exam03;
public class BooleanExample {
public static void main(String[] args) {
boolean stop = true;
if(stop) {
System.out.println("중지합니다.");
} else {
System.out.println("시작합니다.");
}
}
}
반응형