Chapter02 변수(variable)

cookienc·2021년 6월 19일
0

Java 기본 개념

목록 보기
1/13
post-thumbnail

1. 변수

1.1 변수(variable)란?

단 하나의 값을 저장할 수 있는 메모리상의 공간

1.2 변수의 선언과 초기화

int age = 25; // int : 변수타입, age : 변수이름, 초기화값 : 25

1.3 변수의 명명규칙

<필수사항>
1. 대소문자가 구분되며 길이의 제한이 없다.
2. 예약어(keyword)를 사용해서는 안 된다.
3. 숫자로 시작해서는 안 된다.
4. 특수문자는 '_'와 "$"만을 허용한다.

<권장사항>
1. 클래스 이름의 첫 글자는 항상 대문자로 사용한다.(변수와 메서드의 이름의 첫 글자는 소문자)
2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
3. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어져 있으면 '_'로 구분한다.



2. 변수의 타입

2.1 기본형(primitive type)

자료형저장 가능한 값의 범위크기(byte)
booleanfalse, true1
char'\u0000'~'\uffff' (0~2^16-1, 0~65535)2
byte-128 ~ 127 (~2^7~2^7-1)1
short-32,768 ~ 32,767 (-2^15~2^15-1)2
int-2,147,483,648 ~ 2,147,483,647 (-2^31~2^31-1, 약 +-20억)4
long-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807(-2^63~2^63-1)8
float1.4E-45 ~ 3.4E38 (1.4x10^-45~3.4x10^38)4
double4.9E-324 ~ 1.8E308 (4.9x10^-324~1.8x10^308)8
( float의 정밀도 : 7자리, double의 정밀도 : 15자리 )

2.2 상수와 리터럴(constant & literal)

final int MAX_SPEED = 10;//final : 상수 선언 키워드, MAX_SPEED = 상수, 10 : 리터럴

리터럴에는 접미사가 존재하는데 정수형은 L, 실수형은 f(float type), d(double type)을 붙인다. 만역 실수형 리터럴인데 접미사가 없으면 double 형식이다.

문자 리터럴과 문자열 리터럴

char ch = 'J';
String name = "Java";

2.3 형식화된 출력 - printf()

System.out.printf("age:%d", age);
  • 자동으로 줄바꿈을 하지 않는다 (%n연산자 입력 해야함)
  • 지시자를 통해서 값을 출력할 수 있다.
지시자설명
%b불리언 형식으로 출력
%d10진 정수의 형식으로 출력
%o8진 정수의 형식으로 출력
%x, %X16진 정수의 형식으로 출력
%f부동 소수점의 형식으로 출력(기본 소숫점 6자리)
%e, %E지수 표현식의 형식으로 출력
%c문자로 출력
%s문자열로 출력

Integer.toBinaryString(int i) : 십진수 정수 i를 이진수의 문자열 형태로 반환

2.4 화면에서 입력받기 - Scanner

import java.util.*; // Scanner클래스를 사용하기 위해 추가

Scanner scanner = new Scanner(System.in); // Scanner클래스의 객체를 생성
String input = scanner.nextLine(); // 입력받은 내용을 input에 저장
int num = Integer.parseInt(input); // 입력받은 내용을 int 타입의 값으로 변환


3. 진법

3.1 10진법과 2진법

컴퓨터는 2진수로 정보를 저장

3.2 비트(bit)와 바이트(byte)

1byte = 8bit

  • n비트로 표현할 수 잇는 10진수의 개수는 0~2^n-1이다

워드(word) : CPU가 한 번에 처리할 수 있는 데이터의 크기 ex) 64bit CPU에서 1word = 8byte

3.3 8진법과 16진법

8진법 : 0~7로 표현
16진법 : 0~9, A, B, C, D, E, F로 표현

3.4 음수의 2진 표현 - 2의 보수법

음수는 왼쪽의 첫 번째 비트(MSB)가 0이면 양수, 1이면 음수로 표현

n의 보수 : 더했을 때 n이 되는 수

2의 보수 구하는 법 : 1의 보수(2진수를 xor연산)을 한뒤 1을 더한다.



4. 기본형(primitive type)

4.1 논리형 - boolean

true, false 중 한가지 저장 가능. 기본값은 false
크기 : 1byte

  • 대소문자가 구별됨으로 주의 ex) False(x)

4.2 문자형 - char

char ch = 'A'; // char ch = 65; 와 같은 표현

단 하나의 문자만 저장 가능
but, 문자의 유니코드(정수) 형식으로 저장됨
크기 : 2byte

  • char형과 short형은 모두 크기가 2byte이지만 char형은 음수를 표현할 필요가 없으므로 0~2^16-1개가 표현이 가능하다.

4.3 정수형 - byte, short, int, long

크기 : byte(1) < short(2) < int(4) < long(8)

  • n비트로 표현할 수 있는 정수의 개수 : 2^n개
  • n비트로 표현할 수 있는 부호있는 정수의 범위 : -2^(n-1) ~ 2^(n-1)-1

정수형의 오버플로우 : 연산과정에서 해당 타입이 표현할 수 있는 값의 범위를 넘어서는 것을 의미 -> 오류는 나지 않지만 원하는 값을 표현할 수 없다.

4.4 실수형 - float, double

타입저장 가능한 값의 범위(양수)정밀도크기(byte)
float1.4x10^-45~3.4x10^387자리4
double4.9x10^-324~1.8x10^30815자리8
  • 음수 표현의 범위는 각각 범위에 '-'를 붙이면 된다.
  • float형은 int형과 같은 4byte지만 실수형은 부호, 지수, 가수 세 부분으로 값을 저장하기 때문에 큰 수를 저장할 수 있다.
  • 오차가 발생할 수 있다.


5. 형변환

5.1 형변환(캐스팅, casting)이란?

변수 또는 상수의 타입을 다른 타입으로 변환하는 것

5.2 형변환 방법

(타입)피연산자

  • boolean 타입을 제외한 나머지 타입들은 서로 형변환이 가능하다.
  • 기본형과 참조형간의 형변환은 불가능하다.

0개의 댓글