변수(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가 저장된다.

/ : 몫 (반올림 x ,소숫점 이하는 버려진다), % : 나머지

형변환(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