JAVA 기초

[JAVA 기초] JAVA의 정석 - Ch.02 변수(Variable) (정리)

beginner-in-coding 2025. 1. 15. 14:20

Ch.02 변수(Variable)


-      변수와 상수

  • 변수란?
    • 의미: 단 하나의 값을 저장할 수 있는 메모리 공간
    • 값을 다루기 위해 사용
  • 변수의 선언과 초기화
    • 변수의 초기화: 변수를 사용하기 전 처음으로 값을 저장하는 것 
    • 변수타입 변수이름;  //선언 방법
    • 변수이름 = 값;  //초기화 방법
  • 변수의 명명 규칙
    • 변수의 이름 == 식별자 (identifier)
    • 대소문자 구분, 길이의 제한 없음
    • 예약어 사용 안됨
    • 숫자로 시작 안됨
    • 특수문자 '_' 와 '&' 외에는 사용 안됨
    • 클래스의 권장 명명 규칙
      • 클래스 이름의 첫 글자: 대문자
      • 카멜 표기법
      • 상수의 이름: 모두 대문자 (여러 단어: '_'로 구분)

-      변수의 타입

  • 기본형
    • 논리형(boolean(1)), 문자형(char(2)), 정수형(byte(1), short(2), int(4), Long(8)), 실수형(float(4), double(8))
    • 기본형: 계산을 위한 실제 값 저장
    • 참조형: 객체의 주소를 저장
      • 클래스이름 변수이름;  //참조형 선언 방법
  • 상수과 리터럴
    • 변수(variable): 하나의 값을 저장하기 위한 공간
    • 상수(const): 값을 저장하는 공간, 한번 값을 저장하면 변경할 수 없음
    • 리터럴(literal): 그 자체로 값을 의미
    • 필요성: 리터럴에 의미 있는 이름을 붙여 코드의 이해와 수정 용이
  • 형식화된 출력 – printf()
    • 지시자(%)의 개수와 출력값 개수 일치
  • 화면에서 입력받기 – Scanner
    • 화면으로부터 입력을 받는 방법
    • java.util class

-      진법

  • 10진법과 2진법
    • 컴퓨터는 2진 체계로 설계되어 있기 때문에 일상생활에서 사용하는 10진법을 변환해서 저장함
    • 2진법: 0과 1로 이루어진 데이터
  • 비트(bit)와 바이트(byte)
    • 비트 (bit): 한 자리의 2진수, 컴퓨터가 저장할 수 있는 최소 단위
    • 바이트 (byte): 비트 * 8
    • n비트로 표현할 수 있는 10진수
      • 값의 개수: 2^n
      • 값의 범위: 0 ~ 2^n-1
  • 8진법과 16진법
    • 2진법의 단점(자리수 길어짐)을 보완한 방법
    • 8진법: 0 ~ 7로 표현
    • 16진법: 0 ~ 9, A ~ F로 표현 
  • 정수의 진법 변환
    • 10진수를 n진수로의 변환 방법
      1. n으로 10진수를 나누고 나온 나머지값을 기억
      2. 더 이상 나눌 수 없을 때까지 반복
      3. 아래서부터 위로 올라가면서 조합
  • 실수의 진법 변환
    • 정수의 진법 변환과 같지만 n을 계속 곱함
    • 위의 결과에서 소수부만 가져가서 반복
    • 소수부가 0이 될 때까지 반복 후, 위에서 아래로 조합 후 앞에 0.을 붙임
  • 음수의 2진 표현법 – 2의 보수법
    • 2의 보수 = 1의 보수 + 1
    • 1의 보수: 2진수의 1의 보수를 모두 더하면 1이 됨

-      기본형(primitive type)

 

  • 논리형 – Boolean
    • true / false
  • 문자형 – char
    • 하나의 문자만 저장
    • 문자가 아닌 문자의 유니코드(0포함 양수)로 저장
  • 정수형 – byte, short, int, long
    • 각각 크기(byte): 1,2,4,8
    • int 범위(+-20억)을 넘어가면 long을 사용
    • byte, short는 성능보다 공간 절약할 때 사용
    • 오버플로우: 부호있는 정수는 부호비트가 0에서 1이 될 때 오버플로우 발생
  • 실수형 – float, double
    • 범위를 벗어나면 오버플로우가 아닌 무한대(infinity)가 됨
    • 언더플로우: 실수형이 표현할 수 없는 아주 작은 값 의미, 0이됨
    • 값의 범위 뿐만 아니라 정밀도 고려

-      형변환

  • 형변환(캐스팅, casting)
    • 변수 또는 상수의 타입을 다른 타입으로 변환하는 것
  • 형변환 방법
    • 기본형의 형변환 방법: (타입) 피연산자
    • 기본형(논리형 제외)은 서로 형변환 가능
    • 기본형과 참조형간의 형변환은 다른 방법 사용
  • 정수형 간의 형변환
    • 큰 범위의 데이터에서 작은 범위의 데이터로 변환할 경우 → 값 손실 발생
    • 작은 범위의 데이터에서 큰 범위의 데이터로 변환할 경우 → 나머지 빈 공간은 0 또는 1로 채워짐
  • 실수형 간의 형변환
    • float → double:
      • 지수 부분 (E): float의 기저인 127 빼고 double의 기저인 1023을 더함
      • 기수 부분 (M): float의 기수 23자리를 채우고 남은 자리를 0으로 채움
    • double → float:
      • 지수 부분 (E): double의 기저인 1023을 빼고 float의 기저인 127을 더함
      • 기수 부분 (M): 24번째의 자리에서 반올림
  • 정수형과 실수형 간의 형변환
    • 정수형 → 실수형: 10진수로 8자리 이상의 값을 실수형으로 변환할 때 double 사용
    • 실수형 → 정수형: 소수점 자리를 버림, 반올림 일어나지 않음
  • 자동 형변환
    • 컴파일퍼가 자동적으로 추가
    • 기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환
    • 값 손실이 없는 경우: 표현 범위가 좁은 타입에서 넓은 타입으로 형변환하는 경우 생략 가능