01.18 변수

2023. 1. 18. 21:38개발일지

변수

  • 단 하나의 값을 저장할 수 있는 기억 공간(메모리 공간)

변수의 선언

  • 선언을 하는 이유 : 메모리에 값을 저장할 공간을 마련하기 위해서 선언
  • 선언 방법 : 변수타입 변수이름;
    • "int age; int num;" or "int age, num;"

타입 변수명

변수의 타입

    • 문자 : char
    • 숫자
      • 정수 : byte, short, int, long
      • 실수 : float, double
    • 논리 : boolean

변수의 타입(Data type)

  • 기본형(Primitiva type)
    • 8개 (boolean, char, byte, short, int, long, float, double)
    • 실제 값을 저장

기본형

 

  • 참조형(Reference type)
    • 기본형을 제외한 나머지 타입(String, System 등)
    • 객체의 주소를 저장(4 byte)
    • 참조형 변수는 null 또는 메모리 주소를 저장
      • null은 '어떤 객체의 주소도 저장되지 않음'을 뜻

 

변수의 초기화

  • 변수에 값을 저장하는 방법 : 변수타입 변수이름 = 값;
    • "int age; age = 23;" or "int age = 23;" or "int age = 23, num = 32768;"
  • 초기화 : 변수에 처음으로 값을 저장하는 것을 의미

기본형(Privitive type)

  • 논리형(boolean)
    • true와 false중 하나를 값으로 갖으며, 조건식과 논리적 계산에 사용
  • 문자형(char)
    • 문자를 저장하는데 사용되며, 변수 당 하나의 문자만을 저장할 수 있다.
      (각 나라별 언어를 모두 표현하기 위해 나온 코드 체계)

아스키 코드

  • 정수형(byte, short, int, long)
    • 정수 값을 저장하는데 사용되며, 주로 사용하는 것은 int와 long이다. byte는 이진데이터를 다루는데 사용되며, short은 c언어와의 호환을 위해 추가되었습니다.
  • 실수형(float, double)
    • 실수 값을 저장하는데 사용된다. float와 double이 있습니다.

변수의 종류

  • 변수의 종류에는 클래스, 인스턴스, 지역 변수 3가지

상수

  • 한 번만의 값을 저장할 수 있는 공간
    • 선언 방법 : final 변수타임 변수이름;
  • 숫자에 의미있는 이름을 붙여 코드 자체의 가독성을 늘리기 위해 상수를 사용

리터럴

  • 그 자체로 값을 의미하는 것
  • Java에서 상수를 '한 번만 값이 저장 가능한 변수'라는 의미로 사용하기 때문에 이를 구별하기 위해 사용하는 용어

변수, 상수, 리터럴 구별하기 (아래 예제코드를 사용하여 변수, 상수, 리터럴을 구별)

  • score : 변수
  • finalScore : 상수
  • 100, 1000 : 리터럴

변수, 상수, 리터럴

리터럴의 접두사와 접미사

  • 정수형 
    • 정수형의 Int, 실수형의 double은 기본형이기 때문에 접미사를 붙이지 않고, long 타입은 구분을 위해 100L처럼 리터럴 마지막에 접미사로 L을 붙입니다.
    • byte, short 타입의 변수도 마찬가지로 리터럴 접미사가 존재하지 않고 int 타입과 똑같은 리터럴을 사용하여 저장
      (연산에 이용하기보다는 저장 목적인 경우가 많아 Java의 내장 변환모듈이 자동으로 형변환 시켜줍니다.)
  • 실수형
    • float의 리터럴에는 f, double의 리터럴에는 d가 붙습니다.
    • 실수형은 2개 밖에 존재하지 않기 떄문에 접미사 f를 사용하면 구분을 할 수 있어서 접미사 d는 생략을 허용합니다.
  • 따라서, 리터럴에 붙이는 접미사는 정수형의 L, 실수형의 f만 주의하면 됩니다.

리터럴의 종류(타입)

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

  • 범위가 '변수 > 리터럴'인 경우 : OK
    • int i = 'A'; int > char, 'A' = 65
    • long l = 123; long > int
    • double l = 3.14f; double > float
  • 범위가 '변수 < 리터럴'인 경우 :Error
    • int i = 30_0000_0000; int의 범위 (대략 20억)를 넘습니다.
    • long l = 3.14f; long < float
      • long(8bye), float(4byte)라 가능할 것 같지만 실수형은 정수형 보다 저장 범위가 훨씬 넓기 때문에 Error가 발생합니다.
    • float f = 3.14; float < double;
  • byte, short 변수에 int 리터럴 저장 : OK
    • 단, 변수의 타입의 범위 이내여야 합니다.

타입간의 변환방법

문자와 숫자간의 변환

  • 숫자를 문자로
    • 숫자 + '0' → 문자
  • 문자를 숫자로
    • 문자 - '0' → 숫자

문자열로의 변환

  • 숫자를 문자열로
    • 숫자 + "" → 문자열
  • 문자를 문자열로
    • 문자 + "" → 문자열

문자열을 숫자, 문자로 변환

  • Integer.parseInt("문자열")
  • Double.parseDouble("문자열")

문자열을 문자로

  • "문자열".charAt(0)

문자와 문자열

  • 문자와 문자열의 차이 확인하기

문자와 문자열의 차이 코드

문자열 결합

문자열 결합 코드

두 변수의 값 교환

두 변수의 값 교환 코드

 

'개발일지' 카테고리의 다른 글

01.19 조건문과 반복문(플로우차트)  (0) 2023.01.19
01.18 연산자  (0) 2023.01.18
01.18 프로그래밍 언어와 Java의 시작 정리  (2) 2023.01.18
01.18(정리자료)  (0) 2023.01.18
01.14  (0) 2023.01.18