다희의 코딩 성장일기
JAVA 쓰면서 몰랐던 기초 개념 본문
- 자바는 하이브리드 언어
- 인터프리터 언어 = 소스코드 바로 실행가능한 언어. 컴파일 필요없음
- 파이썬, js
- 자바는 컴파일과 인터프리터 언어 둘다 혼합한 하이브리드언어! 바이트코드가 JVM에 실행될 때는 인터프리터 언어임
- 인터프리터 언어 = 소스코드 바로 실행가능한 언어. 컴파일 필요없음
- 자바는 semi boolean을 지원하지 않는다.
- semi boolean은 숫자값 0과 1을 이용해서 참과 거짓 표현이 가능한 것.
- 자바는 이를 지원하지 않으므로 통시적으로 true, false표현 해야함
- char는 2byte. 유니코드 기반이므로 2byte인 한국어도 입력가능
- 자바는 타입이 없으면 표현 못한다. 상수도 다 리터럴 타입이 있다!
- 리터럴(literal) : 소스 코드 내에 데이터 값 그대로 쓴 상수
- 자바 기본 리터럴 정수형 int, 실수형 double → double인 이유는 정밀도가 더 정확해서
- float num = 12.34; //에러, 실수형은 기본리터럴이 double이므로 f를 넣어 float으로 형변환
- flat num = 12.34f;
- 자바 정수형과 실수형 저장시 차이는?
- 정수는 실제 값을 이진수로 변환해서 저장. 실수형은 가수와 지수를 저장함. 저장방식이 다름
- 형변환
- byte = 1, short = 2, char = 2, int = 4, long = 8, float = 4 , double = 8
- 왼쪽 → 오른쪽은 자동 형변환.
- 왼쪽 ← 오른쪽은 명시적 형변환 필요. → 범위가 더 작기때문에 값의 손실 발생
- char → short 와 short → char는 불가능. 같은 2바이트라도 범위가 다름. char는 음수를 안 가지고 양수값만 표현
- 서로 다른 데이터 타입 연산할 경우
- 산술 연산자는 타입이 다른 데이터를 처리할 수 없음.
- 따라서, 데이터 타입부터 통일 → 예로, int타입이 double로 형변환
- double타입과 double 타입을 더하여 double타입의 결과를 산출
- int promotion
- int보다 작은 정수형 타입으로 연산하면 피연산자를 다 int로 바꾸는 것
- byte, short로 연산할 경우, 계산시에 4byte 단위로 계산하기때문에 변수를 int로 형변환한다. 따라서 연산 결과를 담는 변수도 int로 해야함!
- 조건연산자 &&와 논리연산자 &의 차이
- &&연산자에서 첫번째 피연산자가 false면 뒤의 피연산자는 보지도 않음
- ||일 경우는 첫번째 조건이 true면 뒤의 조건은 보지도 않음
- & 연산자는 첫번째 피연산자가 true false든 상관없이 뒤에 피연산자도 결과 확인함
- |일경우 피연산자 조건 다 봄
- &&연산자에서 첫번째 피연산자가 false면 뒤의 피연산자는 보지도 않음
Comments