🐯[TIL] 250609-006

byoΒ·2025λ…„ 6μ›” 10일

πŸ’« JAVA

βœ”οΈ λ©”μ„œλ“œ μ˜€λ²„λ‘œλ”©

ν˜•νƒœλ§Œ λ‹¬λ¦¬ν•œλ‹€ = λ§€κ°œλ³€μˆ˜ 개수, νƒ€μž…μ΄ λ‹€λ₯΄λ‹€.
-> λ‹€μ–‘ν•œ κΈ°λŠ₯을 같은 μ΄λ¦„μ˜ ν•¨μˆ˜λ‘œ μ‚¬μš© κ°€λŠ₯

μžλ°”μ—μ„œ 이름이 같은 ν•¨μˆ˜λŠ” 쀑볡이라 생성이 μ•ˆλœλ‹€κ³  μƒκ°ν• μˆ˜ μžˆμ§€λ§Œ
λ§€κ°œλ³€μˆ˜κ°€ λ‹€λ₯΄λ©΄ 잘 생성이 λœλ‹€!

  • println ν•¨μˆ˜λ„ 사싀은 λ§€κ°œλ³€μˆ˜κ°€ λ‹€μ–‘ν•˜λ‹€.
System.out.println(1);
System.out.println(1.1);
System.out.println("abc");

λͺ¨λ‘ λ‹€λ₯Έ ν•¨μˆ˜κ°€ μ‚¬μš©λ˜μ—ˆλ‹€.

μ½”λ”© -> JVM : 컴파일
JVM -> μ‚¬μš©μž : λŸ°νƒ€μž„

μ˜€λ²„λ‘œλ”©μ€ 같은 μ΄λ¦„μœΌλ‘œ λ‹€μ–‘ν•œ μž…λ ₯을 μ²˜λ¦¬ν•  수 있게 ν•΄μ€€λ‹€.
같은 κΈ°λŠ₯이라면 같은 ν•¨μˆ˜λ‘œ.. ν•¨μˆ˜ 이름 λ§ˆλ‹€ 역할을 μ •ν•΄μ€€λ‹€?λŠ” λŠλ‚ŒμΈκ²ƒ κ°™λ‹€.

βœ”οΈ λ°°μ—΄

Array

순회 (반볡문) 접근을 자주 ν•œλ‹€.

배열에 μ ‘κ·Όκ°€λŠ₯ν•œ λ²”μœ„λŠ” 0~(λ°°μ—΄μ˜ 길이 -1) 이닀.
λ°°μ—΄μ˜ κΈΈμ΄λŠ” arrayName.length 둜 μ•Œ 수 μžˆλ‹€.

βœ”οΈ λ¬Έμžμ—΄

String

  • dart(flutter) μ–Έμ–΄λŠ” int같은 νƒ€μž…λ„ λͺ¨λ‘ 객체둜 λ˜μ–΄ μžˆλ‹€.
    λ”°λΌμ„œ int에도 κΈ°λŠ₯이 μžˆλ‹€.
    μžλ°”λŠ” 객체지ν–₯이라 κΈ°λ³Ένƒ€μž…/μ°Έμ‘°νƒ€μž…μœΌλ‘œ λ‚˜λ‰˜μ–΄ μžˆλ‹€.

λ¬Έμžμ—΄μ€ 객체이닀. 객체 = κ°’ + κΈ°λŠ₯

πŸ”† method chaining

        String message = "Hello, Java!";
        System.out.println(message.length());  // String의 κΈΈμ΄λŠ” .length()
        System.out.println(message.toLowerCase());
        System.out.println(message.toUpperCase());
        System.out.println(message.indexOf("J"));
        System.out.println(message.indexOf("l"));
        System.out.println(message.indexOf("a"));

λ¬Έμžμ—΄ λ©”μ†Œλ“œμ— . 으둜 μ—°κ²°ν•΄μ„œ ν•¨μˆ˜λ₯Ό μ“°λŠ” 것을 λ©”μ†Œλ“œ 체이닝이라고 ν•œλ‹€.

ν•¨μˆ˜ν˜• μ½”λ”©μ˜ κ²½μš°μ—λŠ” λ°μ΄ν„°μ˜ 원본을 λ³΄μ‘΄ν•˜λŠ” 것을 μ§€ν–₯ν•œλ‹€.
객체지ν–₯ 코딩은 원본 λ¬Έμžμ—΄μ„ κ·ΈλŒ€λ‘œ, κ²°κ³ΌλŠ” μƒˆ λ¬Έμžμ—΄

πŸ’« CS

βœ”οΈ 기계어, κ³ κΈ‰μ–Έμ–΄


  • κ³ κΈ‰ μ–Έμ–΄ : μ‚¬λžŒμ΄ 읽기 μ‰¬μš΄ 문법 (if, for, System.out.println)
  • 기계어 : CPUκ°€ 직접 해석 κ°€λŠ₯ν•œ 0κ³Ό 1의 μ΄μ§„μˆ˜

πŸ¦„ κ³ κΈ‰ μ–Έμ–΄ -> 기계어 λ³€ν™˜ν•˜λŠ” μ»΄νŒŒμΌμ€ ν•„μˆ˜ 과정이닀.

λΌλ””μ˜€λ₯Ό μ‘°λ¦½ν•˜λŠ” 과정이 컴파일이라면
ν•΄μ²΄ν•˜λŠ” 과정은 λ””μ»΄νŒŒμΌμ΄λ‹€.

인터프리터 μ–Έμ–΄ : ν•œμ€„μ”© λ²ˆμ—­ν•˜λŠ” μ–Έμ–΄ (like c)
컴파일 μ–Έμ–΄ : ν•œλ²ˆμ— λ²ˆμ—­ν•˜λŠ” μ–Έμ–΄ (like java)
컴파일 였λ₯˜λ³΄λ‹€ λŸ°νƒ€μž„ 였λ₯˜κ°€ μ•„ν”„λ‹€..

βœ”οΈ javac, JVM

πŸ¦„ JVM은 각 ν”Œλž«νΌλ§ˆλ‹€ 각각 κ΅¬ν˜„λ˜μ–΄ μžˆμ–΄μ„œ OS 상관없이 μ–΄λ””μ„œλ“  μ‹€ν–‰κ°€λŠ₯ν•˜λ‹€

.java --(javac)--> .class --(JVM)--> 기계어 μ‹€ν–‰

  • μžλ°” 컴파일러 javacκ°€ .java νŒŒμΌμ„ 읽고 .class 파일둜 λ³€ν™˜ν•œλ‹€. (λ°”μ΄νŠΈμ½”λ“œ)
    πŸ’‘λ°”μ΄νŠΈμ½”λ“œ : 기계어가 μ•„λ‹Œ, jvm이 해석가λŠ₯ν•œ μ€‘κ°„μ½”λ“œ
  • JVM은 λ°”μ΄νŠΈμ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” 가상머신. μ‹€μ œ κΈ°κ³„μ–΄λ‘œ λ²ˆμ—­ν•œλ‹€.

βœ”οΈ JIT (Just In Time 컴파일러)

  • JIT μ»΄νŒŒμΌλŸ¬λŠ” JVM λ‚΄λΆ€ κΈ°λŠ₯ 쀑 ν•˜λ‚˜.
  • 자주 μ‹€ν–‰λ˜λŠ” μ½”λ“œλ₯Ό 미리 κΈ°κ³„μ–΄λ‘œ λ³€ν™˜ν•΄ 싀행속도가 λΉ λ₯΄λ‹€.
profile
πŸ—‚οΈ hamstern

0개의 λŒ“κΈ€