Java04 변수와 리터럴,변수의 접미사

/*
리터럴의 접두사와 접미사.. 접미사는 대소문자 구별안함

정수형 100L -> long타입 20 int타입
실수형 1.4f -> float타입, d ->double타입(잘 안쓰임..생략가능)
*
*
* */

	boolean power = true; // 불린타입은 트루,폴스만 가능
	char c = 'A'; //문자형 char 타입 ''
	String a = "hello"; //문자열 타입 ""
	byte b = 127; //int타입 byte타입의 범위: -128~127
	float f = 3.14f; //플로트형이면 반드시 f 붙여줘야함
	double d = 3.14; //double타입이면 d 생략가능
	
	// \n 줄자꿈 문자(개행문자)
	
	// 10. = 10.0
	// .10 = 0.10
	// 10f = 10.0f
	// 1e3 e^3는 10^3을 의미, 기호 e는 실수형에서 사용된다.
	// 실수형인데 접미사가 생략되어 있으니까 double타입이라서 le3 = 1000.0d
	
	/*
	 * 변수와 리터럴의 타입 불일치
	 * 1. 범위가 변수>리터럴인 경우 ok
	 * int i = 'A'; 문자 A는 유니코드로 65라서..65는 int의 범위에 들어감
	 *          int > char
	 * long l = 123; 123은 인트타입인데 더 범위가 넓은 long타입에 넣으니 문제없음
	 *          long > int
	 * double d = 3.14f double > float
	 * 
	 * 2.범위가 변수<리터럴인 경우, 에러
	 * long l = 3.14f long < float
	 * long타입(정수형)은 8byte,float타입(실수형)은 4byte라서 될거같지만
	 * 실수형은 정수형보다 저장범위가 더 넓어서 에러 발생
	 * 
	 * float f = 3.14; float < double 이라서 안됨
	 * 그냥 3.14써있으면 더블타입이니까 더 큰 더블타입을 플로트타입에 넣을 수 없다.
	 * 
	 * 
	 * 3.byte,short 변수에 int 리터럴 저장가능
	 * 바이트와 숏타입의 리터럴은 없다 그래서 int리터럴을 사용한다
	 * 
	 * byte b = 100; ok. byte의 범위 -128~127
	 * byte b = 128; error. byte의 범위를 벗어남
	 * */
	
	boolean power2 = false;
	
	System.out.println(power2);
	
	byte bb = 127;
	
	int oct = 010; //8진수, 10진수로 8
	int hex = 0x10; //16진수, 10진수로 16
	System.out.println(oct);//println메소드는 값을 10진수로만 출력한다
	System.out.println(hex);
	
	long l = 1000_000_000; //int타입의 값을 long타입에 저장함
	long l2 = 10_000_000_000L; //인트범위 벗어나면 long타입되서 L 붙여야함
	
	double dd = 3.14f; //더 작은 플로트타입을 더 큰 더블타입에 대입했으니 가능.

좋은 웹페이지 즐겨찾기