[Java] Method Area의 Metadata

GΒ·2024λ…„ 6μ›” 22일
0

Java

λͺ©λ‘ 보기
4/21

βœοΈβ€‚Metadata

πŸ’‘ Java ν”„λ‘œκ·Έλž¨μ΄ 싀행될 λ•Œ μ‚¬μš©λ˜λŠ” λ©”λͺ¨λ¦¬ 곡간

1. Type Information
2. Runtime Constant Pool
3. Field Information
4. Method Information
5. Class Variable

✏️  Type Information

β€ƒπŸ‘‰ ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€μ˜ 정보

  • 포함 λ‚΄μš©
    • νƒ€μž…μ˜ 이름
    • νƒ€μž…μ˜ μ’…λ₯˜: Class, Interface
    • μ ‘κ·Ό μ œμ–΄μž: public, protected, default, private
    • 기타 μ œμ–΄μž: abstract, final, statice λ“±
    • Class에 μ‚¬μš©λœ Interface 정보

✏️  Runtime Constant Pool

β€ƒπŸ‘‰ 컴파일 νƒ€μž„μ— μƒμ„±λœ μƒμˆ˜, λ©”μ„œλ“œ 및 ν•„λ“œ μ°Έμ‘°λ₯Ό μ €μž₯ν•˜λŠ” 곡간

  • 포함 λ‚΄μš©
    • λ¦¬ν„°λŸ΄ μƒμˆ˜: 숫자, λ¬Έμžμ—΄ λ“±κ³Ό 같은 λ¦¬ν„°λŸ΄ κ°’λ“€ μ €μž₯
    • λ©”μ„œλ“œ μ°Έμ‘°: λ©”μ„œλ“œ ν˜ΈμΆœμ— ν•„μš”ν•œ 정보 μ €μž₯
    • ν•„λ“œ μ°Έμ‘°: ν•„λ“œ 접근에 ν•„μš”ν•œ 정보 μ €μž₯
    • 클래슀 μ°Έμ‘°: λ‹€λ₯Έ ν΄λž˜μŠ€λ‚˜ μΈν„°νŽ˜μ΄μŠ€μ— λŒ€ν•œ μ°Έμ‘° μ €μž₯

✏️  Field Information

β€ƒπŸ‘‰ 클래슀의 각 ν•„λ“œ(Field) 에 λŒ€ν•œ 정보가 μ €μž₯λ˜λŠ” 곡간

  • 포함 λ‚΄μš©
    • ν•„λ“œ 이름
    • ν•„λ“œμ˜ 데이터 νƒ€μž„: int, double, String λ“±
    • μ ‘κ·Ό μ œμ–΄μž: public, protected, default, private
    • 기타 μ œμ–΄μž: abstract, final, statice λ“±

✏️  Method Information

β€ƒπŸ‘‰ 클래슀의 각 λ©”μ„œλ“œ(Method) 에 λŒ€ν•œ 정보가 μ €μž₯λ˜λŠ” 곡간

  • 포함 λ‚΄μš©
    • λ©”μ„œλ“œ 이름
    • λ©”μ„œλ“œμ˜ λ°˜ν™˜ νƒ€μž„: void, int, double, String λ“±
    • λ©”μ„œλ“œμ˜ νŒŒλΌλ―Έν„° νƒ€μž…κ³Ό 개수
    • μ ‘κ·Ό μ œμ–΄μž: public, protected, default, private
    • 기타 μ œμ–΄μž: static, final, synchronized, native, abstract λ“±
    • λ©”μ„œλ“œμ˜ λ°”μ΄νŠΈμ½”λ“œ: λ©”μ„œλ“œμ˜ μ‹€μ œ μ‹€ν–‰ μ½”λ“œκ°€ μ €μž₯

✏️  Class Variable

β€ƒπŸ‘‰ 클래슀 λ³€μˆ˜(static λ³€μˆ˜) κ°€ μ €μž₯λ˜λŠ” 곡간

  • 포함 λ‚΄μš©
    • static λ³€μˆ˜
  • νŠΉμ§•
    • 클래슀 λ‘œλ“œ μ‹œμ μ— λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλ˜μ–΄, ν΄λž˜μŠ€κ°€ μ–Έλ‘œλ“œλ  λ•ŒκΉŒμ§€ μœ μ§€λ©λ‹ˆλ‹€.
    • λͺ¨λ“  μΈμŠ€ν„΄μŠ€κ°€ κ³΅μœ ν•˜λŠ” λ³€μˆ˜λ‘œ, 클래슀의 μΈμŠ€ν„΄μŠ€ 없이 클래슀 μ΄λ¦„μœΌλ‘œ μ ‘κ·Ό κ°€λŠ₯
profile
κΈ°!술! λΈ”λ‘œκ·Έ

0개의 λŒ“κΈ€