- μλ°μ νΉμ§ : κ°μ²΄μ§ν₯, G.C(Garbage Collector), JVM, WORA
1) WORA (Write Once Run Anywhere)
=> μλ° νλ‘κ·Έλ¨μ ν λ² μμ€μ½λλ₯Ό μμ±νκ³ λλ©΄ μ΄μ체μ μκ΄μμ΄ μ΄λμλ μ€νκ°λ₯ν νΉμ§
2) JVM ( Java Virtual Machine, μλ° κ°μ λ¨Έμ )
=> κ°μμ CPU μν μ μννλ μλ°μ ν΅μ¬ ꡬμ±μμ
3) Garbage Collector
=> μλ°μμ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νλ μν (λ μ΄μ μ¬μ©λμ§ μλ κ°μ²΄λ₯Ό μλμΌλ‘ μ 리νλ μν , μ°Έμ‘°νλ λ³μκ° μμ λ)
- λ³μλͺ , λ©μλ μλ³μ κ·μΉ
1) 곡백 λΆκ°
2) μ€λ³΅ λΆκ°
3) μ«μλ‘ μμ X
4) ν€μλ(μμ½μ΄) μ¬μ© X
5) νΉμλ¬Έμ(_, $) λ§ μ¬μ© κ°λ₯
6) λμλ¬Έμ ꡬλ³
---------------------------------------
* νμλ μλμ§λ§ μ§μΌμ€μΌν μ½μ
7) 첫κΈμ μλ¬Έ μλ¬Έμ
8) κΈΈμ΄ μ ν μμ
9) μλ―Έ μλ μ΄λ¦ μ¬μ©
- κΈ°λ³Έ μλ£ν 8κ°μ§
1 (byte) | 2 | 4 | 8 | |
μ μν | byte | short | int | long |
μ€μν | float | double | ||
λ¬Έμν | char | |||
λ Όλ¦¬ν | boolean |
μλνλ³ν (μμ -> ν°)
κ°μ νλ³ν (ν° -> μμ)
=> μ€λ²νλ‘μ° λ°μ μ¬λΆ!
- λ°°μ΄ : κ°μ λ°μ΄ν° νμ μ¬λ¬κ° μ μ₯ νλμ λ³μλ‘ κ΄λ¦¬
int[] arr;
arr = {1, 2, 3}; // X (μ€κ΄νΈλ νμ€μ μμ± ν΄μΌν¨ int[] arr = {1, 2, 3};)
arr = new[] {1, 2, 3}; // O
arr = new int[3]; // O
arr = new int[3] {1, 2, 3}; // X
- λ©μλ : κ°μ²΄λ§λ€ κ°μ§λ κΈ°λ₯μ΄λΌλ μλ―Έμμ ν¨μμ λ€λ¦
[μ κ·Όμ ν(public, private..)] 리ν΄νμ λ©μλλͺ ([λ°μ΄ν°νμ λ³μλͺ , ...]) {}
- λ©μλ μ€λ²λ‘λ©
1) μ΄λ¦μ΄ κ°μ λ©μλ
2) νλΌλ―Έν° κ°―μ, νμ , μμλ₯Ό λ€λ₯΄κ² νμ¬ κ°μ μ΄λ¦μ λ©μλλ₯Ό μ¬λ¬κ° μ μΈνλ κ²
3) λνμ μΈ μ : System.out.println()
- ν΄λμ€
- λ©€λ²λ³μ
- μμ±μ (κ°μ²΄ μμ±νλ λ°©λ²)
- λ©μλ
class StudentVO {
// λ©€λ²λ³μ
// μμ±μ
// λ©μλ
}
- μ κ·Όμ νμ (λ public > protected > default > private μ’)
- public : μ ν μμ
- protected : κ°μ ν¨ν€μ§ λλ λ€λ₯Έ ν¨ν€μ§λλΌλ μμκ΄κ³λ νμ©
- default : κ°μ ν¨ν€μ§ λ΄μμλ§
- private : ν΄λμ€ λ΄μμλ§
- static : ν΄λμ€
public class Ex {
public static void main(String[] args) {
Person p = new Person();
Person p2 = new Person();
// p.num = 10 // => X
Person.num = 10;
System.out.println(Person.num); // 10
}
}
class Person {
String name; // κ°μ²΄(μΈμ€ν΄μ€)λ§λ€ κ°μ§ μ μμ
static int num; // ν΄λμ€
public static void method() {}
}
- μμ
1) λΆλͺ¨ν΄λμ€μ λ©€λ²λ₯Ό μμν΄λμ€μμ μ μΈμμ΄ μ¬μ©ν μ μλ κ² (μ€λ³΅μ½λ μ κ±°)
2) λ€μ€ μμ λΆκ° (=>μλ°μμλ§ μλ¨)
3) private μμ λΆκ°
4) μ€λ²λΌμ΄λ© (λΆλͺ¨ν΄λμ€λ‘λΆν° λ¬Όλ €λ°μ λ©μλλ₯Ό "μ¬μ μ")
- νμ λ³ν(λ νΌλ°μ€ νλ³ν) : λΆλͺ¨νμ μΌλ‘λ μΌλ§λ μ§ κ°λ₯, μμμ λ³μμ μ΄λ€ κ°μ²΄κ° μ μ₯λμ΄μλμ§κ° μ€μ
public class Ex {
public static void main(String[] args) {
A a = (A) new F(); // O (Fλ A,C,Fμμ μ¬μ©κ°λ₯)
// C c = a; // X
// F f = a; // X (λ€μ΄μΊμ€ν
)
C c2 = (C)a; // O (2λ²μ§Έμ μ¬λ°λ₯Έ λ΅)
F f2 = (F)c2; // O (μΈλ²μ§Έμ μ¬λ°λ₯Έ λ΅, c2μ λμ΄μ§ λ§κΈ°. c2μλ aκ°, F()κ° λ€μ΄μμ)
// B b = (B)c2; // X (c2λ F()μ΄λ―λ‘ A,C,Fμμλ§ κ°λ₯)
}
}
class A {}
class B extends A {}
class C extends A {}
class D extends B {}
class E extends B {}
class F extends C {}
class G extends C {}
- λμ λ°μΈλ© : μ½λμμμ νΈμΆλλ κ²μΌλ‘ μμλλ λ©μλμ μ€μ λ‘ μ€ν μμ μ νΈμΆλλ λ©μλκ° λ€λ₯Έ νμ
=> λ³μμ μ΄λ€ κ°μ²΄κ° μ μ₯λμ΄ μλμ§κ° μ€μ!
public class test {
public static void main(String[] args ) {
P p1 = new C();
P p2 = new P();
System.out.println(p1.name); // P (λ³μλ λμ λ°μΈλ©μ΄ μ μ© μλ¨)
p1.method(); // C (λμ λ°μΈλ© : λ©μλλ§ μ μ©λ¨)
}
}
class P {
String name = "P";
public void method() {
System.out.println("P");
}
}
class C extends P {
String name = "C";
public void method() {
System.out.println("C");
}
}
- μΆμν΄λμ€
1) μΆμλ©μλλ₯Ό κ°μ§ μ μλ ν΄λμ€
2) abstract ν€μλκ° λΆμ ν΄λμ€
3) κ°μ²΄λ₯Ό μμ±ν μ μλ€.
=> μΆμμ μΈ κ°λ μ΄λ―λ‘ μμ± X
=> ν΄λμ€μ΄κΈ° λλ¬Έμ μμ±μκ° μμ
(μμ ν΄λμ€ κ°μ²΄ μμ±μ λΆλͺ¨ μμ±μ νΈμΆλ¨)
public class test {
public static void main(String[] args ) {
// new νμκ²(); // X μΆμλ©μλλ λλλλ©΄ μλκΈ° λλ¬Έμ!
new Hero(); // μμ±μ νΈμΆλ¨!
}
}
class Hero {
νμκ² weapon = new μ λ¬Έμ§μΉΌ();
// νμ μμ±λλ μμ : μ€λΈμ νΈ κ°μ²΄ μμ± > νμκ² κ°μ²΄ μμ± > μ λ¬Έμ§μΉΌ μμ± => λͺ¨λ κ°μΈμ weaponμμ νΈμΆ κ°λ₯
}
abstract class νμκ² {
νμκ²() {
System.out.println("μμ±μ νΈμΆλ¨!");
}
} // 무기λ€μ λ¬Άμλ μΆμμ μΈ μ΄λ¦μΌλ‘ λ¬ΆκΈ° μν΄ μΆμλ©μλ μ¬μ©
class λ‘μκΈλΌλμ°μ€ extends νμκ² {
// public public λ‘μκΈλΌλμ°μ€() {
// super(); //μλ΅ λμ΄ μμ
// }
}
class μ λ¬Έμ§μΉΌ extends νμκ² {}
- μΈν°νμ΄μ€ : μλ 100% μΆμλ©μλλ§ μ μΈν μ μλκ±°, default λ©μλ μΆκ°λκΈ΄ ν¨
1) μμμ μΆμλ©μλλ§ μ¬ μ μμΌλ―λ‘
λ³μλ public static final μλ΅ κ°λ₯.
λ©μλλ public abstract μλ΅ κ°λ₯.
2) λ€μ€μμ κ°λ₯ (μΈν°νμ΄μ€ λΌλ¦¬λ extends μ€μ²΄ ν΄λμ€ implements)
=> μΆμλ©μλ μ΄λ―λ‘ μ΄λ¦μ΄ κ°μ λ©μλλ₯Ό 2κ° λ¬Όλ €λ°λλΌλ λͺ¨νΈνμ§ μμΌλ―λ‘
μΈν°νμ΄μ€λ λ€μ€ μμμ νμ©ν¨
3) μμ±μκ° μμ (μΆμν΄λμ€μμ μ°¨μ΄μ !)
=> μμλ°λ μ€μ²΄ ν΄λμ€μμ superλ Objectλ₯Ό λ»ν¨
- Wrapper ν΄λμ€
- κΈ°λ³Έ λ°μ΄ν° νμ 8κ°μ§μλ κΈ°λ₯μ΄ μμ΄ 1:1λ‘ κΈ°λ₯μ μ§μν΄μ£Όλ ν΄λμ€λ€μ λ§λ€μ΄ λμ
- μ¬μ© μ΄μ : νλ³νκ³Ό λΉκ΅μ°μ°μ νκΈ° μν΄
- Collection Framework (API, λΌμ΄λΈλ¬λ¦¬) : μλ£κ΅¬μ‘°λ₯Ό ꡬνν΄ λμ ν΄λμ€
- SET / LIST / MAP
1) Set : μ€λ³΅νμ© X
=> ꡬν체 ν΄λμ€ : HashSet, LinkedHashSet(μμ), TreeSet(μ λ ¬)
=> μλ λΉ λ₯Έ μμ : HashSet > LinkedHashSet > TreeSet
2) LIST : λ°°μ΄μ²λΌ μΈλ±μ€λ₯Ό κ°μ§λ©° ν¬κΈ° λ³κ²½ κ°λ₯
=> ꡬν체 ν΄λμ€ : ArrayList, LinkedList, Vector
=> ArrayList VS Vector : λ©ν°μ°λ λ μμ μ¬λΆ!
ArrayList (μμ X) / Vector(μμ O)
=> ArrayList VS LinkedList : λ°μ΄ν°λ₯Ό μ°Έμ‘°ν λ (get, select, κ°μ Έμ¬λ) ArrayListκ° λΉ λ¦
λ°μ΄ν° μΆκ°/μμ (μλ€)λ λκ°μ
λ°μ΄ν° μ€κ° μΆκ°/μμ λ LinkedListκ° λΉ λ¦
3) Map : key, value νμμΌλ‘ λ°μ΄ν° μ μ₯
=> ꡬν체 ν΄λμ€ : HashMap, LinkedHashMap(μμ), TreeMap(μ λ ¬)
'λ°±μλ(Back-End) κ°λ° > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μΏ ν€(Cookie) vs μΈμ (Session) (0) | 2025.01.19 |
---|---|
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(Object Oriented Programming, OOP) μΈμ΄ (1) | 2025.01.16 |
form νκ·Έ μ λ ₯λ°μ λ°μ΄ν°λ₯Ό νλΌλ―Έν° νμμΌλ‘ νκΊΌλ²μ 리ν΄λ°κΈ°($("form").serialize() ν¨μ) (0) | 2025.01.08 |
μΈμ (Session) vs μΏ ν€(Cookie) (0) | 2024.11.18 |
AJAX λ? (0) | 2024.11.13 |