생활코딩 JAVA1 - 6 ~ 15 (完)
인프런 Do it! 자바 프로그래밍 입문 1장 ~ 4장
JAVA Platform, Standard Edition 8 API Specification
java.lang)java.lang.String)constant pool에 저장
// numeric
System.out.println(53); // 53
System.out.println(5/5+3*5); // 16
// Character
System.out.println('A'); // A
System.out.println('A'+'B'); // 131 (아스키코드 합)
// string
System.out.println("ABCDE"); // ABCDE
System.out.println("A"+"BC"); // ABC
System.out.println("ABC".length()); // 3
System.out.println("I am Wonjin".replace("Wonjin", "Student")); // I am Student
// --- 문자열 내에 이스케이프 문자열 사용가능.
괄호 안의 숫자는 잡아먹는 메모리 공간(바이트단위)
아스키값으로 저장.
정수로 출력하면 아스키값, 문자로 출력하면 아스키문자로 나타남.
문자세트
문자를 위한 코드값(수)를 정해 놓은 세트
자바는 UTF-16 인코딩 사용
- 아스키코드 : 1바이트로 영문자, 숫자, 특수문자 표현
- 유니코드 : 복잡한 언어 표현 위한 표준인코딩. (e.g. UTF-16)
실수 = 가수 * (밑수^지수)
** 일반적인 밑수 : 2, 10, 16
0.1은 double, 0.1f는 float.
true, false
지역변수의 경우 자료형 대신 var키워드를 사용하여 변수 선언+대입 가능
var n = 5; // int
var r = 0.1234; // double
변수는 사용되기 전에 선언되어야 함
int i = 10;
double d = 123.456;
System.out.println(i);
System.out.println(d);
char ch = 'C';
System.out.println(ch);
string s = "abcdefgesdfd";
System.out.println(s);
// 캐스팅
int i = 5;
double d = i; // 묵시적 캐스팅
System.out.println(i); // 5
System.out.println(d); // 5.0
int ii = (int)d; // 명시적 캐스팅 : double을 int로 묵시적으로 캐스팅할 수 없음
System.out.println(ii); // 5
// 메소드를 통해 문자열-숫자간 전환
String s1 = Integer.toString(i);
String s2 = Double.toString(d);
System.out.println(s1); // 5
System.out.println(s2); // 5.0
double dd = Double.parseDouble(s2);
System.out.println(dd+0.123); // 5.123
final 키워드로 상수선언
final int NUM = 123;
16진수 한 자리는 2진수 네 개 비트로 표현
8진수 한 자리는 2진수 세 개 비트로 표현
| 10진수 | 2진수 | 16진수 | 8진수 |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| ★ | |||
| 8 | 1000 | 8 | 10 |
| 9 | 1001 | 9 | 11 |
| ★ | |||
| 10 | 1010 | A | 12 |
| 11 | 1011 | B | 13 |
| 12 | 1100 | C | 14 |
| 13 | 1101 | D | 15 |
| 14 | 1110 | E | 16 |
| 15 | 1111 | F | 17 |
| 16 | 10000 | 10 | 20 |
int decimal = 53;
int binary = 0B110101; // 0B
int octal = 065; // 0
int hexa = 0X35; // 0X
System.out.println(decimal); // 53
System.out.println(binary); // 53
System.out.println(octal); // 53
System.out.println(hexa); // 53
=+ -++ --+= -= *= /= %= <<= >>= >>>= &= != ^=> < >= <= == !=&& || !~ & | ^ << >> >>>>>> : 오른쪽 shift한 뒤 채워지는 왼쪽비트가 무조건 0? : (삼항연산자)if(조건식) {
} else if(조건식) {
} else {
}
switch( <variable> ) {
case 값: // java 7부터 값에 String이 올 수 있음.
문장
break;
case 값:
문장
break;
default:
문장
}
while(조건식) {
}
do {
} while(조건식)
for(int i=0; i<n; i++){
}