1. μ°μ°μμ νΌμ°μ°μ
μ°μ°μ: μ°μ°μ μννλ κΈ°νΈ
νΌμ°μ°μ: μ°μ°μμ μ°μ° μν λμ
βλͺ¨λ μ°μ°μλ μ°μ°κ²°κ³Όλ₯Ό λ°ννλ€.β
2. μ°μ°μμ μ’
λ₯
μ’
λ₯ μ°μ°μ μ€λͺ
μ°μ μ°μ°μ + - * / % << >> μ¬μΉ μ°μ°κ³Ό λλ¨Έμ§ μ°μ°(%) λΉκ΅ μ°μ°μ > < β₯ β€ == β ν¬κ³ μμκ³Ό κ°κ³ λ€λ¦μ λΉκ΅ λ
Όλ¦¬ μ°μ°μ && ! & ^ ~ AND μ OR μΌλ‘ 쑰건μ μ°κ²° λμ
μ°μ°μ = μ°λ³μ κ°μ μ’λ³μ μ μ₯ κΈ°ν (type) ?: instanceof νλ³ν μ°μ°μ, μΌν μ°μ°μ, instanceof μ°μ°μ
3. μ°μ°μμ μ°μ μμ
βνλμ μ(expression)μ μ°μ°μκ° λ μ΄μ μμ λ, μ΄λ€ μ°μ°μ λ¨Όμ μνν μ§λ₯Ό μλ κ²°μ νλ κ²β
4. μ°μ°μμ κ²°ν©κ·μΉ
βλμ
κ³Ό λ¨ν μ°μ°μλ₯Ό μ μΈνλ©΄, λͺ¨λ μΌμͺ½ β μ€λ₯Έμͺ½β
μ°μ°μμ μ°μ μμμ κ²°ν©λ²μΉμ βμΈ κ°μ§λ§ κΈ°μ΅νμβ
μ°μ > λΉκ΅ > λ
Όλ¦¬ > λμ
. λμ
μ μ μΌ λ§μ§λ§μ μνλλ€.
λ¨ν(1) > μ΄ν(2) > μΌν(3). λ¨ν μ°μ°μμ μ°μ μμκ° μ΄ν μ°μ°μλ³΄λ€ λλ€.
λ¨ν μ°μ°μμ λμ
μ°μ°μλ₯Ό μ μΈν λͺ¨λ μ°μ°μ μ§νλ°©ν₯μ μΌμͺ½μμ μ€λ₯Έμͺ½μ΄λ€.
5. μ¦κ° μ°μ°μ
μ¦κ° μ°μ°μ(++)
νΌμ°μ°μμ κ°μ 1 μ¦κ°μν¨λ€.
κ°μ μ°μ°μ(--)
νΌμ°μ°μμ κ°μ 1 κ°μμν¨λ€.
νμ
μ€λͺ
μ¬μ© μ μ μν κ°μ΄ μ°Έμ‘°λκΈ° μ μ μ¦κ°μν¨λ€. j = ++i;
νμν κ°μ΄ μ°Έμ‘°λ νμ μ¦κ°μν¨λ€. j = i++;
// μ μν
j = ++ i;
// μλμ κ°λ€
++ i; // μ¦κ° νμ
j = i; // μ°Έμ‘°νμ¬ λμ
// μ€ν μ΄ν
i = i
j = i + 1
// νμν
j = i ++ ;
// μλμ κ°λ€
j = i; // μ°Έμ‘°νμ¬ λμ
νμ
i ++ ; // μ¦κ°
// μ€ν μ΄ν
j = i
i = i + 1
6. λΆνΈ μ°μ°μ
public class Ex3_4 {
public static void main ( String [] args ) {
int i = - 10 ;
i = + i;
System.out. println (i); // -10
i = - 10 ;
i = - i;
System.out. println (i); // 10
}
}
β-β
λ νΌμ°μ°μμ λΆνΈλ₯Ό λ°λλ‘ λ³κ²½
β+β
λ μλ¬΄λ° μΌλ νμ§ μλλ€. (μ€μ μ¬μ© X)
7. νλ³ν μ°μ°μ
νλ³νμ΄λ,
λ³μ λλ μμμ νμ
μ λ€λ₯Έ νμ
μΌλ‘ λ³ννλ κ²
(νμ
)νΌμ°μ°μ
double d = 85.4 ;
int score = ( int )d;
λ³ν μμ κ²°κ³Ό int β char (char)65
'A'
char β int (int)'A'
65
float β int (int)1.6f
1
int β float (float)10
10.0f
8. μλ νλ³ν
μλ νλ³νμ΄λ,
μ»΄νμΌλ¬κ° μλμΌλ‘ νλ³ν ν΄μ£Όλ κ²
float f = 1234 ; // intνμ
μ κ°μ floatνμ
μ λ³μμ μ μ₯
float f = ( float ) 1234 ; // μλ νλ³ν
int i = 3.14f ; // μλ¬
// floatμ λ²μκ° intλ³΄λ€ ν¬κΈ° λλ¬Έμ κ°μμ€μ΄ λ°μν μ μμ
int i = ( int ) 3.14f ; // μλ νλ³νμ κ°λ₯
βκΈ°μ‘΄μ κ°μ μ΅λν 보쑴ν μ μλ νμ
μΌλ‘ μλ νλ³νλλ€.β
byte b = 100 ; // OK. byteμ λ²μ(-128 ~ 127)μ κ°μ λμ
(리ν°λ΄μ΄κΈ° λλ¬Έμ κ°λ₯)
byte b = ( byte ) 100 ; // OK. byteλ‘ νλ³ννμ¬ λμ
int i = 100 ;
byte b = i; // μλ¬. intλ³μμ μ΄λ€ κ°μ΄ λ€μ΄μλμ§ νμ λΆκ°
byte b = ( byte )i; // OK. byteλ‘ νλ³ννμ¬ λμ
byte b = 1000 ; // μλ¬. byteμ λ²μλ₯Ό λ²μ΄λ κ°μ λμ
byte b = ( byte ) 1000 ; // OK. κ·Έλ¬λ κ° μμ€μ΄ λ°μν΄μ bμλ -24κ° μ μ₯λ¨
9. μ¬μΉ μ°μ°μ
// int μ int μ°μ°μ int λ₯Ό λ°ν
10 / 4 = 2
// int μ float μ°μ°μ float λ₯Ό λ°ν
10 / 4.000000 = 2.500000
10. μ°μ λ³ν
μ°μ λ³νμ΄λ,
βμ°μ° μ μ νΌμ°μ°μμ νμ
μ μΌμΉμν€λ κ²β
λ νΌμ°μ°μμ νμ
μ κ°κ² μΌμΉμν¨λ€. (λ³΄λ€ ν° νμ
μΌλ‘ μΌμΉ)
long + int -> long
float + int -> float
double + float -> double
νΌμ°μ°μμ νμ
μ΄ intλ³΄λ€ μμ νμ
μ΄λ©΄ intλ‘ λ³νλλ€.
byte + short -> int
char + short -> int
Ex3_9
public class Ex3_9 {
public static void main ( String [] args ) {
int a = 1_000_000 ;
int b = 2_000_000 ;
long c = a * b; // a * b λ int νμΌλ‘ κ³μ°λκΈ° λλ¬Έμ μ€λ²νλ‘μ° λ°μ
System.out. println (c); // -1,454,759,936
c = ( long )a * b; // μ€λ²νλ‘μ°λ₯Ό λ°©μ§νκΈ° μν΄ a λ b λ₯Ό νλ³ν ν λ€ μ°μ°
System.out. println (c); // 2,000,000,000,000
}
}
11. λ°μ¬λ¦Ό - Math.round()
μ€μλ₯Ό μμμ 첫 μ§Έμ리μμ λ°μ¬λ¦Όν μ μλ₯Ό λ°ν
long result = Math. round ( 4.52 ); // resultμ 5κ° μ μ₯λλ€.
Ex3_11
public class Ex3_11 {
public static void main ( String [] args ) {
double pi = 3.141592 ;
double shortPi = Math. round (pi * 1000 ) / 1000.0 ;
-> Math. round ( 3.141592 * 1000 ) / 1000.0
-> Math. round ( 3141.592 ) / 1000.0
-> 3142 / 1000.0
-> 3.142
System.out. println (shortPi); // 3.142
}
}
12. λλ¨Έμ§ μ°μ°μ
μ€λ₯Έμͺ½ νΌμ°μ°μλ‘ λλκ³ λ¨μ λλ¨Έμ§λ₯Ό λ°ν
λλλ νΌμ°μ°μλ 0μ΄ μλ μ μλ§ νμ©(λΆνΈλ 무μλ¨)
10 % 8 -> 2
10 % - 8 -> 2
13. == μ°μ°μμ equals()μ μ°¨μ΄
== μ°μ°μ
νλ± μ°μ°μ(Operator) μ΄λ€.
λ°μμ΄λ‘ != κ° μ‘΄μ¬νλ€.
μ°Έμ‘° λΉκ΅(Reference Comparison) νΉμ μ£Όμ λΉκ΅(Address Comparison)
λ κ°μ²΄κ° κ°μ λ©λͺ¨λ¦¬ 곡κ°μ κ°λ¦¬ν€λμ§ νμΈνλ€.
λͺ¨λ κΈ°λ³Έ μ ν(Primitive Types)μ μ μ©ν μ μλ€.
byte, short, char, int, float, double boolean
μ°Έμ‘° μ ν(Reference Types)μ κ²½μ° μ£Όμκ°μ λΉκ΅νλ€.
μ¬μ€ Primitive μμ Constant Pool μ μλ νΉμ μμλ₯Ό μ°Έμ‘°νκΈ° λλ¬Έμ μ£Όμκ°μ λΉκ΅νλ€κ³ λ³Ό μ μλ€.
κ°μ²΄μλ μ μ©μ΄ κ°λ₯νμ§λ§ κ°μ λ΄μ©μ κ°μ§ μλ‘ λ€λ₯Έ κ°μ²΄μ κ²½μ° false λ₯Ό λ°ννλ€.
κ°μ λ΄μ©μ κ°κ³ μλλΌλ μ£Όμκ°μ΄ λ€λ₯΄κΈ° λλ¬Έ
Boolean Type μΌλ‘ λ°ννλ€.
equals()
κ°μ²΄ λΉκ΅ λ©μλ(Method) μ΄λ€.
λ΄μ© λΉκ΅(Content Comparison)
λ κ°μ²΄μ κ°μ΄ κ°μμ§ νμΈνλ€.
λ¬Έμμ΄μ λ°μ΄ν°/λ΄μ©μ κΈ°λ°μΌλ‘ λΉκ΅νλ€.
κΈ°λ³Έ μ ν(Primitive Types)μ μ μ©ν μ μλ€.
Boolean Type μΌλ‘ λ°ννλ€.
μμ
public class Test {
public static void main ( String [] args ) {
Thread t1 = new Thread ();
Thread t2 = new Thread (); // μλ‘μ΄ κ°μ²΄ μμ±. μ¦, t1κ³Ό λ€λ₯Έ κ°μ²΄.
Thread t3 = t1; // κ°μ λμμ κ°λ¦¬ν¨λ€.
String s1 = new String ( "WORLD" );
String s2 = new String ( "WORLD" );
System.out. println (t1 == t3); // true
System.out. println (t1 == t2); // false(μλ‘ λ€λ₯Έ κ°μ²΄μ΄λ―λ‘ λ³λμ μ£Όμλ₯Ό κ°λλ€.)
System.out. println (t1. equals (t2)); // false
System.out. println (s1. equals (s2)); // true(λμΌν λ΄μ©μ κ°λλ€.)
}
}
15. λ
Όλ¦¬ μ°μ°μ
쑰건μμ μ°κ²°ν λ μ¬μ©νλ μ°μ°μ
// iλ 2μ λ°°μ λλ 3μ λ°°μμ§λ§ 6μ λ°°μλ μλλ€.
// && μ μ°μ μμκ° || λ³΄λ€ λκΈ° λλ¬Έμ κ΄νΈλ₯Ό μ μ ν νμ©ν΄μΌν¨
( i % 2 == 0 || i % 3 == 0 ) && i % 6 != 0
16. λ
Όλ¦¬ λΆμ μ°μ°μ
tureλ₯Ό false λ‘, falseλ trueλ‘ λ³κ²½
boolean b = true ;
!! b -> !! true -> ! false -> true
17. 쑰건 μ°μ°μ
쑰건μμ κ²°κ³Όμ λ°λΌ μ°μ°κ²°κ³Όλ₯Ό λ¬λ¦¬νλ€.
쑰건μ ? μ1 : μ2
result = (x > y) ? x : y;
// x κ° y λ³΄λ€ ν¬λ€λ©΄ result = x
// y κ° x λ³΄λ€ ν¬λ€λ©΄ result = y
18. λμ
μ°μ°μ
μ€λ₯Έμͺ½ νΌμ°μ°μλ₯Ό μΌμͺ½ νΌμ°μ°μμ μ μ₯ ν μ μ₯λ κ°μ λ°ν
System.out. println (x = 3 );
System.out. println ( 3 );
lvalue
- λμ
μ°μ°μμ μΌμͺ½ νΌμ°μ°μ
rvalue
- λμ
μ°μ°μμ μ€λ₯Έμͺ½ νΌμ°μ°μ
int i = 0 ;
3 = i + 3 ; // μλ¬. lvalueκ° μ μ₯곡κ°μ΄ μλ
i + 3 = i; // μλ¬. lvalueμ μ°μ°κ²°κ³Όκ° 리ν°λ΄
final int MAX = 3 ; // λ³μ μμ ν€μλ finalμ λΆμ΄λ©΄ μμ
MAX = 10 ; // μλ¬. μμμ μλ‘μ΄ κ°μ μ μ₯ν μ μμ
19. λ³΅ν© λμ
μ°μ°μ
λμ
μ°μ°μμ λ€λ₯Έ μ°μ°μλ₯Ό νλλ‘ μΆμ½
i += 3 <-> i = i + 3 ;
// μ£Όμ. μ€λ₯Έμͺ½ νΌμ°μ°μκ° λκ° μ΄μμΈ κ²½μ° κ΄νΈλ₯Ό νμ©ν΄μΌν¨
i *= ( 10 + j) <-> i = i * ( 10 + j);