on my way
CS μ€ν°λ 02-1 μ»΄ν¨ν° μΈμ΄: Java λ³Έλ¬Έ
https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/main
Part 2. Language
π Java Link
- JVM μ λν΄μ / GC μ μ리
- Collection
- Annotation
- Generic
- final
- Overriding vs Overloading
- Access Modifier
- Wrapper class
- Multi-Thread νκ²½μμμ κ°λ°
μΆκ° μλ£
1. JVMμ΄λ 무μμΈκ°μ? / JVMμ μν μ 무μμΈκ°μ?
λ΅λ³:
JVM(Java Virtual Machine)μ μλ° νλ‘κ·Έλ¨μ΄ μ΄μ체μ μ μκ΄μμ΄ μ€νλ μ μλλ‘ λμμ£Όλ κ°μ λ¨Έμ μ
λλ€. μλ° μ½λλ λ°μ΄νΈμ½λλ‘ λ³νλμ΄ JVMμμ μ€νλλ©°, μ΄λ₯Ό ν΅ν΄ μλ° νλ‘κ·Έλ¨μ΄ μ΄μ체μ μ λ
립μ μΌλ‘ λμν μ μμ΅λλ€. JVMμ νλ‘κ·Έλ¨ μ€ν μ€μ λ©λͺ¨λ¦¬ κ΄λ¦¬, Garbage Collection(GC), μ€λ λ κ΄λ¦¬ λ±μ μνν©λλ€.
2. Garbage Collection(GC)μ΄λ 무μμΈκ°μ?
λ΅λ³:
Garbage Collectionμ JVMμ΄ μλμΌλ‘ μ¬μ©νμ§ μλ κ°μ²΄λ₯Ό λ©λͺ¨λ¦¬μμ ν΄μ νλ κ³Όμ μ
λλ€. κ°μ²΄κ° λ μ΄μ μ°Έμ‘°λμ§ μμΌλ©΄, GCκ° ν΄λΉ κ°μ²΄λ₯Ό μ κ±°νμ¬ λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν©λλ€. GCλ μ£Όλ‘ Mark-and-Sweep μκ³ λ¦¬μ¦μ μ¬μ©νμ¬, μ°Έμ‘°λμ§ μλ κ°μ²΄λ₯Ό μ°Ύμλ΄μ΄ μ κ±°ν©λλ€.
3. Java Collectionμ΄λ 무μμΈκ°μ?
λ΅λ³:
Java Collectionμ λ°μ΄ν°μ μ§ν©μ κ΄λ¦¬νλ νλ μμν¬λ‘, μ¬λ¬ ννμ λ°μ΄ν°λ₯Ό μ μ₯νκ³ μ‘°μν μ μλ λ€μν μλ£κ΅¬μ‘°λ₯Ό μ 곡ν©λλ€. λνμ μΈ μ»¬λ μ
μΈν°νμ΄μ€λ‘λ List, Set, Queue, Map λ±μ΄ μμΌλ©°, κ°κ°μ μΈν°νμ΄μ€λ ArrayList, HashSet, LinkedList, HashMapκ³Ό κ°μ λ€μν ꡬν체λ₯Ό κ°μ΅λλ€.
컬λ μ (Collection) vs λ°°μ΄(Array)
- λ°°μ΄(Array):
- κ³ μ λ ν¬κΈ°λ₯Ό κ°λ λ°μ΄ν° ꡬ쑰μ λλ€. λ°°μ΄μ μ μΈ μμ μ ν¬κΈ°κ° μ ν΄μ§λ©°, μ΄νμ ν¬κΈ°λ₯Ό λ³κ²½ν μ μμ΅λλ€.
- λ°°μ΄μ μμλ λμΌν νμ μ΄μ΄μΌ νλ©°, μΈλ±μ€λ₯Ό ν΅ν΄ μ κ·Όν©λλ€.
- λ°°μ΄μ μ£Όλ‘ μ±λ₯μ΄ μ€μν μν©μμ μ¬μ©λλ©°, μ΄κΈ° λ©λͺ¨λ¦¬ ν λΉμ΄ μ΄λ£¨μ΄μ§λλ€.
int[] arr = new int[10]; // λ°°μ΄μ ν¬κΈ°κ° κ³ μ λ¨
- 컬λ μ
(Collection):
- ν¬κΈ°κ° κ°λ³μ μ΄λ©°, νμν λ§νΌ λμ μΌλ‘ μμλ₯Ό μΆκ°νκ±°λ μ κ±°ν μ μμ΅λλ€.
List
,Set
,Map
κ³Ό κ°μ λ€μν ννμ 컬λ μ μ μ 곡νλ©°, λ€μν λ°μ΄ν° ꡬ쑰μ μκ³ λ¦¬μ¦μ λ΄μ₯νκ³ μμ΅λλ€.- 컬λ μ μ λ€μν μλ£νμ λ΄μ μ μκ³ , μ±λ₯ μ΅μ νμ λ€μν μ νΈλ¦¬ν° λ©μλλ₯Ό μ 곡νμ¬ νΈλ¦¬ν¨μ μ 곡ν©λλ€.
List<Integer> list = new ArrayList<>(); list.add(1); // λμ μΌλ‘ ν¬κΈ° μ¦κ°
- μ°¨μ΄μ :
- λ°°μ΄μ κ³ μ ν¬κΈ°μ΄κ³ μμμ λν μ§μ μ μΈ μΈλ±μ€ μ κ·Όμ΄ κ°λ₯νλ©°, μ±λ₯μ΄ μ€μν λ μ¬μ©λ©λλ€.
- 컬λ μ μ λμ μΌλ‘ ν¬κΈ°λ₯Ό μ‘°μ ν μ μμΌλ©°, λ€μν μλ£κ΅¬μ‘°μ μ νΈλ¦¬ν° λ©μλλ₯Ό μ 곡νμ¬ λ μ μ°ν©λλ€.
4. Annotationμ΄λ 무μμΈκ°μ?
λ΅λ³:
Annotationμ μ½λμ λ©νλ°μ΄ν°λ₯Ό μΆκ°νλ λ°©μμΌλ‘, μ»΄νμΌλ¬μκ² νΉμ μ 보λ₯Ό μ 곡νκ±°λ λ°νμ μμ μ νΉμ λμμ νλλ‘ λμμ€λλ€. μλ₯Ό λ€μ΄, @Override
λ λ©μλκ° λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ¬μ μνλ κ²μμ λͺ
μνλ©°, @Deprecated
λ λ μ΄μ μ¬μ©λμ§ μλ λ©μλλ₯Ό νμν©λλ€. μ λν
μ΄μ
μ μ£Όλ‘ λ¦¬νλ μ
(Reflection)κ³Ό ν¨κ» μ¬μ©λ©λλ€.
Annotationμ΄λ?
- μ λν μ΄μ (Annotation)μ μλ°μμ λ©νλ°μ΄ν°λ₯Ό μ 곡νκΈ° μν λꡬμ λλ€.
- μ£Όλ‘ μ»΄νμΌλ¬ μ§μλ¬Έ, λ°νμμμ νΉμ μ²λ¦¬λ₯Ό νΈλ¦¬κ±°νκ±°λ μ½λμ ꡬ쑰λ₯Ό λͺ νν νκΈ° μν΄ μ¬μ©λ©λλ€.
- μ λν
μ΄μ
μ체λ‘λ νΉλ³ν λμμ νμ§ μμ§λ§, μ΄λ₯Ό ν΄μνλ ν΄μ΄λ λΌμ΄λΈλ¬λ¦¬κ° μμ΄μΌ ν©λλ€.
@Override public void myMethod() { // λ©μλ μ€λ²λΌμ΄λ© }
- μμ:
- μ£Όμ μ λν
μ΄μ
:
@Override
: λ©μλ μ€λ²λΌμ΄λ©μ λͺ μ@Deprecated
: μ¬μ©μ΄ κΆμ₯λμ§ μλ λ©μλλ ν΄λμ€μ λΆμ@SuppressWarnings
: νΉμ κ²½κ³ λ₯Ό 무μ
5. Genericμ΄λ 무μμΈκ°μ?
λ΅λ³:
Genericμ ν΄λμ€λ λ©μλμμ μ¬μ©ν λ°μ΄ν° νμ
μ 미리 μ§μ νμ§ μκ³ , νμ
맀κ°λ³μλ₯Ό μ¬μ©νμ¬ μ μ°ν μ½λλ₯Ό μμ±ν μ μκ² ν΄μ£Όλ μλ°μ κΈ°λ₯μ
λλ€. μ λ€λ¦μ μ¬μ©νλ©΄ μ»΄νμΌ μ νμ
κ²μ¬λ₯Ό ν΅ν΄ μ½λ μμ μ±μ λμ΄κ³ , λΆνμν νλ³νμ μ€μΌ μ μμ΅λλ€. μλ₯Ό λ€μ΄, List<String>
μ λ¬Έμμ΄λ§ λ΄μ μ μλ 리μ€νΈλ‘, μλͺ»λ νμ
μ λ°μ΄ν°λ₯Ό λ£μΌλ € νλ©΄ μ»΄νμΌ μ€λ₯κ° λ°μν©λλ€.
6. final ν€μλλ 무μμΈκ°μ?
λ΅λ³:**final**
μ λ³μ, λ©μλ, ν΄λμ€μ μ¬μ©λμ΄ μμ ν μ μμμ λνλ
λλ€.
- final λ³μ: κ°μ ν λ²λ§ ν λΉν μ μμΌλ©°, μ΄ν λ³κ²½ν μ μμ΅λλ€.
- final λ©μλ: νμ ν΄λμ€μμ μ¬μ μ(Overriding)ν μ μμ΅λλ€.
- final ν΄λμ€: μμν μ μλ ν΄λμ€κ° λ©λλ€.
7. Overridingκ³Ό Overloadingμ μ°¨μ΄μ μ 무μμΈκ°μ?
λ΅λ³:
- Overridingμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ ν΄λμ€μμ μ¬μ μνλ κ²μ μλ―Έν©λλ€. λ©μλμ μ΄λ¦, 맀κ°λ³μ, λ°ν νμ μ΄ λΆλͺ¨ ν΄λμ€μ λμΌν΄μΌ ν©λλ€.
- Overloadingμ κ°μ μ΄λ¦μ λ©μλλ₯Ό 맀κ°λ³μμ νμ λλ κ°μλ₯Ό λ€λ₯΄κ² νμ¬ μ¬λ¬ λ² μ μνλ κ²μ μλ―Έν©λλ€. μ΄λ μ»΄νμΌ μμ μ κ²°μ λ©λλ€.
Overridingκ³Ό Overloading 곡ν΅μ (λ€νμ±)
- 곡ν΅μ :
- λ λ€ λ€νμ±μ μ§μνλ λ°©μμ λλ€. λ€νμ±μ΄λ, λμΌν μ΄λ¦μ λ©μλκ° μ¬λ¬ ννλ‘ λμν μ μλ λ₯λ ₯μ μλ―Έν©λλ€.
- Overloadingκ³Ό Overridingμ μ¬μ©νλ©΄ μ½λμ μ¬μ¬μ©μ±κ³Ό κ°λ μ±μ λμ΄κ³ , λ€νμ±μ ν΅ν΄ λ μ μ°ν μ€κ³λ₯Ό ν μ μμ΅λλ€.
- Overriding:
- λΆλͺ¨ ν΄λμ€μμ μ μλ λ©μλλ₯Ό μμ ν΄λμ€μμ μ¬μ μνλ λ°©μμ λλ€.
- λ°νμ μ λμμ΄ κ²°μ λλ©°, μμκ³Ό κ΄λ ¨λ λ€νμ±μ ꡬνν©λλ€.
- Overloading:
- κ°μ μ΄λ¦μ λ©μλλ₯Ό μ¬λ¬ κ° μ μνλ, νλΌλ―Έν°μ νμ μ΄λ κ°μκ° λ€λ₯Έ κ²½μ°μ λλ€.
- μ»΄νμΌ μμ μ μ΄λ λ©μλκ° νΈμΆλ μ§ κ²°μ λλ©°, λ©μλμ λ€νμ±μ λμ¬μ€λλ€.
μ€λ²λΌμ΄λ©κ³Ό μ€λ²λ‘λ©μ μμ μ°¨μ΄
- μ€λ²λ‘λ©(Overloading):
- μ»΄νμΌ μμ μ κ²°μ λ©λλ€.
- κ°μ λ©μλ μ΄λ¦μ κ°μ§μ§λ§ νλΌλ―Έν° νμ μ΄λ κ°μκ° λ€λ₯Έ μ¬λ¬ λ©μλλ₯Ό μ μνλ κ²μ λλ€.
- μ»΄νμΌλ¬λ λ©μλ νΈμΆ μμ μ κ°μ₯ μ ν©ν λ©μλλ₯Ό μ°Ύμλ λλ€.
public void print(int x) { System.out.println("int: " + x); } public void print(double x) { System.out.println("double: " + x); }
- μ€λ²λΌμ΄λ©(Overriding):
- λ°νμ μμ μ κ²°μ λ©λλ€.
- μμ ν΄λμ€μ λ©μλλ₯Ό νμ ν΄λμ€μμ μ¬μ μνμ¬, νμ ν΄λμ€ κ°μ²΄κ° μμ ν΄λμ€ νμ μΌλ‘ νΈμΆλ λ λμμ΄ κ²°μ λ©λλ€.
class Parent { public void show() { System.out.println("Parent"); } } class Child extends Parent { @Override public void show() { System.out.println("Child"); } } Parent p = new Child(); // λ°νμ μ Childμ show() νΈμΆ
- μμ μ°¨μ΄:
- μ€λ²λ‘λ©μ μ»΄νμΌ μ μ΄λ€ λ©μλκ° νΈμΆλ μ§ κ²°μ λμ§λ§,
- μ€λ²λΌμ΄λ©μ λ°νμ μμ μ΄λ€ λ©μλκ° νΈμΆλ μ§ κ²°μ λ©λλ€.
8. Access Modifier(μ κ·Ό μ νμ)λ 무μμΈκ°μ?
λ΅λ³:
Access Modifierλ ν΄λμ€, λ©μλ, λ³μ λ±μ μ κ·Ό λ²μλ₯Ό μ§μ νλ ν€μλμ
λλ€.
- public: μ΄λμλ μ κ·Ό κ°λ₯ν©λλ€.
- protected: κ°μ ν¨ν€μ§ λλ μμλ°μ ν΄λμ€μμλ§ μ κ·Ό κ°λ₯ν©λλ€.
- default: μ κ·Ό μ νμλ₯Ό λͺ μνμ§ μμΌλ©΄, κ°μ ν¨ν€μ§μμλ§ μ κ·Ό κ°λ₯ν©λλ€.
- private: κ°μ ν΄λμ€ λ΄μμλ§ μ κ·Ό κ°λ₯ν©λλ€.
9. Wrapper Classλ 무μμΈκ°μ?
λ΅λ³:
Wrapper Classλ κΈ°λ³Έ λ°μ΄ν° νμ
(int, char, boolean λ±)μ κ°μ²΄λ‘ κ°μΈκΈ° μν ν΄λμ€λ₯Ό λ§ν©λλ€. μλ°λ μλμΌλ‘ κΈ°λ³Ένμ κ°μ²΄λ‘ λ³ννλ μ€ν λ°μ±(Auto-Boxing)κ³Ό κ°μ²΄λ₯Ό κΈ°λ³ΈνμΌλ‘ λ³ννλ μΈλ°μ±(Unboxing)μ μ§μν©λλ€. λνμ μΈ Wrapper ν΄λμ€μλ Integer, Boolean, Character λ±μ΄ μμ΅λλ€.
Wrapper ν΄λμ€λ₯Ό μ¬μ©νλ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€:
- κΈ°λ³Έ λ°μ΄ν° νμ
μ κ°μ²΄λ‘ λ€λ£¨κΈ° μν΄: μλ°μ κΈ°λ³Έ λ°μ΄ν° νμ
(int, char, boolean λ±)μ κ°μ²΄κ° μλλ―λ‘, κΈ°λ³Έ νμ
μ κ°μ²΄λ‘ λ€λ£¨κΈ° μν΄μλ Wrapper ν΄λμ€κ° νμν©λλ€. μλ₯Ό λ€μ΄, 컬λ μ
νλ μμν¬(μ:
ArrayList
,HashSet
)λ κ°μ²΄λ§ μ μ₯ν μ μμΌλ―λ‘ κΈ°λ³Έ νμ μ μ§μ μ μ₯ν μ μκ³ , μ΄λ₯Ό κ°μ²΄λ‘ λ³νν Wrapper ν΄λμ€λ₯Ό μ¬μ©ν΄μΌ ν©λλ€. - μ νΈλ¦¬ν° λ©μλ μ 곡: Wrapper ν΄λμ€λ κΈ°λ³Έ νμ
μ κ°μ²΄λ‘ λ³ννλ κ²λΏλ§ μλλΌ, λ€μν μ νΈλ¦¬ν° λ©μλλ₯Ό μ 곡ν©λλ€. μλ₯Ό λ€μ΄,
Integer.parseInt()
λ©μλλ λ¬Έμμ΄μ μ μλ‘ λ³νν΄ μ£Όλ κΈ°λ₯μ μ 곡ν©λλ€. - κΈ°λ³Έ νμ κ³Ό κ°μ²΄ νμ κ°μ λ³ν: μλ°μμλ κΈ°λ³Έ λ°μ΄ν° νμ κ³Ό κ°μ²΄ νμ κ°μ λ³νμ΄ μμ£Ό νμν©λλ€. μλ₯Ό λ€μ΄, κΈ°λ³Έ λ°μ΄ν° νμ μ 컬λ μ μ μ μ₯νκ±°λ, λ©μλμ κ°μ²΄λ‘ μ λ¬νλ κ²½μ°κ° μμ΅λλ€. Wrapper ν΄λμ€λ μ΄λ¬ν λ³νμ μ½κ² ν μ μλλ‘ μ§μν©λλ€. μλ° 5 μ΄νμλ μ€ν λ°μ±(Auto-Boxing)κ³Ό μΈλ°μ±(Unboxing)μ ν΅ν΄ κΈ°λ³Έ νμ κ³Ό Wrapper ν΄λμ€ κ°μ λ³νμ΄ μλμΌλ‘ μ΄λ£¨μ΄μ§λλ€.
- null κ° μ²λ¦¬: κΈ°λ³Έ λ°μ΄ν° νμ
μ
null
κ°μ κ°μ§ μ μμ§λ§, Wrapper ν΄λμ€λ κ°μ²΄μ΄λ―λ‘null
κ°μ κ°μ§ μ μμ΅λλ€. λ°λΌμnull
κ°μ΄ νμν λλ Wrapper ν΄λμ€λ₯Ό μ¬μ©ν μ μμ΅λλ€.
μμ:
int primitiveInt = 10;
Integer wrapperInt = Integer.valueOf(primitiveInt); // κΈ°λ³Έ νμ
μ κ°μ²΄λ‘ λ³ν (μ€ν λ°μ±)
int unboxedInt = wrapperInt; // κ°μ²΄μμ κΈ°λ³Έ νμ
μΌλ‘ λ³ν (μΈλ°μ±)
// 컬λ μ
μ κΈ°λ³Έ νμ
μ μ μ₯ν λλ Wrapper ν΄λμ€κ° νμ
List<Integer> intList = new ArrayList<>();
intList.add(primitiveInt); // μ€ν λ°μ±μ ν΅ν΄ κΈ°λ³Έ νμ
μ΄ μλμΌλ‘ Integer κ°μ²΄λ‘ λ³νλ¨
λ°λΌμ Wrapper ν΄λμ€λ κΈ°λ³Έ λ°μ΄ν° νμ
μ κ°μ²΄λ‘ λ€λ£¨κΈ° μν΄, λ€μν μ νΈλ¦¬ν° λ©μλ μ¬μ©, κΈ°λ³Έ νμ
κ³Ό κ°μ²΄ κ°μ λ³ν, null
κ° μ²λ¦¬ λ±μ κ°λ₯νκ² νκΈ° μν΄ μ¬μ©λ©λλ€.
10. Multi-Thread νκ²½μμμ κ°λ°μμ κ³ λ €ν μ μ 무μμΈκ°μ?
λ΅λ³:
λ©ν°μ€λ λ νκ²½μμλ μ¬λ¬ μ€λ λκ° λμμ κ°μ μμμ μ κ·Όν μ μκΈ° λλ¬Έμ λκΈ°ν(Synchronization)λ₯Ό ν΅ν΄ κ²½μ μν(Race Condition)λ λ°λλ½(Deadlock)κ³Ό κ°μ λ¬Έμ κ° λ°μνμ§ μλλ‘ μ£Όμν΄μΌ ν©λλ€. λκΈ°νλ synchronized
ν€μλλ λ½(Lock)μ μ¬μ©ν΄ ꡬνν μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ 곡μ μμμ λν μ€λ λ κ°μ μ κ·Όμ μ μ΄ν μ μμ΅λλ€.
11. Javaμμμ Garbage Collection(GC)λ μ΄λ»κ² λμνλμ?
λ΅λ³:
Garbage Collectionμ μλ°μ λ©λͺ¨λ¦¬ κ΄λ¦¬ κΈ°λ²μΌλ‘, μ¬μ©λμ§ μλ κ°μ²΄λ₯Ό μλμΌλ‘ ν΄μ νλ μν μ ν©λλ€. GCλ μ£Όλ‘ Mark-and-Sweep μκ³ λ¦¬μ¦μ μ¬μ©νμ¬, κ°μ²΄μ μ°Έμ‘° μ¬λΆλ₯Ό νμΈνκ³ μ°Έμ‘°λμ§ μλ κ°μ²΄λ₯Ό μ κ±°ν©λλ€. GCλ JVMμ Young Generationκ³Ό Old Generation μμμμ κ°κ° λ€λ₯΄κ² λμνλ©°, Stop-the-Worldμ κ°μ μ±λ₯ μ΄μλ₯Ό λ°μμν¬ μ μμ΄ μ±λ₯ μ΅μ ν μ κ³ λ €ν΄μΌ ν©λλ€.
12. Javaμ Collectionμμ Listμ Setμ μ°¨μ΄μ μ 무μμΈκ°μ?
λ΅λ³:
- List: μμκ° μλ λ°μ΄ν°μ μ§ν©μΌλ‘, μ€λ³΅λ μμλ₯Ό νμ©ν©λλ€. λνμ μΈ κ΅¬ν체λ‘λ ArrayList, LinkedListκ° μμ΅λλ€.
- Set: μ€λ³΅λμ§ μλ μμμ μ§ν©μΌλ‘, μμκ° μμ΅λλ€. λνμ μΈ κ΅¬ν체λ‘λ HashSet, TreeSet λ±μ΄ μμ΅λλ€.
13. Javaμ Genericμ μ¬μ©νλ©΄ μ΄λ€ μ₯μ μ΄ μλμ?
λ΅λ³:
Genericμ μ¬μ©νλ©΄ μ»΄νμΌ μ νμ
κ²μ¬λ₯Ό ν΅ν΄ μ½λμ μμ μ±μ λμΌ μ μκ³ , νλ³ν μμ΄ κ°μ²΄λ₯Ό λ€λ£° μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ κ°λ
μ±κ³Ό μ¬μ¬μ©μ±μ΄ ν₯μλ©λλ€. λν, μ¬λ¬ νμ
μ λν΄ κ°μ μ½λλ₯Ό μ¬μ©ν μ μμ΄ μ μ§λ³΄μκ° μ©μ΄ν©λλ€.
14. final ν€μλλ₯Ό ν΄λμ€, λ©μλ, λ³μμ κ°κ° μ μ©νμ λμ μ°¨μ΄μ μ 무μμΈκ°μ?
λ΅λ³:
- final ν΄λμ€: λ μ΄μ μμν μ μμ΅λλ€. μλ₯Ό λ€μ΄,
String
ν΄λμ€λ final ν΄λμ€μ λλ€. - final λ©μλ: νμ ν΄λμ€μμ μ¬μ μ(Overriding)ν μ μμ΅λλ€.
- final λ³μ: ν λ² μ΄κΈ°νλ κ°μ λ³κ²½ν μ μμ΅λλ€.
15. Javaμμ Overridingκ³Ό Overloadingμ μ°¨μ΄μ μ 무μμΈκ°μ?
λ΅λ³:
- Overriding: μμ κ΄κ³μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ ν΄λμ€κ° μ¬μ μνλ κ²μ λλ€. λΆλͺ¨ λ©μλμ μ΄λ¦, 맀κ°λ³μ, λ°ν νμ μ΄ λμΌν΄μΌ ν©λλ€.
- Overloading: λμΌν μ΄λ¦μ λ©μλλ₯Ό 맀κ°λ³μμ νμ , κ°μ, μμλ₯Ό λ€λ₯΄κ² νμ¬ μ¬λ¬ κ° μ μνλ κ²μ μλ―Έν©λλ€. μ΄λ κ°μ ν΄λμ€ λ΄μμ λ°μν μ μμ΅λλ€.
16. Javaμμ Wrapper ν΄λμ€λ 무μμ΄κ³ , μ νμνκ°μ?
λ΅λ³:
Wrapper ν΄λμ€λ μλ°μ κΈ°λ³Έ λ°μ΄ν° νμ
(int, boolean λ±)μ κ°μ²΄λ‘ λ€λ£° μ μκ² ν΄μ£Όλ ν΄λμ€μ
λλ€. μλ°μ 컬λ μ
νλ μμν¬λ κ°μ²΄λ₯Ό λ€λ£¨λ―λ‘, κΈ°λ³Έ λ°μ΄ν° νμ
μ κ°μ²΄λ‘ κ°μΈλ μ€ν λ°μ±(Auto-Boxing)κ³Ό μΈλ°μ±(Unboxing)μ΄ νμν λ Wrapper ν΄λμ€λ₯Ό μ¬μ©ν©λλ€.
17. λ©ν°μ€λ λ νκ²½μμ λκΈ°ν λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ 무μμΈκ°μ?
λ΅λ³:
λ©ν°μ€λ λ νκ²½μμλ λκΈ°ν(Synchronization)λ₯Ό ν΅ν΄ μ¬λ¬ μ€λ λκ° λμμ 곡μ μμμ μ κ·Όνλ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. μ΄λ₯Ό μν΄ synchronized
ν€μλλ₯Ό μ¬μ©νκ±°λ, Lockμ μ¬μ©νμ¬ νΉμ μ½λ λΈλ‘μ λν λμ μ κ·Όμ μ μ΄ν©λλ€. Atomic ν΄λμ€λ Concurrent ν¨ν€μ§μ ν΄λμ€λ₯Ό μ¬μ©νμ¬ μ€λ λ μμ μ±μ 보μ₯ν μλ μμ΅λλ€.
'Computer Science' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
CS μ€ν°λ 02-3 μ»΄ν¨ν° μΈμ΄: Python (5) | 2024.11.11 |
---|---|
CS μ€ν°λ 02-2 μ»΄ν¨ν° μΈμ΄: Javascript (0) | 2024.10.29 |
CS μ€ν°λ 01-7 μ μ°κΈ°μ΄: λμμΈ ν¨ν΄κ³Ό μκ³ λ¦¬μ¦ (0) | 2024.10.24 |
CS μ€ν°λ 01-6 μ μ°κΈ°μ΄: λ°μ΄ν°λ² μ΄μ€ (1) | 2024.10.21 |
CS μ€ν°λ 01-5 μ μ°κΈ°μ΄: 보μ κ΅¬μΆ (1) | 2024.10.21 |