public static void main(String[] args) {
//자바의 기본 자료형(primitive type:원시타입(기본형) 변수는 반드시 초기화 되어야한다.
// 프리미티브타입 외에도 레퍼런스타입 , 오브젝트 타입도 있지만 아직 안배웠으니 후에 써놓자
//초기화는 int d=30; 이런걸 초기화라 함
//byte, bool, short, int, long, float , double, char
//하나의 데이터만 저장할수 있는 변수를 기본 자료형이라 한다
//String : 스트링은 기본자료형처럼 사용 가능 하지만 기본자료형은 아니다
//정수형(기본값 0) //바이트수 - 표현가능범위
byte a =127; // 1byte -128~127
short c = 32766;// 2byte -2^15~(2^15-1)
int d=65536; // 4byte -2^31~(2^31-1)
long e=2147483647; // 8byte -2^63~(2^63-1)
//계산법이 저렇게 된 이유는
//1byte=8bit 이고 1bit는 1과 0 두가지를 나타낼수 있다
//1bit라는말이 잘 와닿지 않는다면
//1비트를 동전의 양 면 이라고 치고 그 동전한개로 나타낼수있는 경우의수는 앞,뒤 2가지
//동전 두개는 앞앞 앞뒤 뒤앞 뒤뒤 이렇게 4가지
//동전 세개는 앞앞앞 앞앞뒤 앞뒤앞 앞뒤뒤 뒤앞앞 뒤앞뒤 뒤뒤앞 뒤뒤뒤 8가지
//동전 네개가 된다면
//앞앞앞앞 앞앞앞뒤 앞앞뒤앞 앞앞뒤뒤 앞뒤앞앞 앞뒤앞뒤 앞뒤뒤앞 앞뒤뒤뒤 뒤앞앞앞 뒤앞앞뒤 뒤앞뒤앞 뒤앞뒤뒤
//뒤뒤앞앞 뒤뒤앞뒤 뒤뒤뒤앞 뒤뒤뒤뒤 으로 16가지
//이런식으로 2의 제곱만큼 늘어나는걸 알수있다
//결국 정수형 byte는 1byte(8bit)의 크기를 갖고 있으므로 2^8(=2의8승) 만큼 표현이 가능하다
//하지만 숫자를 표현함에 있어서 양수만 표현하는게 아닌 음수도 표현해야하여 반으로 나눈값에서 -1을 한것이다
//-1을 한 이유는 숫자 0부터 128개를 쳐야하기때문에 0~127(0까지 세면 128개) 까지인것
// 실수 = 부동소수점수 (floating point number) fpu=실수를 전문적으로 계산하는 cpu (기본값=0.0
float f=3.14f; // 4byte 실수(소수점 이하가 있는 수 단! 뒤에 f를 붙여야함)
double g=3.14d; // 8byte 실수 (뒤에 d를 붙여도되고 안붙여도되고)
//자바의 기본 실수형은 double로 되어있어서 float의경우 뒤에 f를붙여 float임을 알려주는것이고
//double의 경우 기본실수형이 double이므로 d를 붙여되고 안붙여도 된다 한 것이다
//문자(기본값은 \u0000)
char h='k'; // 2byte 큰따옴표는 안되고 작은따옴표로 한글자만 저장 가능
//2byte인 이유는 k만 저장되는것이 아닌 'k '이런식으로 null(빈칸)을 삽입하여 2byte이다.
//그렇지만 실제로 메모리에서 취급하는것은 1byte
char i=65;
//char에 문자가 아닌 숫자를 집어넣을경우 그에 해당하는 문자가 나옴
//논리(기본값은 false : 0)
boolean b = true; //1byte 논리연산자 boolean은 true와 false만 가능
System.out.println("i="+i);
}
}