다희의 코딩 성장일기

JAVA 쓰면서 몰랐던 기초 개념 본문

CS/JAVA

JAVA 쓰면서 몰랐던 기초 개념

ilmiodiario 2022. 1. 4. 23:58
  • 자바는 하이브리드 언어
    • 인터프리터 언어 = 소스코드 바로 실행가능한 언어. 컴파일 필요없음
      • 파이썬, 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든 상관없이 뒤에 피연산자도 결과 확인함
      • |일경우 피연산자 조건 다 봄
Comments