-
[Java] μ°μ°μ (μ°μ , λΉνΈ, κ΄κ³, λ Όλ¦¬)Android/Java 2021. 1. 12. 21:08λ°μν
- μ΄ κΈμ "μ¨λΌμΈ μλ° μ€ν°λ λ΄μ©"μ μ 리ν κΈμ λλ€.
μ°μ μ°μ°μ
- μ°μ μ°μ°μλ νΌμ°μ°μ(κΈ°λ³Έ λ°μ΄ν°)μ λν΄ κ°λ¨ν μ°μ μ°μ°μ μννλλ° μ¬μ©ν μ μλ μ°μ°μμ λλ€.
- μ΄ μ°μ°μλ νλ λλ λκ°μ νΌμ°μ°μμ μ μ©ν μ μλ μ°μ°μμ λλ€.
- intν νμ λ³΄λ€ λ²μκ° μμ λ°μ΄ν° μ°μ° μ intνμΌλ‘ λ³ν ν μ°μ°μ ν©λλ€.
- intν νμ λ³΄λ€ ν° λ²μμ λ°μ΄ν°κ° μλ€λ©΄ μ°μ° κ²°κ³Όλ intν λ³΄λ€ ν° νμ μ΄ λ°νλ©λλ€.
public class Main { public static void main(String[] args) { int num1 = 500; int num2 = 200; System.out.println(num1+num2); // + operator -> 700 System.out.println(num1-num2); // - operator -> 300 System.out.println(num1*num2); // * operator -> 100000 System.out.println(num1/num2); // / operator -> 2 System.out.println(num1%num2); // % operator -> 100 num1++; // 501 num2--; // 199 /** byte byte1 = 10; byte byte2 = 20; byte result = byte1+byte2; // μ»΄νμΌ μλ¬ byte1κ³Ό byte2λ intλ‘ λ³ν ν μ°μ° μ€ν **/ int num3 = 10; float float1 = 20.0F; System.out.println(num3+float1); // 30.0 System.out.println(num3-float1); // -10.0 System.out.println(num3*float1); // 200.0 System.out.println(num3/float1); // 0.5 System.out.println(num3%float1); // 10.0 } }
λΉνΈ μ°μ°μ
- λΉνΈ μ°μ°μλ λ°μ΄ν°λ₯Ό λΉνΈ λ¨μλ‘ μ°μ°μ νκΈ° λλ¬Έμ 0κ³Ό 1λ‘ ννμ΄ κ°λ₯ν μ μ νμ λ§ λΉνΈ μ°μ°μ΄ κ°λ₯ν©λλ€
- λΉνΈ μ°μ°μλ κΈ°λ₯μ λ°λΌ λΉνΈ μ΄λ μ°μ°μ, λΉνΈ λ Όλ¦¬μ°μ°μλ‘ κ΅¬λΆν©λλ€.
- μ°Έμ‘°(https://coding-factory.tistory.com/521)
λΉνΈ μ΄λ μ°μ°μ
x << y : μ μ xμ κ° λΉνΈλ₯Ό yλ§νΌ μΌμͺ½μΌλ‘ μ΄λμν΅λλ€.
x >> y : μ μ xμ κ° λΉνΈλ₯Ό yλ§νΌ μ€λ₯Έμͺ½μΌλ‘ μ΄λμν΅λλ€.
x >>> y : μ μ xμ κ° λΉνΈλ₯Ό yλ§νΌ μ€λ₯Έμͺ½μΌλ‘ μ΄λμν΅λλ€.
public class Main { public static void main(String[] args) { int num1 = 2; int num2 = 3; // 00000000 00000000 00000000 00000010 μΌμͺ½μΌλ‘ 3λΉνΈ μ΄λ (μ€λ₯Έμͺ½μ 0μΌλ‘ μ±μ) // 00000000 00000000 00000000 00010000 System.out.println(2<<3); // 16 // 00000000 00000000 00000000 00010000 μ€λ₯Έμͺ½μΌλ‘ 3λΉνΈ μ΄λ (μΌμͺ½μ μ΅μμ λΆνΈλΉνΈμ λ§κ² μ±μ) // 00000000 00000000 00000000 00000010 System.out.println(16>>3); // 2 // 11111111 11111111 11111111 11110000 μ€λ₯Έμͺ½μΌλ‘ 3λΉνΈ μ΄λ // 11111111 11111111 11111111 11111110 System.out.println(-16>>3); // -2 // 11111111 11111111 11111111 11110000 μ€λ₯Έμͺ½μΌλ‘ 3λΉνΈ μ΄λ (μΌμͺ½μ μ΅μμ λΆνΈλΉνΈκ° μλ 무쑰건 0μΌλ‘ μ±μ) // 00011111 11111111 11111111 11111110 System.out.println(-16>>>3); // 536870910 } }
λΉνΈ λ Όλ¦¬ μ°μ°μ
&(AND) : λ λΉνΈ λͺ¨λ 1μΌ κ²½μ°μλ§ μ°μ° κ²°κ³Όκ° 1
|(OR) : λ λΉνΈ μ€ νλλ§ 1μΌ κ²½μ°μλ§ μ°μ° κ²°κ³Όκ° 1
^(XOR) : λ λΉνΈμ€ νλλ 1μ΄κ³ λ€λ₯Έ νλκ° 0μΌ κ²½μ°μλ§ μ°μ°κ²°κ³Όκ° 1
~(NOT) : λΉνΈ λ°μ (보μ)
public class Main { public static void main(String[] args) { int num1 = 15; // 00001111 int num2 = 25; // 00011001 System.out.println(num1&num2); // AND μ°μ°μ : 00001001 (9) System.out.println(num1|num2); // OR μ°μ°μ : 00011111 (31) System.out.println(num1^num2); // XOR μ°μ°μ : 00010110 (22) System.out.println(~num1); // NOT μ°μ°μ : 11110000 (-16) } }
κ΄κ³ μ°μ°μ
μ’νκ³Ό μ°νμ λΉκ΅νμ¬ boolean κ°μ λ°ννλ μ°μ°μλ₯Ό κ΄κ³ μ°μ°μλΌκ³ ν©λλ€.
> : μ’νμ΄ μ°νλ³΄λ€ ν¬λ©΄ true, μλλ©΄ false
< : μ°νμ΄ μ’νλ³΄λ€ ν¬λ©΄ true, μλλ©΄ false
>= : μ’νμ΄ μ°νλ³΄λ€ ν¬κ±°λ κ°μΌλ©΄ true, μλλ©΄ false
<= : μ°νμ΄ μ’νλ³΄λ€ ν¬κ±°λ κ°μΌλ©΄ true, μλλ©΄ false
== : μ’νκ³Ό μ°νμ κ°μ΄ κ°μΌλ©΄ true, μλλ©΄ false
public class Main { public static void main(String[] args) { int num1 = 10; int num2 = 20; if(num1>num2){ System.out.println(num1); // μΆλ ₯ } else{ System.out.println(num2); } if(num1 == num2){ System.out.println("κ°μ΄ κ°μ΅λλ€"); }else{ System.out.println("κ°μ΄ λ€λ¦ λλ€"); // μΆλ ₯ } } }
λ Όλ¦¬ μ°μ°μ
&& : λ νμ΄ λͺ¨λ μ°ΈμΌ κ²½μ°μλ§ μ°Έμ λ°νν©λλ€
|| : λ ν μ€ νλλ§ μ°Έμ΄λλΌλ μ°Έμ λ°νν©λλ€.
! : λ¨ν μ°μ°μλ‘ μ°Έμ κ±°μ§μΌλ‘ κ±°μ§μ μ°ΈμΌλ‘ λ°κΏλλ€.
public class Main { public static void main(String[] args) { boolean check1 = true; boolean check2 = false; if(check1 && check2){ System.out.println("λλ€ μ°Έμ λλ€"); } else{ System.out.println("λμ€ νλλ μ°Έμ΄ μλλλ€"); // μΆλ ₯ } if(check1 || check2){ System.out.println("λμ€ νλλ μ°Έμ λλ€"); // μΆλ ₯ } else{ System.out.println("λλ€ μ°Έμ΄ μλλλ€"); } if(!check2){ System.out.println("μ°Έμ λλ€"); // μΆλ ₯ } else{ System.out.println("κ±°μ§μ λλ€"); } } }
instancof
μ°Έμ‘°λ³μμ μΈμ€ν΄μ€μ μ€μ νμ μ 체ν¬νλ λ° μ¬μ©λλ μ°μ°μμ λλ€.
(μ°Έμ‘°νλ³μ instance of νμ )μ μ΄νμ°μ°μλ‘ μ°μ°κ²°κ³Όλ boolean κ°μ λ°νν©λλ€.
κ²°κ³Όκ°μ΄ Trueμ΄λ©΄, ν΄λΉ νμ μΌλ‘ νλ³νμ΄ κ°λ₯ν©λλ€.
class Parent{ } class Child extends Parent{ } public class Main { public static void main(String[] args) { // ν΄λμ€ μ°Έμ‘°λ³μ Parent parent = new Parent(); Child child = new Child(); System.out.println(parent instanceof Parent); // true System.out.println(child instanceof Parent); // true System.out.println(parent instanceof Child); // false System.out.println(child instanceof Child); // true // λ°°μ΄ μ°Έμ‘°λ³μ int[] arr = new int[5]; System.out.println(arr instanceof int[]); } }
λμ μ°μ°μ
= : μΌμͺ½μ λ³μμ μ€λ₯Έμͺ½ νΌμ°μ°μλ₯Ό λμ ν©λλ€.
+= : μΌμͺ½μ λ³μμ κ°κ³Ό μ€λ₯Έμͺ½ νΌμ°μ°μλ₯Ό λν ν, μΌμͺ½μ λ³μμ λμ ν©λλ€.
-= : μΌμͺ½μ λ³μμ κ°μμ μ€λ₯Έμͺ½ νΌμ°μ°μλ₯Ό λΊ ν, μΌμͺ½μ λ³μμ λμ ν©λλ€.
/= : μΌμͺ½μ λ³μμ κ°μμ μ€λ₯Έμͺ½ νΌμ°μ°μλ₯Ό λλ ν, μΌμͺ½μ λ³μμ λμ ν©λλ€.
κ·Έ λ°μλ %= , &= , |= , ^\ , <<= , >>= , >>>= λ€μν λμ μ°μ°μκ° μμ΅λλ€.
public class Main { public static void main(String[] args) { int num1 = 10; // λμ μ°μ°μ int num2 = 20; num1+=num2; System.out.println(num1); // 30 num1-=num2; System.out.println(num1); // 10 num1*=num2; System.out.println(num1); // 200 num1/=num2; System.out.println(num1); // 10 } }
λλ€μμ΄λ?
- λλ€μμ΄λ "μλ³μ μμ΄ μ€νκ°λ₯ν ν¨μ"λ‘ ν¨μλ₯Ό λ°λ‘ λͺ μνμ¬ λ§λ€μ§ μκ³ μ½λνμ€μ ν¨μλ₯Ό μ¨μ νΈμΆνλ λ°©μμ λλ€.
- Java8 λΆν° ν¨μν νλ‘κ·Έλλ°μ μ§μνκΈ° μν΄ λλ€μμ λμ νμκ³ κ·Έλ‘ μΈν΄ κΈ°μ‘΄μ μ½λ ν¨ν΄μ΄ λ§μ΄ λ¬λΌμ‘μ΅λλ€.
- (맀κ°λ³μ, ... ) -> { μ€νλ¬Έ ..} λ€μκ³Ό κ°μ΄ λλ€μμ μ£Όλ‘ μ¬μ©νκ³ λ§€κ°λ³μμλ λ°λ‘ νμ μ λͺ μνμ§ μμλ λ©λλ€.
- μλ°λ λ 립μ μΈ λ©μλλ§μ μμ±νμ§ λͺ»νκΈ° λλ¬Έμ μ΅λͺ κ°μ²΄λ₯Ό μ΄μ©ν΄μ λ§λλλ€. κ·Έλμ μ΅λͺ ν΄λμ€λΌκ³ λ λΆλ¦ λλ€.
- μ°Έμ‘°(https://coding-factory.tistory.com/265)
@FunctionalInterface interface MyInterface{ void print(String name); } public class Main { public static void main(String[] args) { // Java8 μ΄μ κΈ°μ‘΄μ μ΅λͺ ν΄λμ€ μμ± λ°©μ MyInterface mi = new MyInterface() { @Override public void print(String name) { System.out.println("Java8 μ΄μ μ "+name+"μ λλ€."); } }; mi.print("μ΅λͺ ν΄λμ€"); MyInterface mi2 = (name)->{System.out.println("Java8 μ΄νμ "+name+"μ λλ€");}; mi2.print("λλ€μ"); } }
- @FunctionalInterface λ€μ Annotationμ ν¨μκ° νλλ§ μ‘΄μ¬νλ Interfaceλ₯Ό μλ―Έν©λλ€.
μΌνμ°μ°μ
- if, else ꡬ문μΌλ‘ λΆνμνκ² μ½λκ° κΈΈμ΄μ§λ λ¨μ μ ν΄κ²°νκΈ° μν μ°μ°μμ λλ€.
- (쑰건문) ? μ°Έ : κ±°μ§ λ€μκ³Ό κ°μ΄ μ½λλ₯Ό ꡬννμ¬ μ‘°κ±΄λ¬Έμ΄ μ°ΈμΌ κ²½μ° μΌμͺ½μ μ½λκ°, κ±°μ§μΌ λλ μ€λ₯Έμͺ½μ μ½λκ° μ€νλ©λλ€.
- μΌνμ°μ°μλ₯Ό μ¬μ©νλ©΄ μ½λμ λΌμΈ μλ μ€μ΄λ€μμμ§ λͺ°λΌλ μ»΄νμΌ μλκ° λΉ¨λΌμ§λ κ²μ μλλλ€.
- μΌνμ°μ°μλ₯Ό λ¨λ°νκ² λλ©΄ μ½λμ κ°λ μ±μ΄ λ¨μ΄μ§κΈ° λλ¬Έμ μ£Όμν΄μΌ ν©λλ€.
public class Main { public static void main(String[] args) { int num1 = 20; int num2 = 10; // μΌνμ°μ°μ μ¬μ© μν¨ int num3; if(num1>num2){ num3 = num1; } else{ num3 = num2; } // μΌνμ°μ°μ μ¬μ© int num4 = (num1>num2)?num1 : num2; } }
μ°μ°μ μ°μ μμ
Java13 switch λ³ν
- break μμΉ κ²°κ³Όμ λ°λΌ μ€νκ²°κ³Όκ° λ¬λΌμ§λλ° μ€μ νλ¨μ μ΄λ €μ΄ μ μ ν΄κ²°νκΈ° μν΄ κ°νλ switch ννμμ μ¬μ©ν©λλ€.
- μ¬λ¬ 쑰건μ λ°λΌ ','λ‘ κ΅¬λΆνμ¬ ν λ²μ μ²λ¦¬ν μ μμΌλ©°, κΈ°μ‘΄μ : λμ Java 12λΆν°λ -> λ‘ μ¬μ©ν μ μμ΅λλ€.
- ννμμΌλ‘ λ³κ²½λμκΈ° λλ¬Έμ κ²°κ³Όκ°μ λ°ν λ°λ νμμΌλ‘ λ§λ€ μ μμ΅λλ€.
- yield ν€μλλ₯Ό μ¬μ©νμ¬ λ°νν μ μμ΅λλ€.
public class Main { public static void main(String[] args) { String today = "MON"; switch (today){ case "MON": case "TUE": case "WED": case "THUR": case "FRI": System.out.println(today+" is Weekday"); break; case "SAT": case "SUN": System.out.println(today+" is Weekend"); break; } // κ²°κ³Όκ°μ λ°μ μ μλ€. String day = switch (today){ case "MON","TUE","WED","THUR","FRI"->"Weekday"; case "SAT","SUN"->"Weekend"; default -> throw new IllegalStateException("Unexpected value: " + today); }; System.out.println(); } }
λ°μν'Android > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] Github API μ¬μ©λ² (0) 2021.01.14 [Java] JUnit5μ΄λ? JUnit ν μ€νΈ λ°©λ² (0) 2021.01.13 [Java] μλ° λ°μ΄ν° νμ , λ³μ κ·Έλ¦¬κ³ λ°°μ΄ (0) 2021.01.11 [Java] JVMμ΄λ? μλ° μ½λ μ€ν (0) 2021.01.11 [Java] λμμΈ ν¨ν΄(Decorator ν¨ν΄) (0) 2021.01.08