//Hello 라는 이름의 클래스 선언
public calss Hello {
}
public static int sum(int n, int m){
...
}
public static void main(String[] args){
}
System.out.println("Hello");
System.out
의 println()
메소드를 호출한 거임_
$
는 사용 가능자바의 변수형은 프리미티브 타입
과 레퍼런스 타입
으로 나뉜다.
: 값을 변수에 대입하여 사용하는 형태
: 값을 변수에 대입하지만 변수는 참조값(메모리상)을 가지고있지 값(프리미티브타입 값들로 이루어진)을 직접 들고있지는 않는 것이 특징
문자열은 기본 타입이 아니다
String 클래스로 문자열을 표현
String toolName = "JDK"
toolName + 1.8 //"JDK1.8"
"(" + 3 + "," + 5 + ")" //"(3,5)"
System.out.println(toolName + "이 출시됨"); //"JDK1.8이 출시됨" 출력
: 프로그램에서 직접 표현한 값
15 -> 10진수 리터럴 15
015 -> 0으로 시작하면 8진수. 십진수로 13
0x15 -> 0x로 시작하면 16진수. 십진수로 21
0b0101 -> 0b로 시작하면 2진수. 십진수로 5
소수점 형태나 지수 형태로 표현한 실수
ex) 12.
12.0
.1234
0.1234
1234E-4
실수 타입 리터럴은 double 로 컴파일
숫자 뒤에 f(float) 나 d(double) 을 명시적으로 붙이기도 함
float f = 0.1234f;
double d = .1234D; //단, .1234D 와 .1234 는 동일하게 취급
char a = 'A';
char b = '글';
char c = \u0041; // 문자 'A'의 유니코드 값(0041) 사용
char d = \uae00; // 문자 '글'의 유니코드 값(ae00) 사용
\u 다음에 4자리 16진수(2byte의 유니코드)로 나타내기도 함
\b
백스페이스
\t
탭
\n
라인피드 (line feed)
\f
폼피트 (form feed)
\r
캐리지 리턴 (carriage return)
\"
이중 인용부호 (double quote)
\'
단일 인용부호 (single quote)
\\
백슬래시 (backslash)
boolean a = true;
boolean b = 10 > 0; // 10>0가 참이므로 b 값은 true
boolean c = 1; // 타입 불일치 오류. C/C++와 달리 자바에서 1,0을 참, 거짓으로 사용 불가
C/C++와 달리 자바에서 1,0을 참, 거짓으로 사용 불가
int n = null; //불가능!! 기본 타입에 사용 불가
string str = null; //가능~
tip1. JDK7 부터 숫자에
_
허용함. -> 가독성을 높임
- 숫자 리터럴의 아무 위치에나 언더스코어
_
를 허용함- 컴파일러는 리터럴에서
_
를 빼고 처리int price = 20_100; // 20100과 동일 long cardNumber = 1234_5678_1357_9998L; // 1234567813579998L와 같음 long controlBits = 0b10110100_01011011_10110011_111110000; long maxLong = 0x7fff_ffff_ffff_ffffL; int age = 2______5; // 25와 동일
허용되지 않는 4가지 경우
int x = 15_; // 오류. 리터럴 끝에 사용할 수 없다. double pi = 3_.14; // 오류. 소수점(.) 앞뒤에 사용할 수 없다. long idNum = 981231_1234567_L; // 오류. _L(_F) 앞에 사용할 수 없다. int y = 0_x15; // 오류. 0x 중간이나 끝에 사용할 수 없다. 0x_15(오류)
tip2.
var
키워드로 변수 타입 생략
- var 와 동일한 기능으로 C++의 auto 가 있다
- 지역 변수의 선언에만 사용 가능
- 변수 타입 선언 생략 -> 컴파일러가 타입 추론
var price = 200; // price는 int 타입으로 결정 var name = "kitae"; // name은 String 타입으로 결정 var pi = 3.14; // pi는 double 타입으로 결정 var point = new Point(); // point는 Point 타입으로 결정 var v = new Vector<Integer>(); // v는 Vector<integer> 타입으로 결정
- 단, 변수 선언문에는 반드시 초기값을 지정해야함
var name; //컴파일 오류, 타입 추론 불가
final
키워드 사용final double PI = 3.14;