변수(variable) : 하나의 값을 저장할 수 있는 저장공간 (클래스, 인스턴스, 지역)
* 값의 종류(타입)에 따라 변수의 메모리 공간이 달라진다. (1byte = 8 bits)
변수의 초기화 : 변수에 처음으로 값을 저장하는 것 (지역변수는 읽기 전에 반드시 초기화! )
int x = 0; int y = 5; // 선언과 동시에 초기화
대입 연산자 (=) 는 오른쪽의 값을 왼쪽에 저장하는 것
x = 5; //변수 x 에 5를 저장, 기존의 값은 지워진다.
변수의 타입 : 참조형과 8개의 기본형
(숫자 - int(정수- 20억이 넘을 때는 long), long, float(실수 7자리), double(15자리), 문자 - char, String)
값(data) | 문자 | char | |
숫자 | 정수 | byte, short, int, long | |
실수 | float, double | ||
논리 | boolean |
상수(constant) : final + 변수의 타입 , 한 번 값 저장시 변경 x
* 상수의 이름은 모두 대문자, '_'로 구분
final int MAX_SPEED = 10; // 상수의 선언 + 초기화
리터럴(literal) : 그 자체로 값을 의미한다
* 변수와 리터럴의 타입 불일치(53p)
문자열 결합 : 왼쪽에서 오른쪽의 방향으로 연산을 수행
7 + "" = "7"
7 + "7" = "7" + "7" = "77"
7 + 7 + "" = 14 + "" = "14"
"" + 7 + 7 = "7" + 7 = "7" + "7" = "77"
두 변수의 값 바꾸기 : 값을 임시로 바꿀 변수가 하나 더 필요하다 .
* 세 변수의 값 바꾸기 :
기본형의 종류와 범위 : 정수형 중에는 int 가 기본이고 실수형에서는 double이 기본.
자료형 | 저장가능 값의 범위 | 크기(bit) | 크기(byte) |
boolean | false,true | 8 | 1 |
char | 0 ~ 2^16 -1 (0 ~ 6만) | 16 | 2 |
byte | -128 ~ 127(-2^7 ~ 2^7 -1) | 8 | 1 |
short | -2^15 ~ 2^15 -1 ±3만 | 16 | 2 |
int | ±20억 (-2^31 ~ 2E31 -1), 10자리수 | 32 | 4 |
long | -2^63 ~ 2^63 -1 | 64 | 8 |
float | 1.4E-45 ~ 3.4E38 (양의 범위) | 32 | 4 |
double | 4.9E-324 ~ 1.8E308 (양의 범위) | 64 | 8 |
* 정밀도 (오차 없는 자리수 ) : float - 7자리 , double - 15자리
printf 를 이용한 출력 : 지시자를 이용한 출력
지시자 | 설명 |
%d | 10진 정수 |
%x | 16진 정수 |
%f | 부동 소수점 (소수점 아래 6자리까지) |
%c | 문자 |
%s | 문자열(원하는 길이만큼 출력 가능,좌우정렬) |
%n | 개행 (줄바꿈) |
System.out.prinf("age:%d year:%d", age, year);
화면으로부터 입력 받기 (Scanner) : import.java.util.*;
타입간의 형변환 :
숫자 -> 문자열 : 숫자 + “”
문자열 -> 숫자 : Integer .parseInt();
연산자(Operator) : 모든 연산자는 연산 결과를 반환한다 !
산술( + - * / %) > 비교(> < >= <= == !=) > 논리(&& || !) > 대입(=) (제일 마지막에 수행)
단항(1) : 피연산자 1개 > 이항 > 삼항 : 연산자의 우선 순위
단항,대입 (왼 <-오) 제외 모든 연산 진행 방향 : 왼 -> 오
x = y = 5; // y에 5가 저장 된 후에 x 에 5가 저장된다.
형변환(casting) 연산자 : 변수 또는 상수의 타입을 다른 타입으로 변환하는 것
변환 | 수식 | 결과 |
int -> char | (char) 65 | 'A' |
char -> int | (int) 'A' | 65 |
float -> int | (int) 1.6f 반올림 x | 1 |
int -> float | (float) 10 | 10.0f |
* 유니코드 문자표
0 | 48 |
1 | 49 |
A | 65 |
B | 66 |
a | 97 |
d | 100 |
자동 형변환 : 기존의 값을 최대한 보존할 수 있는 타입으로 자동 형변환 된다 .
1. 두 피연산자의 타입을 같게 일치시킨다 (보다 큰 타입으로 일치시켜 값 손실 최소화)
2. 피 연산자의 타입이 int 보다 작은 타입(byte, short, cha)이면 int 로 변환된다.
* Math.round() : 소수점 첫째 자리에서 반올림 한 결과를 정수로 반환, 소수점 첫째 자리가 아닌 다른 자리에서 반올림 하려면 10의 n제곱으로 적절히 곱하고 나누어야 한다.
* 문자열의 비교 : equals() // 객체가 달라도 내용이 같으면 true를 반환한다, equalsIgnoreCase() : 대소문자 구별 x
'Java' 카테고리의 다른 글
조건문과 반복문(if, switch, for, while), 배열(Array) (0) | 2023.07.03 |
---|---|
Java, JVM, GC, MultiThreading (0) | 2023.05.18 |