자바의정석

[자바의 정석 - 기초편] ch02 연습문제 풀이

유호야 2022. 1. 20. 19:02
반응형

 

boolean 은 1비트로 충분하지만, 자바에서 최소 단위가 1바이트기 때문에 1바이트로....
int/ double 각각 타입에 따른 default 형이다.

각 타입의 범위는 0~2^(BYTE값) 또는 -2^(byte) ~ 2^(byte)-1 이라고 생각하면 된다. 

 


해답

long regNo = 770000000202020220L;

- 추가 응용 : Scanner를 이용해서 입력 받는 코드

import java.math.BigInteger;
import java.util.Scanner;

public class Exercise {

	public static void main(String[] args) {
		
		Scanner scn = new Scanner(System.in);
		BigInteger regNo = scn.nextBigInteger();
		System.out.println(regNo);
		
		long regNo2 = scn.nextLong();
		System.out.println(regNo2);
		
	}

}

int regNo는 안된다 왜냐하면 범위가 2^32로 
대강 20억까지밖에 감당하지 못하기 때문에 
long이나 bigInteger를 사용해야 하는 것 

정수형 타입으로는 보통 형을 사용하지만 주민등록번호는 자리의 정수이기 int , 13 때문에 형의 범위를 넘어서는 값이다 그래서 형을 사용해야한다 그리고 리터럴 int . long . 의 접미사 을 잊어서는 안된다


 

틀렸다 상수는 그 final 키워드가 붙은 변수를 의미한다. 즉 PI 
키워드는 타입이나 final과 같은 것..(?)


기본형은 논리형(boolean), 정수형(byte, short, int, long), 실수형(float, double), 문자형(char) 총 8개이며, 나머지는 모두 참조형(reference type)이다.


 null은 연산 불가능하다 


오답이다.

Class와 System은 해당사항이 없나부다... 

클래스는 헷갈렸던 것이 class 소문자가 사용이 되서 소문자는 안돼고, Class는 가능하다 즉 키워드가 아닌셈
당연히 사용하고 있는 것들이라 키워드인줄.........!!

키워드란 무엇인지 
다시 정리해본다.

키워드란 특정 용도로 사용하기 위해서 자바 프로그램에서 미리 예약되어 있는 명령으로, 이미 선언된 명령, 즉 다른 변수나 클래스, 메소드명 등으로 사용할 수 없는 제한된 단어라고 생각하시면 됩니다

 


 

정답

예약어와 키워드의 차이는 무엇인가?

예약어는 식별자로 사용할 수 없다. 키워드는 언어에서 특별한 의미를 가지는 단어이며, 구문 분석의 대상이다. 다른 의미인 것 같지만, 자바에서 키워드는 식별자로 사용할수 없으므로 예약어이다.+ 키워드를 식별자로 사용할수 있는 언어도 있다고 한다.

따라서 깊게 생각하지 않고 true와 같이 키워드이자 미리 예약되어 있는 명령어로 예약어와 동일하다고 생각하면 될 것 같다.

참조형 변수의 크기는 = 4 byte


 

형변환 문제가 제일 어려운 것 같은데 
일단 크기가 큰 변수에 대입하는 것이 기본인데, 
크기가 크다고 하더라도, 범위가 다를 경우
또는 float이나 double의 경우 범위가 더 클 수 있기 때문에 그 부분을 고려해야 한다. 


char 타입에 저장될 수 있는 정수 값의 범위는
char 는 2byte 이고, 2byte = 16bit 즉

0~65536개


byte의 범위는 2^8 : -128부터 127까지
char에는 빈문자열을 입력할 수 없으며, 문자 하나만 입력 가능하다.


public 과 static 위치 변경 가능
String[] args = String args[] 
args 이름 변경 가능


자꾸 헷갈리는데
기본 값들은 부정적인 값이라고 생각하면 된다.
boolean은 false 나머지는 0

0.0 은 0.0d이라는 것 깜빡하지 않기

 

반응형