static variable applies all the instances
if문에는 불린만 들어가야 한다
if(x=3)하면 에러!
dangling if
onsider the following scenario :
- if(x > 0) // first/outer unmatched if
- if(x < 10) // second/inner unmatched if
- print(A)
- else // matches with first unmatched if
- print(B)
If there are two unmatched if's and only one else to match them, then the else doesn't know which if to match. This leads to an ambiguity called the dangling else problem in java.
Since java does not follow indentation, the else is usually matched with the first unmatched if.
You can solve this problem by using braces or writing exclusive else conditions for each unmatched if.
- if(x>0){
- if(x < 10)
- print(A)
- else
- print(B)
- }
or
- if(x>0) // first/outer if
- if(x < 10) // second/inner if
- print(A)
- else // matched with inner if
- print(B)
- else // matched with outer if
- print(C
double x=1-0.1-0.1-0.1-0.1-0.1을 하면 조금의 에러가 계속 쌓여서 x는 0.5가 아니게 된다!
Math.abs(x-0.5)<1E-14
자바에서 true는 true이다.
조건문을 써서 true/false
boolean x=3>4;
system.out.println(x) -> "false"를 출력한다.
public class Exercise{
public static void main (String[] args){
int x=1;
for (int i=0;i<34;i++){
System.out.println(x);
x*=2;
}
}
}
31번까지만 성공(2^30에 1이 올떄까지만!
integer는 32비트로 되어있다. 어느 컴퓨터에서나 integer는 32비트 so, java could run on any platform
2^31자리에 1이 오게 되면 negative value가 된다. 2의 보수에 의해서!
char c='A';
int x=c;
System.out format("0x%X\n",x); //0x41
capital letter comes first!
A 0x41
a 0x61
"은 designator!
"Hello, world!"에서 First char은 H
How many char? 13
String is not an array of characters
This is a value! a a a !!
String is a class
It hasmany methods
String is not an array of characters
String s = "ABCDE";
System.out.println(s[0]);//에러가 난다!
s[0]='k';//에러가 난다.
instance method
charAt이라는 method 인덱스는 0부터 시작한다.
length라는 method
한글
String s="한글";
s.length()//2 한글이라고 해서 특이한 것은 없다. 모든 언어에 대해서 똑같이 적용된다.
charAt이라는 메쏘드도 한글에서 사용가능하다!
String s="한글";
int x=s.charAt(0)
System.out.format("U%x\n",x); //유니코드에 의해서 uD55C
char c='\uD55C';