[Java] 변수

쓰옹·2022년 11월 17일
0

📙 Java 잡아🤏

목록 보기
1/25
post-thumbnail

변수 선언

접근제어자 변수타입(자료형) 변수이름

이름 작성 규칙

  • 첫 글자는 문자 , $ , _ 이어야 하고 숫자로 시작할 순 없음

  • 영어 대소문자 구분

  • camelCase로 작성

  • 자바 예약어는 사용 불가

    • 예약어
    분류예약어
    기본타입boolean, byte, char, short, int, long, float, double
    접근제한자private, protected, public ...
    클래스 관련class, abstract, interface, extends, implements, enum ...
    객체 관련new, instanceof, this, super, null ...
    메소드 관련void, return ...
    제어문 관련if, else, switch, case, default, for, do, shile, break, continue ...
    논리값true, false
    예외 처리 관련try, catch, finally, throw, throws
    기타package, import, synchronized, final, static

변수가 어떤 값을 저장하고 있는지 쉽게 알 수 있도록 의미 있는 이름을 지어주는 것이 좋다.

값 저장

  • 변수에 값이 저장되지 않으면 변수가 생성되지 않음
  • 변수 초기화: 최초로 값이 저장될 때 변수가 생성됨 -> 사용된 값을 초기값이라고 함
  • 변수 선언과 동시에 초기값을 제공할 수 있음

변수 사용 범위

  • 모든 변수는 {}블록 내에서 선언, 사용됨
  • 로컬변수: 메소드 블록 내에서 선언된 변수. 메소드 실행이 끝나면 메모리에서 없어짐
    • v2는 if 블록 내부에서 선언했기 때문에 if 블록 밖에선 사용할 수 없어서 컴파일 에러 발생
    • error: cannot find symbol == 해석할 수 없엉

변수, 상수, 리터럴

  • 변수(variable) : 가변 값 저장 공간
  • 상수(constant) : 불변 값 저장 공간
    • 자료형 앞에 final 키워드붙여서 선언
    • 재할당 불가
  • 리터럴(literal) : 값 자체 의미
    • e : 10의 n제곱을 의미. ex) 1e3 == 1000
    • 접두사
      int i = 100; //10진수
      int binary = 0b0101; //  == 5. 2진수: 0b or 0B로 시작, 0과 1로 이루어짐
      int oct = 013; // == 8진수
      int hex = 0x100; // == 16진수
      ``

자료형

기본자료형(Primitive Type)

저장 값타입종류
문자char
정수byte, short, int, long
실수float, double
논리boolean

문자

  • char == character. '' 안에 알파벳 한 글자만 설정 가능
    char chr = 'A'; // 유니코드: 65
    • 유니코드는 정수이므로 char도 정수타입에 속함

숫자

public class Main {
    public static void main(String[] args) {
        short s = 1;
        int a = 3;
        long l = 3_000_000_000L;  //int 허용범위 초과할 경우 뒤에 L을 붙여줘야함
        float f = 5.5f; // 뒤에 f 붙여줘야함 대소문자 관계 없음
        double d = 5.5;
    }
}

메모리 사용 크기와 허용 범위

타입메모리사용크기저장되는 값의 허용 범위소수점 이하
char2 byte / 16 bit0 ~ (21612^{16}-1) //0 ~ 65535(유니코드)
byte1 byte / 8 bit-272^7 ~ (2712^7-1) //-128 ~ 127
short2 byte / 16 bit2152^{15} ~ (21512^{15}-1) //-32,768 ~ 32,767
int4 byte / 32 bit2312^{31} ~ (23112^{31}-1) //약 +-20억
long8 byte / 64 bit2632^{63} ~ (26312^{63}-1)
float4 byte / 32 bit7자리
double8 byte / 64 bit15자리
  • 각 타입 변수에 허용범위를 초과한 값을 대입할 경우 컴파일 에러 발생

논리

  • true or false


참조자료형(Reference Type)

: 기본형 제외 모든 자료형. 객체(Object)의 번지를 참조하는 타입

  • 값 자체가 변수에 저장되는 것이 아니라 메모리 어딘가에 위치한 값의 주소를 저장하고 활용
    • 배열타입, 열거타입, 클래스, 인터페이스

String

: 클래스이므로 참조형임. 문자열 변수. ""

이스케이프 문자

: 문자열 내부에 \역슬래시가 붙은 문자.

  • 문자열에 특정 문자를 포함시킬 수 있음
Stirng str = "나는 \"자바\"를 좋아합니다";
System.out.println(str);

// 나는 "자바"를 좋아합니다
자주 사용하는 이스케이프 문자 정리 표
이스케이프문자출력 용도
\t탭만큼 띄움
\n개행(줄 바꿈)

기본형의 값이 같은지 비교할 때에는 ==
문자열(String)이 같은지 비교할 땐 equals() 메소드 사용







🧐reference
신용권, 『혼자 공부하는 자바』,한빛미디어, 2019

profile
기록하자기록해!

0개의 댓글