java
-
[Java] μλ° μ°λ λμ λκΈ°νAndroid 2021. 2. 7. 16:57
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" 곡λΆνμ¬ μμ±ν κΈμ λλ€. μ°λ λ λκΈ°νλ? λ©ν° μ°λ λ νλ‘κ·Έλλ°μμ λκΈ°ν μμ μ΄ νμμ λλ€. μ°λ λ λκΈ°νλ μ¬λ¬ μ°λ λκ° λμΌν 리μμ€λ₯Ό 곡μ νμ¬ μ¬μ©νκ² λλ©΄ μλ‘μ κ²°κ³Όμ μν₯μ μ£ΌκΈ° λλ¬Έμ λ°©μ§νλ κΈ°λ²μ λλ€. μ°λ λ λκΈ°νλ₯Ό νκΈ° μν΄μλ μκ³μμ(critical section)κ³Ό λ½(lock)μ μ¬μ©ν©λλ€. μκ³μμμΌλ‘ μ€μ ν ꡬμμ λμμ 리μμ€λ₯Ό μ¬μ©ν μ μλ ꡬμμ΄κ³ , λ½μ νλν μ°λ λμ λν΄μλ§ λ¦¬μμ€λ₯Ό μ¬μ©νλλ‘ νλ λ°©μμ λλ€. synchronizedλ₯Ό μ΄μ©ν λκΈ°ν μλ°μμλ synchronized ν€μλλ₯Ό μ¬μ©νμ¬ μκ³μμμ μ§μ νμ¬ λμμ 곡μ μμμ μ°¨μ§νμ§ μλλ‘ κ°μ ν©λλ€. synchronizedλ₯Ό μ¬μ©νλ λ°©λ²μ λ©μλ μ체μ μ μ©..
-
[Java] μλ° μ°λ λ μν, μ°μ μμ(State, Priority)Android/Java 2021. 2. 5. 02:19
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" μ μ°Έμ¬νμ¬ κ³΅λΆν κΈμ λλ€. λ©ν° μ°λ λ λ©ν° μ°λ λ νλ‘κ·Έλλ°μ΄λ νλμ μμ©νλ‘κ·Έλ¨μμ λμμ μ¬λ¬ μ²λ¦¬λ₯Ό νκΈ° μν΄ μ°λ λλ₯Ό μμ±νμ¬ μ΄μνλ νλ‘κ·Έλλ°μ λ§ν©λλ€. λ©ν° μ°λ λ νλ‘κ·Έλλ°μ νΉμ§μ λμμ±κ³Ό λ³λ ¬μ±μ΄ μ‘΄μ¬ν©λλ€. νλμ μ½μ΄μμ μ¬λ¬ κ°μ μ°λ λλ₯Ό μ΄μνλ κ²μ λμμ±μΌλ‘ λΉ λ₯Έ μλλ‘ μ°λ λλ₯Ό λ²κ°μ κ°λ©΄μ μ€ννλ κ²μ λλ€. λ³λ ¬μ±μ λ€μμ μ½μ΄μμ κ° μ½μ΄μ μ°λ λλ₯Ό μμ±νμ¬ μ€νμν€λ κ²μ λλ€. μλ° μ°λ λ μν (Thread State) μλ° λ©ν° μ°λ λ νλ‘κ·Έλλ°μ νλ©΄ λκΈ°ν/λΉλκΈ°ν λΏλ§ μλλΌ μ°λ λ μνλ₯Ό μ§μ μ μ΄ν κ²½μ°λ μκΉλλ€. μ°λ λ μ μ΄νκΈ° μ μ μ°λ λμ μνλ‘ μμμΌ νλλ° getState() λ©μλλ₯Ό ν΅ν΄ μ μ μμ΅λ..
-
[Java] μλ° μ°λ λ μμ±(Thread, Runnable)Android/Java 2021. 2. 2. 14:52
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" 곡λΆν λ΄μ©μ μ 리νμ¬ μ΄ κΈμ λλ€. Process vs Thread μλ°μ μ°λ λλ₯Ό μ€λͺ νκΈ° μ΄μ μ νλ‘μΈμ€μ μ°λ λμ μ°¨μ΄μ λν΄ κ°λ΅νκ²λλ§ μ νμκ° μμ΅λλ€. Process νλ‘μΈμ€μ μ¬μ μ μ μλ‘λ μ€ν μ€μΈ νλ‘κ·Έλ¨μ λ»νκ² λ©λλ€. μλμ°μμ μ μ₯μ₯μΉμ μ μ₯λ μνλ₯Ό νλ‘κ·Έλ¨μ΄λΌκ³ νκ³ λλΈν΄λ¦μ ν΅ν΄ νλ‘κ·Έλ¨μ΄ λ©λͺ¨λ¦¬ 곡κ°μ μ¬λΌμ μ€νμ€μΈ νλ‘κ·Έλ¨ μΈμ€ν΄μ€λ₯Ό νλ‘μΈμ€λΌκ³ ν©λλ€. Thread ν νλ‘μΈμ€ λ΄μμ λμλλ μ€νλ¨μλ₯Ό λ»νκ² λ©λλ€. ν¬λ‘¬ λΈλΌμ°μ λΌλ νλ‘μΈμ€μμ μ νλΈμ μ μνμ¬ λμμμ μμ²ν λ μ νλΈ λ°μ΄ν°λ₯Ό λ€μ΄λ‘λ λ°μΌλ©΄μ λμμμ΄ μ€νλλ μμ μ΄ λμμ μ΄λ£¨μ΄μ§λ κ²λ μ°λ λλ₯Ό ν΅ν΄ κ°λ₯νκ² λ©λλ€. Thread μμ± μλ°μμ T..
-
[Java] μλ° ν΄λμ€ μμ, λ©μλ μ€λ²λΌμ΄λ©Android/Java 2021. 1. 18. 21:53
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ" λ΄μ©μ μ 리νμ¬ μμ±ν κΈμ λλ€. μλ° μμ μμμ΄λ μΊ‘μν, μΆμνμ κ°μ΄ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμμ μ£Όμν νΉμ§ μ€ νλμ λλ€. ν΄λμ€ μμμ κΈ°μ‘΄μ ν΄λμ€μ μμ±κ³Ό κΈ°λ₯μ μΆκ°νκ±°λ μ¬μ μνμ¬ μλ‘μ΄ ν΄λμ€λ₯Ό μ μνλ κ²μ μλ―Έν©λλ€. μμμ μ΄μ©νλ©΄ κΈ°μ‘΄μ ν΄λμ€μ λ³μμ λ©μλλ₯Ό λͺ¨λ μ¬μ©κ°λ₯νκ³ νμμ λ°λΌ λ©μλλ₯Ό 컀μ€ν°λ§μ΄μ§ ν μ μλ ν΄λμ€λ₯Ό μμ±ν μ μμ΅λλ€. μλ° μμμ μ₯μ μΌλ‘ μ€λ³΅λ μ½λλ₯Ό μ€μΌ μ μκ³ , μ μ§ λ³΄μμ νΈλ¦¬μ±κ³Ό λ€νμ±μ ꡬνν μ μμ΅λλ€. λ€λ₯Έ μΈμ΄μ λ€λ₯΄κ² μλ°λ λ€μ€ μμμ΄ λΆκ°λ₯νλλ° μ΄λ₯Ό 보μνκΈ° μν μΈν°νμ΄μ€κ° μμ΅λλ€. public class ParentClass { char Pch; public void PCprin..
-
[Java] 쑰건문(if, else, else if), λ°λ³΅λ¬Έ(for, while)Android/Java 2021. 1. 15. 23:09
μ΄ κΈμ "μλ° μ¨λΌμΈ μ€ν°λ λ΄μ©"μ 곡λΆνμ¬ μμ±ν κΈμ λλ€. 쑰건문 if, else if, else ν΄λΉ 쑰건문μ μ΄μ©νμ¬ μ‘°κ±΄μ λ§λ μνλ λ‘μ§μ μ€νμν΅λλ€. public class Main { public static void main(String[] args) { int num = 2; if(num % 2 == 0){ System.out.println(num+"μ μ§μμ λλ€"); }else{ System.out.println(num+"μ νμμ λλ€"); } if(num % 3 == 0){ System.out.println(num+"μ 3μΌλ‘ λλλ©΄ λλ¨Έμ§λ 0μ λλ€"); }else if(num % 3 == 1){ System.out.println(num+"μ 3μΌλ‘ λλλ©΄ λλ¨Έμ§λ 1μ λλ€..
-
[Data Structure] Java ν(Queue) μ¬μ©Data Structure 2021. 1. 15. 14:15
μ΄ κΈμ "μ¨λΌμΈ μλ° μ€ν°λ λ΄μ©"μ μ 리ν κΈμ λλ€. Queueλ? νλ μΆκ΅¬μ μ κ΅¬κ° λͺ λ°±ν μ‘΄μ¬νμ¬ λ°μ΄ν°λ₯Ό λ΄λ λ°©μμ μλ£κ΅¬μ‘°μ λλ€. νμ μ£Όμ νΉμ§μ First In, First Out (FIFO) ꡬ쑰λ₯Ό κ°μ΅λλ€. λ°°μ΄λ‘ ν ꡬν public class Queue { public class Queue { final int MAX_SIZE = 100; int[] arr; int size; public Queue() { arr = new int[MAX_SIZE]; size = 0; } void push(int data){ arr[size++] = data; } int front(){ return arr[0]; } int pop(){ if(size == 0){ return 0; } else{ f..
-
[Data Structure] Java μ€ν(Stack) μ¬μ©Data Structure 2021. 1. 15. 13:53
μ΄ κΈμ "μ¨λΌμΈ μλ° μ€ν°λ λ΄μ©"μ μ 리ν κΈμ λλ€. Stackμ΄λ? μ€νμ μ± μ μλ κ²μ²λΌ λ°μ΄ν°λ₯Ό λ΄μ μ μλ μλ£κ΅¬μ‘° μ λλ€. μ€νμ κ°μ₯ ν° νΉμ§μ First In Last Out (FILO) ꡬ쑰λ₯Ό κ°μ§κ³ μμ΅λλ€. λ°°μ΄λ‘ μ€ν ꡬν public class Stack { final int MAX_SIZE = 100; int arr[]; int size; public Stack(){ arr = new int[MAX_SIZE]; size = 0; } public void push(int data){ if(size0){ size--; return 1; } return 0; } public int top(){ if(size>0){ return arr[size-1]; } return -1; } p..
-
[Data Structure] Java λ§ν¬λ 리μ€νΈ(LinkedList) ꡬνData Structure 2021. 1. 15. 10:55
μ΄ κΈμ "μ¨λΌμΈ μλ° μ€ν°λ λ΄μ©"μ μ 리ν κΈμ λλ€. LinkedListλ? λ§ν¬λ 리μ€νΈλ₯Ό λ Έλμ λ Έλλ₯Ό μ°κ²°νμ¬ λ°μ΄ν°λ₯Ό λ΄λ λ°©μμΈ μλ£κ΅¬μ‘°μ λλ€. λ§ν¬λ 리μ€νΈμ λ©€λ²λ³μλ‘ λ°μ΄ν°μ ν¬μΈν°κ° μ‘΄μ¬νμ¬ ν¬μΈν°λ‘ λ€μ λ Έλλ₯Ό κ°λ¦¬ν€λ λ°©μμ λλ€. λ§ν¬λ 리μ€νΈμ λ°°μ΄κ³Όμ μ°¨μ΄μ μ λͺ λ°±ν μ‘΄μ¬ν©λλ€. λ°°μ΄μ ν μ€λ‘ λμ΄λ λ©λͺ¨λ¦¬ 곡κ°μ λ°μ΄ν°λ₯Ό λ΄λ μλ£κ΅¬μ‘°λ‘ μΈλ±μ€λ‘ λ°μ΄ν°μ μ κ·Ό ν μ μμ΅λλ€. νμ§λ§ λ°°μ΄μ μΆκ°, μμ κ° μ©μ΄νμ§ μμ΅λλ€. λ°λ©΄, λ§ν¬λ 리μ€νΈλ λ©λͺ¨λ¦¬ 곡κ°κ³Ό μκ΄μμ΄ νλμ λ ΈλλΌλ¦¬ μ°κ²°νλ€ λ³΄λ λ©λͺ¨λ¦¬ μ¬μ© μΈ‘λ©΄μμ ν¨μ¨μ μ λλ€. μΆκ°, μμ λ μ©μ΄νμ§λ§ μΈλ±μ€κ° μμ΄ νμνκΈ°μλ μ ν©νμ§ μμ΅λλ€. LinkedList ꡬν μλ°μμ μΈμ€ν΄μ€ μ λ¬μ λ νΌλ°μ€μ λλ€ μ°Έμ‘°..