package me.day02.datatype;
import java.util.Scanner;
public class DataTypeExample {
public static void main(String[] args) {
float f = 3.141592123f;
double d = 3.141592123;
System.out.println("f = " + f);
System.out.println("d = " + d);
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
byte var1 = 125;
int var2 = 125;
for (int i = 0; i < 5; i ++) {
var1++;
var2++;
System.out.println("var1: " + var1 + "\t" + "var2: " + var2);
}
String str1 = new String("abc");
String str2 ="abc";
String string ="";
Scanner sc = new Scanner(System.in);
}
}
원시타입 리터럴의 유효범위
- 바이트 고정, Stack에 저장됨
- bit : 컴퓨터가 0 아니면 1을 넣을 수 있는 논리적 공간
- 알고리즘 풀때 long, bigIntger
- 파이썬, 자바스크립트 같은 스크립트 언어들은 대부분 참조타입으로 되어있고 원시타입이 없음. int 에 데이터 길게 들어갈 수 있음
- 쓰레기값
- 스택 오버/언더 플로우
- 범위 안에서 로테이션 돈다
![](https://velog.velcdn.com/images/soyoungkangme/post/14cf6182-a209-44cc-99eb-727beb3e8a2c/image.png)
int
(4byte = 32bit)
- -> -2^31, 0, 2^31-1 표현 가능 (2^32개)
- -2^31 <= < 2^31 -> 2^31 - (-2^31) = 2^31 + 2^31 = 2^31(1+1) = 2^32 개
- 사이개수를 알기에 더 쉬우므로 첫번째꺼는 포함되고, 끝에는 포함되지 않는 경우가 많음
float
- 소수점 여섯번째 자리가지 출력 (
3.141592f
)
double
char
boolean
참조 타입
- heap에 저장됨, 사이즈 큰 데이터 (실행시켜 봐야 데이터의 길이 알 수 있다)
- 해당 변수 안에는 주소값이 살고 있다