클래스, 변수, 상수, 메소드 등에 붙이는 이름
_,$만 특수문자로서 사용 가능, 공백이랑 탭도 불가능
유니코드 문자 사용 가능
첫 번째 문자로 숫자 사용 불가
불린 리터럴(true, false), 널 리터럴(null) 사용 불가
길이 제한 x
예약어, 키워드 사용 x
기본 타입 8개
1. boolean (1비트)
2. char (2바이트)
3. byte (1바이트)
4. short (2바이트)
5. int (4바이트)
6. long (8바이트)
7. float (4바이트)
8. double (8바이트)
기본 타입의 크기가 정해져 있어 CPU나 운영체제에 따라 변하지 않는다.
레퍼런스 타입 1개- 용도 3가지
배열에 대한 레퍼런스
클래스에 대한 레퍼런스
인터페이스에 대한 레퍼런스
문자열도 레퍼런스 타입
그래서 String
프로그램 실행 중에 값을 임시 저장하기 위한 공간, 변수 값은 프로그램 수행 중 변경 가능
데이터 타입에서 정한 크기의 메모리가 할당됨
int a=5
데이터 타입, 변수명, 값 순
프로그램에서 직접 표현한 값
정수, 실수, 문자, 논리, 문자열 리터럴 있음
정수 리터럴
10진수, 8진수, 2진수, 16진수 리터럴
냅다 숫자면 10진수, 0으로 시작하면 8진수, 0x로 시작하면 16진수, 0b로 시작하면 2진수
long타입 리터럴은 숫자 뒤에 L or l 붙여서 표현
실수 리터럴
소수점 형태나 지수 형태로 표현한 실수
실수 타입 리터럴은 float or double타입으로 컴파일
숫자 뒤에 f나 d를 명시적으로 붙이기도 함
float뒤에는 무조건 !!! 붙여주어야함
double은 맘대루 !
문자 리터럴
단일 인용부호('')로 문자 표현
\u 다음에 4자리 16진수를 통해 나타내기도 함
\u0041 : 문자 'A'의 유니코드 (0041)
\uae00 : 한글문자 '글'의 유니코드 (ae00)
+특수문자 리터럴은 백슬래시(\)로 시작
논리 리터럴
true, false
boolean 타입 변수에 치환하거나 조건문에 이용
boolean a=true
boolean b=(10>0)
while(a){
...
}
이런식으로 이용
null 리터럴
레퍼런스에 대입, 기본 타입 사용 x
String s=null;
문자열 리터럴(스트링 리터럴)
이중 인용 부호("")로 묶어 표현
문자열 리터럴은 String 객체로 자동 처리
JDK7부터 숫자에 _허용 ->가독성 높임
이건 왜 그러냐면 컴파일러는 리터럴에서 _를 빼고 처리하기 때문
근데 이건 리터럴 끝, 소수점 앞뒤, L이나 F 앞, 0x중간이나 끝에 사용할 수 x
var키워드
Java10 부터 도입된 키워드
지역 변수의 선언에만 사용이 가능하며 변수 타입 선언을 생략하면 컴파일러가 변수 타입 추론해줌 그대신 초기값을 반드시 지정해줘야함
final 키워드 사용, 선언 시 초기값 지정, 실행 중 값 변경 불가
final double PI=3.141592;
상수선언, 데이터 타입, 상수이름, 초기화
작은 타입은 큰 타입으로 자동 변환 ->컴파일러에 의해 이루어짐
치환문이나 수식 내에서 타입이 일치하지 않을 때 변환됨.=
큰 타입이 작은 타입으로 변환할 때
int n=300
byte b= (byte)n;
근데 이러면 !! 값 손실 될 수 있음
System.in
키보드로부터 직접 읽는 자바의 표준 입력 스트림
키 값을 바이트(문자 x)로 리턴
이때 !! 바이트 데이터로 키 값을 넘겨주면 응용 프로그램이 문자 정보로 변환해야함
이때 필요한게 Scanner 클래스
System.in이 읽은 바이트를 문자, 정수, 실수, 불린, 문자열 등 다양한 타입으로 변환하여 리턴해줌
new 를 통해 새로운 객체 생성
Scanner a= new Scanner(System.in)
Scanner는 입력되는 키 값을 공백으로 구분되는 아이템 단위로 읽음
\t, \f, \r, \n
Scanner 메소드
String next(): 다음 토큰을 문자열로 리턴
int nextInt(): 다음 토큰을 int타입으로 리턴
double nextDouble(): 다음 토큰을 double 타입으로 리턴
String nextLine(): '\n'을 포함하는 한 라인을 읽고, '\n'을 버린 나머지 문자열 리턴
연산: 주어진 식을 계산하여 결과를 얻어내는 과정
종류
1. 증감: ++,--(전위, 후위 잘 생각하기)
2. 비트: &, |, ^, ~ (^는 xor 연산- 다르면 1, 같으면 0)
3. 산술: +, -, , %, /
4. 논리: &&, ||, !, ^
5. 시프트: >>,<<,>>>
6. 조건: ? :
7. 비교: >, <, >= , <=, == , !=
8. 대입: =, =,/=,+=, -=,&=,^=,|=,<<=,>>=,<<<=
시프트 연산자 추가
a>>b: a의 각 비트를 오른쪽으로 b번 시프트, 최상위 비트의 빈자리는 시프트 전의 최상위 비트로 다시 채움, 산술적 오른쪽 시프트
a>>>b: a의 각 비트를 오른쪽으로 b번 시프트, 최상위 비트는 항상 0으로 채움, 논리적 오른쪽 시프트
a<<b: a의 각 비트를 왼쪽으로 b번 시프트, 최하위 비트는 항상 0으로 채움, 산술적 왼쪽 시프트
if(조건식){
실행문장..
}
if(조건식){
실행문장1..
}
else{
실행문장2..
}
if(조건식1){
실행문장1..
}
else if(조건식2){
실행문장2..
}
else{
실행문장3..
}
swich(식)
case 값1:
실행문장1;
break;
case 값2:
실행문장2;
break;
case 값3:
실행문장3;
break;
default:
실행문장4;
case문의 값에는 문자, 정수, 문자열 리터럴만 허용
실수 리터럴 허용 x