JVM (자바 가상 머신) : 자바 바이트 코드를 실행하 수 있는 주체
컴파일 -> ( 자바 바이트 코드 .class ) C:\Users\SSAFY>cd C:\Temp
C:\Temp>javac Hello.java
C:\Temp>java Hello
Hello World
메모장에 작성된 파일을 cmd 로 실행하는 경우, javac 라는 컴파일 명령어를 작성해야 한다.
메인 메서드 (main method) - public static void main(String[] args) {}
printf : 포맷 지정자(%로 시작)를 사용하여 형식을 지정해 데이터 출력
System.out.printf("%d\n", 10); // 정수 (10진수)
System.out.printf("%o\n", 10); // 정수 (8진수)
System.out.printf("%x\n", 10); // 정수 (16진수) 소문자
System.out.printf("%X\n", 10); // 정수 (16진수) 대문자
System.out.printf("%d\n", 10); // 4칸을 확보한 뒤 오른쪽부터 차지
System.out.printf("%-4d\n", 10); // 4칸을 확보한 뒤 왼쪽부터 차지
System.out.printf("%04d\n", 10);
// 4칸을 확보한 뒤 오른쪽부터 차지 (빈칸은 0으로 채움)
System.out.printf("%f\n", 10.12345); // 실수
System.out.printf("%.2f\n", 10.12345); // 실수 (소수점 둘째자리까지)
System.out.printf("%s\n", "싸피"); // 문자열
System.out.printf("%c\n", 'A'); // 문자
System.out.printf("%d\n", (int)'A'); // 문자를 정수로 출력

int i = 100 ;
//byte b = i;
byte b = (byte)i; 
명시적 형변환이 필요한 곳에서 작성하지 않으면 에러 발생한다.
long l1 = 100; // int 의 값이 묵시적형변환이 된 것이다.
int l2 = 123415678901234;
//The literal 123415678901234 of type int is out of range
비교 연산자 - ==
: 비교 연산자의 경우 참조 자료형은 주소 값까지 동일해야 한다.
(기본 자료형은 문제가 되지 않는다.)
System.out.println(c == d); // t
System.out.println(c == e); // f
System.out.println(c.equals(e)); // t
문자열은 .equals() 를 사용해야 한다.
short circuit : 효율적 연산
System.out.print(a > b && a++ > b); // short circuit 발생(하나만 확인)
System.out.println(" " + a);
System.out.print(a < b && a++ < b); // 둘다 확인
System.out.println(" " + a);
System.out.print(a > b || a++ > b); // 둘다 확인
System.out.println(" " + a);
System.out.print(a < b || a++ < b); // short circuit 발생
System.out.println(" " + a);
false 10
true 11
false 12
true 12
do { } while ( 조건문 ) 의 경우 최소 한 번은 실행하게 된다. break; : 가까운 반복문을 빠져나감. continue; : 반복의 남아있는 부분을 건너뛰고 다음 반복으로 간다. out: for (int i = 2; i <= 9; i++) {
System.out.println(i + "단");
for (int j = 1; j <= 9; j++) {
if (j > 5)
break out;
System.out.printf("%d * %d = %d\n", i, j, i * j);
}
}
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String b = sc.next();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
// 토큰 단위로 끊기
StringTokenizer st = new StringTokenizer(str);
// 문자열을 정수로 형변환
int a = Integer.parseInt(st.nextToken());