프로그래밍/JAVA

[JAVA] 변수와 타입

daykim 2022. 10. 10. 23:50
참고도서
이것이 자바다

 

변수

하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름

  • 컴퓨터 메모리(RAM)은 수많은 번지들로 구성된 데이터 저장 공간
  • 메모리 관리를 위해 변수 사용

 

변수 선언

데이터타입    변수명;

 

캐멀 스타일

코드 작성시 여러 단엉를 혼합해 명명하는 경우, 낙타의 등처럼 대소문자를 섞어 작성하는 스타일

  1. 자바 소스 파일명은 대문자로 시작하는 것이 관례
    ex) HelloWorld.java
  2. 변수명은 소문자로 시작하는 것이 관례
    ex) helloWorld

 

변수 초기화

변수에 값을 대입하는 행위

이 때 메모리에 값이 할당된다.

초기화 되지 않은 변수는 메모리에 할당되지 않았기 때문에 변수를 통해 메모리 값을 읽을 수 없다.

 

데이터 타입

정수 byte, char, short, int, long
실수 float, double
논리 boolean
  • 최상위 bit는 부호 bit로 사용된다.
    • 양수 : 0
    • 음수 : 1

 

리터럴(literal)

코드에서 프로그래머가 직접 입력한 값

2진수 0b || 0B로 시작
8진수 0으로 시작
10진수  
16진수 0x || 0X로 시작
// 2진수
int x = 0b1111;
int y = 0B1111;

// 8진수
int x = 013;

// 10진수
int x = 12;

// 16진수
int x = 0x123;
int y = 0X123;

 

데이터 타입 허용 범위 초과 값 대입

컴파일 에러 발생

 

long

기본적으로 컴파일러는 정수 리터럴을 int 타입으로 간주하기 때문에, int 허용 범위 초과 시 맅터럴은 뒤에 소문자 l || L을 붙여 long 타입임을 컴파일러에게 알려야 한다.

long x = 10000000000; // 컴파일 에러
long y = 10000000000L;

 

char

어떤 문자도 대입하지 않고, 단순히 초기화 목적으로 ''를 대입하면 컴파일 에러 발생

이 경우 공백 포함해 초기화 해야 한다.

char c = ''; // 컴파일 에러
char c = ' ';

 

실수 타입

float 부호 bit (1) 지수 bit (8) 가수 bit (23)
double 부호 bit (1) 지수 bit (11) 가수 bit (52)
  • 컴파일러는 실수 리터럴을 기본적으로 double로 해석
  • float 타입에 대입하고 싶다면 리터럴 뒤에 f || F를 붙여야 한다.

float x = 3.14f;
float y = 3.14F;

 

String

자바 기본 타입에 속하지 않는 참조 타입이다.

 

이스케이프(escape) 문자

문자열 내부에 역슬래쉬(\) 문자를 사용하는 것

  • 큰 따옴표 3개로 감싸면 이스케이프 하거나 라인 피드 할 필요 없이 작성된 그대로 문자열로 저장된다.
  • 아래 예제는 같은 결과값
String s1 = "" + "{\n" + "\t\"id\":\"winter\",\n" + "\t\"name\":\"눈송이\"\ㅜ + "}";
String s2 = """
                {
                    "id" : "winter",
                    "name" : "눈송이"
                }
	    """

 

자동 타입 변환

자동으로 타입 변환이 일어나는 것

값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 대입될 때 발생

  • char의 경우 int 타입으로 자동 변환
  • byte 타입은 char 타입으로 자동 변환 불가
    char 타입의 허용 범위는 음수를 포함하지 않기 때문이다.
    따라서 컴파일 에러 발생

 

강제 타입 변환

큰 허용 범위 타입은 작은 허용 범위 타입으로 자동 변환될 수 없다.

따라서 큰 허용 범위 타입을 작은 허용 범위 타입으로 쪼개어 저장하는 것이다.

 

문자열을 기본 타입으로 변환

Byte.parseByte(str);
Short.parseShort(str);
Integer.parseInt(str);
Long.parseLong(str);
Float.parseFloat(str);
Double.parseDouble(str);
Boolean.parseBoolean(str);

 

기본 타입을 문자열로 변환

String.valueOf(기본타입값);

 

키보드 입력 데이터를 변수에 저장

// 스캐너 객체 생성
Scanner scanner = new Scanner(System.in);

// 입력 데이터 저장
String s = scanner.nextLine();
  • scanner.nextLine()은 Enter 입력 전까지 대기 상태
  • Enter 입력 시 지금까지 입력된 내용을 문자열로 읽는다.

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] 클래스  (0) 2023.01.14
[JAVA] 참조 타입  (2) 2022.11.08
[JAVA] 조건문과 반복문  (0) 2022.10.12
[JAVA] 연산자  (1) 2022.10.11
[JAVA] JAVA란?  (0) 2022.10.06