정수 타입
- byte 타입
: 1byte (127 ~ -128)
8bit (2^8)
package kr.or.ddit.study02.sec02;
public class IntergerExample {
public static void main(String[] args) {
IntergerExample obj = new IntergerExample();
obj.intExample();
}
public void byteExample() {
/*
* byte : 1byte (127 ~ -128)
* (8bit 2^8)
*/
byte b1 = 127;
System.out.println("b1 = " + b1);
// byte b2 = 128; // 컴파일 에러
// b1 = b1 + 1; // 자바는 기본적으로 int type으로
// byte < int 크기가 차이 나기 때문에 담을 수 없다.
}
}
- short 타입
: 2byte (32767 ~ -32768)
16bit (2^16)
package kr.or.ddit.study02.sec02;
public class IntergerExample {
public static void main(String[] args) {
IntergerExample obj = new IntergerExample();
obj.shortExample();
}
public void shortExample() {
/*
* short : 2byte(32767 ~ -32768)
* (16bit 2^16)
*/
short s1 = 100;
System.out.println("s1 = " + s1);
short s2 = (short)(s1 + 100); // short를 사용하기 위해서 앞에 (short)를 기입하여 코딩해야함.
System.out.println("s2 = " + s2);
}
}
- int 타입
: 기본 정수형
4byte
32bit (2^32)
package kr.or.ddit.study02.sec02;
public class IntergerExample {
public static void main(String[] args) {
IntergerExample obj = new IntergerExample();
obj.intExample();
}
public void intExample() {
/*
* int : 4byte(32bit 2^32)
* 기본 정수형
*/
int i1 = 100;
System.out.println("i1 = " + i1);
int i2 = i1 + 100;
System.out.println("i2 = " + i2);
}
}
- long 타입
: 8byte
64bit (2^64)
int 범위를 넘어가지 않는 값일때는 데이터 끝에 L(l)을 추가한다.
package kr.or.ddit.study02.sec02;
public class IntergerExample {
public static void main(String[] args) {
IntergerExample obj = new IntergerExample();
obj.longExample();
}
public void longExample() {
/*
* long : 8byte(64bit 2^64)
* 테이터 끝에 L(l) 을 추가
*/
// long l1 = 1000000000000L;
long l1 = 1000000000000l;
System.out.println("l1 = " + l1);
long l2 = 10000; // int 범위를 넘어가지 않으면 뒤에 L(l)을 추가하지 않아도 됨.
// System.out.println("l1 = " + l1);
}
}
- 리터럴(literal)
소스 코드에서는 2진수, 8진수, 10진수, 16진수로 나타낼 수 있다.
1. 2진수의 경우 앞에 0b 또는 0B로 시작한다.
int num1 = 0b1011; // 10진수로 11
int num2 = 0B10100; // 10진수로 20
2. 8진수의 경우 앞에 0을 기입한다.
int num = 013; // 10진수로 11
3. 16진수의 경우 0x 또는 0X로 시작하며 숫자와 A, B, C, D, E, F 또는 a, b, c, d, e, f로 구성된다.
int num1 = 0xB3; // 10진수로 179
int num2 = 0X2A0F; // 10진수로 10767
문자 타입
- char 타입
: 하나의 문자를 저장할 수 있는 타입
부호 없는 2byte 정수 (0 ~ 65535)
문자의 경우 작은 따옴표(' ')로 감싸야 하며 숫자의 경우 유니코드로 변환되어 저장된다.
package kr.or.ddit.study02.sec02;
public class CharExzmple {
public static void main(String[] args) {
// char : 부호 없는 2byte 정수 (0 ~ 65535)
// '' 작은 따옴표로 감싸며 한문자 표현 가능.
char c1 = 'A';
System.out.println("c1 = " + c1);
char c2 = 97; // a의 아스키 코드
System.out.println("c2 = " + c2);
char c3 = (char)(c2 - 32); // char + int 형을 더하기 때문에 바꿔줘야 함. char의 바이트가 int보다 작기 때문.
System.out.println("c3 = " + c3);
int i4 = 44032;
char c4 = (char)i4;
System.out.println("c4 = " + c4);
}
}
문자열 타입
- String 타입
: 복수 개의 글자로 구성된 타입으로 데이터 타입이 아니다.
큰 따옴표(" ")로 묶어 선언한다.
package kr.or.ddit.study02.sec02;
public class StringExample {
public static void main(String[] args) {
/*
* 문자와 문자열
*
* 문자(char) : 한글자 데이터로 ' '로 묶어 선언
* 문자열(string) : 복수개의 글자로 구성된 자료(데이터 타입은 아님)
* " "로 묶어 선언
*/
String name1 = "강감찬";
String name2 = "홍길동";
System.out.println(name1 + "\t" + name2);
String result3 = 10 + 3 + ""; // 더한 후 문자열 추가 13
String result4 = "" + 10 + 3; // 처음부터 문자열로 취급 103
System.out.println(result3);
System.out.println(result4);
}
}
실수 타입
- float 타입
: 4byte (1.4e-45 ~ 3.4e+38)
부호 1bit, 지수 8bit, 가수 23bit
변수 선언 후 변수 초기화 시 값의 마지막에 f(F)를 기입해야 한다.
- double 타입
: 8byte (4.94e-324 ~ 1.8e+308)
부호 1bit, 지수 11bit, 가수 52bit
자바에서는 double 타입이 기본형이다.
package kr.or.ddit.study02.sec02;
public class FloatExample {
public static void main(String[] args) {
FloatExample obj = new FloatExample();
/*
* 1. float : 4byte ( 부호 1bit 지수 8bit, 가수 23bit
* 1.4e-45 ~ 3.4e+38)
* 2. double : 8byte ( 부호 1bit 지수 11bit, 가수 52bit
* 4.94e-324 ~ 1.8e+308)
*
* 둘 다 정확한 값이 나오지 않아 하단의 코드 작성 시 다른 값으로 결과가 나온다.
* double의 경우 더 정확한 값을 나온다.
*/
float f1 = 3.141592f;
double d1 = 3.141592;
if(f1 == d1) {
System.out.println("같은 값.");
} else {
System.out.println("다른 값.");
}
}
}
논리 타입
: 참과 거짓을 저장하는 타입.
- boolean 타입
package kr.or.ddit.study02.sec02;
public class BooleanExample {
public static void main(String[] args) {
// 논리형 true/false
// 1byte 조건문과 제어문의 실행 흐름을 변경하는데 사용.
boolean flag = false;
System.out.println("flag = " + flag);
flag = (1<2);
System.out.println("flag = " + flag);
}
}
막간의 TIP
제어문자
: 인쇄 할 수 없거나 키보드로 표현할 수 없는 특별한 문자.
역슬레시(\)와 한 개의 문자와 결합하여 작성한다.
- 자주 사용하는 제어 문자
이스케이프 문자 | 출력 용도 |
\n | 개행 줄바꿈, 스크린 커서 위치를 다음 줄의 처음으로 옮김. (= enter) |
\t | 수평탭, 스크린 커서를 다음 탭으로 옮김. |
\r | 캐리지 리턴, 스크린 커서의 위치를 현재줄의 처음으로 옮김. 개행하지 않는다. 이 기호 다음에 오는 문자를 덮어 씌운다. |
\\ | 역슬래시 문자 출력 |
\" | " 문자 출력 | 일반적인 ""은 감싸기 위해 사용되어서 따로 역슬레시를 넣어야 함. |
\' | ' 문자 출력 |
\b | 백스페이스 |
'자바' 카테고리의 다른 글
[Java 초급] 4.5장 테스트 (2) | 2023.12.06 |
---|---|
[Java 초급] 4장 Scanner 이용과 타입 변환 (0) | 2023.12.05 |
[Java 초급] 3.5장 테스트 (0) | 2023.12.05 |
[Java 초급] 2장 변수 선언 및 변수 초기화 (0) | 2023.12.03 |
[Java 초급] 1장 이클립스 (eclipse) 및 자바 (2) | 2023.12.03 |