μΆμ²
ChatGPT
μ§μ λ³μκ° μ΄κΈ°νκ° νμν μ΄μ λ ν¬κ² λ κ°μ§λ‘ μμ½ν μ μλ€: μμ μ±κ³Ό λͺ νμ±μ΄λ€. μ§μ λ³μλ νΉμ λ©μλλ λΈλ‘ λ΄μμλ§ μ‘΄μ¬νλ λ³μλ‘, κ·Έ λ²μλ₯Ό λ²μ΄λλ©΄ μ κ·Όν μ μλ€. μ΄λ¬ν νΉμ± λλ¬Έμ μ§μ λ³μλ μ΄κΈ°ννμ§ μκ³ μ¬μ©νλ €κ³ ν κ²½μ° μκΈ°μΉ μμ λμμ΄λ μλ¬λ₯Ό λ°μμν¬ μ μλ€.
1. μμ μ±
λ©λͺ¨λ¦¬μ μ°λ κΈ° κ° λ°©μ§
μ§μ λ³μλ λ©λͺ¨λ¦¬μ μ μΈλ λ μ΄κΈ°νλμ§ μμΌλ©΄, ν΄λΉ λ©λͺ¨λ¦¬ μμΉμ μ΄μ μ μ¬μ©λ μ°λ κΈ° κ°(garbage value)μ΄ λ¨μμμ μ μλ€. λ§μ½ μ΄λ¬ν μ°λ κΈ° κ°μ μ¬μ©νκ² λλ€λ©΄, μκΈ°μΉ μμ λμμ΄λ λ²κ·Έκ° λ°μν μ μλ€.
μμ
public class UninitializedVariable {
public static void main(String[] args) {
int x;
// μ΄κΈ°νλμ§ μμ μ§μ λ³μλ₯Ό μ¬μ©νλ €κ³ μλν λ
// System.out.println(x); // μ»΄νμΌ μ€λ₯ λ°μ
}
}
μ μ½λμμ 'x'λ μ΄κΈ°νλμ§ μμμΌλ―λ‘ μ»΄νμΌ μ€ν¨κ° λ°μνλ€. μ΄λ‘ μΈν΄ νλ‘κ·Έλ¨μ μμΈ‘ λΆκ°λ₯ν λμμ λ°©μ§ν μ μλ€.
μ»΄νμΌ νμ μλ¬
μλ° μ»΄νμΌλ¬λ μ΄κΈ°νλμ§ μμ μ§μ λ³μλ₯Ό μ¬μ©νλ κ²μ μ격νκ² λ°©μ§νλ€. μ΄λ νλ‘κ·Έλ¨μ μμ μ±μ λμ΄λ μ‘°μΉμ΄λ€. μ΄κΈ°νλμ§ μμ λ³μλ₯Ό μ¬μ©νλ©΄ μ»΄νμΌ νμ μλ¬λ₯Ό λ°μμμΌ, νλ‘κ·Έλ¨μ΄ μ€νλκΈ° μ μ λ¬Έμ λ₯Ό λ°κ²¬ν μ μκ² νλ€.
μμ
public class SafeInitialization {
public static void main(String[] args) {
int number;
// numberλ₯Ό μ΄κΈ°ννμ§ μκ³ μ¬μ©νλ €κ³ μλν λ
// int result = number + 10; // μ»΄νμΌ μ€λ₯ λ°μ
}
}
μ΄ μ½λμμ 'number'λ μ΄κΈ°νλμ§ μμμΌλ©°, μ΄λ‘ μΈν΄ μ»΄νμΌ νμ μλ¬κ° λ°μνλ€. μ΄λ μ€νμ μκΈ°μΉ μμ λμμ λ°©μ§νλ λ° λμμ΄ λλ€.
2. λͺ νμ±
μ½λμ λͺ νμ±κ³Ό κ°λ μ±
μ§μ λ³μλ₯Ό μ΄κΈ°ννλ©΄, λ³μμ μ΄κΈ° μνκ° λͺ νν΄μ Έ μ½λλ₯Ό μ½κ³ μ μ§λ³΄μνκΈ° μ¬μμ§λ€. μ΄λ νλ‘κ·Έλ¨μ κ°λ μ±μ λμ΄κ³ , μ½λ 리뷰 λ° μ μ§λ³΄μ κ³Όμ μμ μ€μλ₯Ό μ€μ΄λ λ° λμμ΄ λλ€.
μμ
public class InitializationExample {
public static void main(String[] args) {
int count = 0; // λͺ
ννκ² μ΄κΈ°νλ λ³μ
for (int i = 0; i < 10; i++) {
count += i;
}
System.out.println("Total count: " + count);
}
}
μ μ½λμμ 'count'λ 0μΌλ‘ λͺ ννκ² μ΄κΈ°νλμ΄ μμΌλ©°, μ΄λ νλ‘κ·Έλ¨ λ‘μ§μ μλλ₯Όλͺ νν νλ€.
μ΄κΈ°νμ μλ νν
λ³μλ₯Ό λͺ μμ μΌλ‘ μ΄κΈ°ννλ κ²μ κ°λ°μκ° μλμ μΌλ‘ μ΄κΈ° κ°μ μ€μ νκ³ μλ€λ κ²μ 보μ¬μ€λ€. μ΄λ μ½λμ μλλ₯Ό λͺ νν λλ¬λ΄μ΄, λ€λ₯Έ κ°λ°μκ° μ½λλ₯Ό μ΄ν΄νλ λ° λμμ μ€λ€.
μμ
public class GameSettings {
public static void main(String[] args) {
boolean isGameOver = false; // μ΄κΈ° μνλ₯Ό λͺ
μμ μΌλ‘ νν
if (!isGameOver) {
System.out.println("Game is still running...");
}
}
}
μ¬κΈ°μ 'isGameOver'λ 'false'λ‘ μ΄κΈ°νλμ΄ κ²μμ μ΄κΈ° μνλ₯Ό λͺ νν νννλ€.
μ§μ λ³μμ μ΄κΈ°ν κ·μΉ
μλ°μμλ μ§μ λ³μμ μ΄κΈ°νκ° μ격νκ² μꡬλλ€. ν΄λμ€μ μΈμ€ν΄μ€ λ³μ(νλ)μλ λ¬λ¦¬, μ§μ λ³μλ μλμΌλ‘ μ΄κΈ°νλμ§ μμΌλ―λ‘, κ°λ°μκ° λͺ μμ μΌλ‘ μ΄κΈ°νν΄μΌ νλ€. μ΄ κ·μΉμ νΉν κΈ°λ³Έ λ°μ΄ν° νμ μ κ²½μ°μ λμ± μ€μνλ€. μλ₯Ό λ€μ΄, μ μν λ³μλ '0'μΌλ‘ μ΄κΈ°νλμ§ μμΌλ©°, μ°Έμ‘°ν λ³μλ 'null'λ‘ μ΄κΈ°νλμ§ μλλ€.
μμ
public class InitializationRules {
public static void main(String[] args) {
int uninitialized; // μ΄κΈ°νλμ§ μμ μ§μ λ³μ
// if (uninitialized == 0) { // μ»΄νμΌ μ€λ₯ λ°μ
// System.out.println("Uninitialized is zero.");
// }
}
}
μ΄κΈ°νμ μ μ©μ± : μλ μ΄κΈ°νμ λͺ μμ μ΄κΈ°ν
μλ μ΄κΈ°ν
ν΄λμ€μ μΈμ€ν΄μ€ λ³μλ μ μΈλ§μΌλ‘ μλ μ΄κΈ°νλλ€. κΈ°λ³Έκ°μΌλ‘ μ΄κΈ°νλμ΄ λ©λͺ¨λ¦¬ μμ μ±μ ν보νλ€. μλ₯Ό λ€μ΄, 'int'λ ''0', 'boolean'μ 'false', μ°Έμ‘°ν λ³μλ 'null'λ‘ μ΄κΈ°νλλ€.
λͺ μμ μ΄κΈ°ν
μ§μ λ³μλ λͺ μμ μ΄κΈ°νλ₯Ό μꡬνλ€. μ΄κΈ°κ° μ€μ μ ν΅ν΄ λ³μμ μλλ₯Ό λͺ νν νννκ³ , μμ ν νλ‘κ·Έλ¨ μ€νμ 보μ₯νλ€.
μμ
public class DefaultInitialization {
int defaultInt; // μλμΌλ‘ 0μΌλ‘ μ΄κΈ°ν
boolean defaultBool; // μλμΌλ‘ falseλ‘ μ΄κΈ°ν
public void displayDefaults() {
System.out.println("Default int: " + defaultInt);
System.out.println("Default boolean: " + defaultBool);
}
public static void main(String[] args) {
DefaultInitialization di = new DefaultInitialization();
di.displayDefaults();
}
}
μΆλ ₯
Default int: 0
Default boolean: false
κ²°λ‘
μ§μ λ³μλ₯Ό μ΄κΈ°ννλ κ²μ νλ‘κ·Έλ¨μ μμ μ±, λͺ νμ±, μμ μ±μ 보μ₯νκΈ° μν μ€μν κ΄νμ΄λ€. μ΄κΈ°νλ₯Ό ν΅ν΄ μκΈ°μΉ μμ λμμ λ°©μ§νκ³ , μ½λμ μλλ₯Ό λͺ νν νννμ¬ κ°λ μ±μ λμ΄λ λ° κΈ°μ¬νλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ λ³΄λ€ μ λ’°ν μ μλ μ½λλ₯Ό μμ±ν μ μλ€.