위로
아래
기초 데이터 타입
정수형
기본 : int 형
int fifteen = 15; // 4바이트 -2,147,483,648 ~ 2,147,483,647
byte fifteen = 15; // 1바이트 -128 ~ 127
short fifteen = 15; // 2바이트 -32,768 ~ 32,767
long lightSpeed = 300000L // 8바이트. long 타입임을 명시하기 위해 뒤에 L을 붙여야 함
고정소수점 : 소수점 위치가 고정
실수형
기본 : double 형
double half = 0.5; // 8바이트
double half = 5E-1; // 5x10^-1
double pi = 3.14159;
float pi = 3.14159F; // 4바이트. float 타입임을 명시하기 위해 뒤에 F를 붙여야 함
부동소수점 : 첫번째 이진수 뒤로 소수점을 찍는다.
문자형
char c = 'A'; // 기본형
char c = 65; // 자바의 문자는 원래 정수형이라, 숫자를 입력하면 그에 맞는 문자가 나타난다.
char c = '\u0041'; // 유니코드 값으로 대입
논리형
boolean condition = true;
boolean condition = false;
상수
final double PI = 3.14159;
자료형 앞에 final을 붙여준다. (변수 이름은 전부 대문자로)
타입 변환
자동 타입 변환 (auto casting or promotion)
서로 다른 타입끼리 연산할 시, 자바 컴파일러가 둘 중 더 큰 데이터 타입으로 데이터 자료형을 통일한다.
강제 타입 변환 (casitng)
크기가 더 작은 자료형으로 변환하면 자료의 일부를 잃을 수 있다.
float f = (float)3.14; // double형 실수 3.14를 float형 실수 3.14f로 변환.
byte b = (byte)300; // int형 정수 300을 byte로 변환. 1바이트 크기만큼만 저장되고 나머지 손실.
byte x = (byte)3.14; // double형 실수 3.14를 byte로 변환. 정수형 3만 저장되고 소수점 밑을 손실.
double d =(double)3.14f // float형 실수 3.14f를 double로 변환.
예시
public class CastDemo {
public static void main(String[] args) {
int i;
double d;
byte b;
i =7 / 4;
System.out.println(i);
d = 7 / 4;
System.out.println(d);
d = 7 / (double) 4;
System.out.println(d);
i = 300;
if(i<Byte.MIN_VALUE || i>Byte.MAX_VALUE)
System.out.println("byte 타입으로 변환할 수 없습니다.");
else
b = (byte) i;
b = (byte) i;
System.out.println(b); // 결과 44. 데이터 손실이 일어남.
}
}
문자열과 정수형 타입 변환
public class String4Demo {
public static void main(String[] args) {
int i = 7;
System.out.println("Java "+i); // 결과 Java 7
System.out.println("Java "+ 7); // 결과 Java 7
System.out.println(7 + 1 +"Java "+7 +1); // 결과 8Java 71
}
}
예약어
예약어 var는 최신 버전에서 나온 기능으로, 실무에서는 별로 사용하지 않는다.
var a = 100; // int 타입으로 추론되어 var 선언
var str = "한국"; // String 타입으로 추론되어 var 선언
int var = 1; // 변수 이름으로 사용 가능
var x = 1, y = 2; // 불가능. var는 다수의 변수를 하나의 실행문으로 초기화 불가능.
var str = null; // 불가능. var 변수에는 null을 대입할 수 없다.
var oops; // 불가능. var는 바로 초기화해야 타입을 추론할 수 있다.