1. 변수
1.1 변수(variable)란?
단 하나의 값을 저장할 수 있는 메모리상의 공간
1.2 변수의 선언과 초기화
int age = 25; // int : 변수타입, age : 변수이름, 초기화값 : 25
1.3 변수의 명명규칙
<필수사항>
- 대소문자가 구분되며 길이의 제한이 없다.
- 예약어(keyword)를 사용해서는 안 된다.
- 숫자로 시작해서는 안 된다.
- 특수문자는 '_'와 "$"만을 허용한다.
<권장사항>
- 클래스 이름의 첫 글자는 항상 대문자로 사용한다.(변수와 메서드의 이름의 첫 글자는 소문자)
- 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
- 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어져 있으면 '_'로 구분한다.
2. 변수의 타입
2.1 기본형(primitive type)
자료형 | 저장 가능한 값의 범위 | 크기(byte) |
---|---|---|
boolean |
false, true | 1 |
char |
'\u0000' |
2 |
byte |
-128 ~ 127 ( |
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 |
float |
1.4E-45 ~ 3.4E38 (1.4x10^-45~3.4x10^38) | 4 |
double |
4.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 |
불리언 형식으로 출력 |
%d |
10진 정수의 형식으로 출력 |
%o |
8진 정수의 형식으로 출력 |
%x , %X |
16진 정수의 형식으로 출력 |
%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) |
---|---|---|---|
float | 1.4x10^-45~3.4x10^38 | 7자리 | 4 |
double | 4.9x10^-324~1.8x10^308 | 15자리 | 8 |
- 음수 표현의 범위는 각각 범위에 '-'를 붙이면 된다.
- float형은 int형과 같은 4byte지만 실수형은 부호, 지수, 가수 세 부분으로 값을 저장하기 때문에 큰 수를 저장할 수 있다.
- 오차가 발생할 수 있다.
5. 형변환
5.1 형변환(캐스팅, casting)이란?
변수 또는 상수의 타입을 다른 타입으로 변환하는 것
5.2 형변환 방법
(타입)피연산자
- boolean 타입을 제외한 나머지 타입들은 서로 형변환이 가능하다.
- 기본형과 참조형간의 형변환은 불가능하다.
'LANGUAGE > [JAVA]' 카테고리의 다른 글
Chapter07 객체지향 프로그래밍II(Object-oriented Programming II) (0) | 2021.08.24 |
---|---|
Chapter06 객체지향 프로그래밍 I(Object-oriented Programming I) (0) | 2021.08.20 |
Chapter05 배열(array) (0) | 2021.08.18 |
Chapter04 조건문과 반복문 if, switch, for, while statement (0) | 2021.08.17 |
Chapter03 연산자(operator) (0) | 2021.08.13 |