자바의 정석 ch2) 6: 리터럴 타입과 전미사

ga_0·2022년 3월 6일
0

자바의 정석

목록 보기
7/9


예시로 살펴보기

1) boolean power = true ;

논리형이기 때문에 T/F만 가능

_boolean 이란

①영국의 수학자 조지 불(George Boole)이 창안한 불 대수의 이론과 규칙에 따른 연산에 관한 용어에 붙는 형용사.

②논리값을 다루는 연산에 관한 용어에 붙는 형용사. 불 대수는 X 또는 Y의 수치 계산이 아니라, 참 또는 거짓의 논리값을 다루기 때문에 이 용어가 쓰인다.

③일부 프로그램 언어에서의 기본적 데이터형의 하나. 많은 언어에서 참 또는 거짓의 논리값을 나타내는 불 데이터형을 직접 지원한다. 어떤 언어에서는 불값을 0(거짓)과 1(참)로 나타내는 정수 데이터형을 사용한다.

_[네이버 지식백과] 불 [Boolean] (IT용어사전, 한국정보통신기술협회)


2) char ch = 'A';

캐릭터 타입 변수에는 하나의 문자만 저장가능

문자는 작은 따옴표 사이에 넣어야 함

3)String str = "ABC";

스트링 타입 변수에는 여러 문자 저장가능

문자열은 큰 따옴표로 묶어줘야함

4) String str = "A";

A 문자 하나 처럼 보여도

큰따옴표로 묶이면 문자열임

5) 역슬래쉬 + n (| + n)

줄바꿈 문자 (개행문자) 라는 하나의 문자

6) byte b = 127;

 byte b = 128;      //에러

127은 정수인데 접미사가 없으니까 int 타입으로 사용됨

바이트, 숏 타입은 리터러리 없기 때문에

int 접미사 사용

바이트 사용할 수 있는 값 범위 내여야 함 (-128~127 까지 가능)

7)

int i = 100; // 10진수

int oct = 0100; // 8진수

int hex = 0x00; // 16 진수

접두사 붙여서 정수형 리터럴 표현도 가능

8) JDK 1.7버젼 부터

0b0101 같이

0b + 정수형 리터럴 로 표현되면

이진수를 나타냄

9) long ㅣ = 10_000_000_000L; // 100억

int 타입 최대값은 20억 이라서

이 이상은 long 타입에 넣어야함

int 불가능하기 때문에 꼭 L 붙여야함

10) long ㅣ = 100;

롱타입 변수 저장할때 int 접미사 사용가능해서

L 안붙이고, 생략 가능함

11) float f = 3.14f;
double d = 3.14d;

실수형 f 접미사 필수

float 타입 변수를 double 타입에 넣지 못함

실수형 d 접미사 생략 가능


퀴즈


  1. /> 10.0에서 뒤에 0 생략
    실수 + 접미사 없음 = double

.10
/> 0.10에서 앞에 0 생략
실수 + 접미사 없음 = double

10f
/> 실수 + f 접미사 = float

le3
/> e는 10의 n제곱을 의미
따라서 le3는 10의 세제곱 = 1000의미
e는 실수형에서 사용됨
실수형 + 접미사 없음 = double


변수와 리터널의 타입 불일치

1) 변수 > 리터럴 인 경우 ㄱㅊ

① int i = 'A'; // int > char

문자 A가 정수 int에 들어가는게 아니라

A인 ~~ 65가 int에 들어감

Q 근데,,,​, 이거 머선 내용 이 즤 ,,, 모름

② long l = 123 ; // long > int

③ double d = 3.14f // double > float

2) 변수 < 리터럴 인 경우는 ㄴㄴ 에러

① int i 30_0000_0000 ; // int 범위인 -20억 ~ +20억 을 벗어남

② long l = 3.14 f; // long < float

롱타입이 8바이트고 float이 4바이트라서 괜찮을 것 같지만

실수형은 정수형보다 넓기 때문에 불가능

③ float f = 3.14; // float < double

더블 타입 플롯 타입 저장 불가

접미사 생략 불가도 다름

3) byte, short 변수에 int 리터럴 저장 가능

byte랑 short는 리터럴이 없기 때문에

변수 타입 범위 내면 ㄱㅊ

① byte b = 100 ; //byte 범위인 -128~+127에 속하기 때문에 int 리터럴 사용해서 가능

② byte b = 128; //에러 byte 범위 벗어나서


실습

실습하려니까

저번에 프로젝트 만들때 에러났던게

이번에 또나서 !

검색 고고링 해보니까

프로젝트 만들때 모듈을 만들지 않고

프로젝트를 만들어야 한다고 해서

당장 실행에 옮기기

그렇게 해보니까

에러 없이 프로젝트 생성 !!

_(근데 왜 모듈을 만들면 안되는건지,, class랑 module이랑 충돌인가..? 왜 ? 라는,,, 또 하나의 궁금증이 생김)

_(java에서 class랑 module이 정확히 어떤 의미를 갖는건지 내가 아직 잘 모르는것 같은데,

_이는 아마 앞으로 배우면서 자연스럽게 해결되는 점일 것 같아서 그때가서 배우기로 하고 일단 실습 ㄱ)


에러 없이 프로젝트 생성 !!

근데

왜 오류가 나지...?!

라고 했는데 ㅋㅋㅋㅋㅋ

변수 타입을 출력하고 있었음 ㅎㅎ

변수인 d를 했어야 했는데 ㅎㅎㅎㅎㅎ;;

0개의 댓글

관련 채용 정보