Programming/Java

TIL_W02 | Variable, Primitive / Reference Type, Literal, Array

osean 2020. 12. 15. 22:19

Variable

λ³€μˆ˜λž€ 값을 μ €μž₯ν•  수 μžˆλŠ” λ©”λͺ¨λ¦¬μ˜ νŠΉμ • λ²ˆμ§€μ— λΆ™μ΄λŠ” 이름이닀.

Java의 λ³€μˆ˜λŠ” λ‹€μ–‘ν•œ νƒ€μž…μ˜ 값을 μ €μž₯ν•  μˆ˜κ°€ μ—†λ‹€.
λ§Œμ•½ int νƒ€μž…μœΌλ‘œ μ„ μ–Έν•œ λ³€μˆ˜μ— boolean νƒ€μž…μ˜ 데이터λ₯Ό μ €μž₯ν•  수 μ—†λ‹€.
κ·Έλž˜μ„œ μ •μˆ˜ νƒ€μž…(int, long)μ—λŠ” μ •μˆ˜ν˜• 데이터, μ‹€μˆ˜ νƒ€μž…(float, double)μ—λŠ” μ‹€μˆ˜ν˜• λ°μ΄ν„°λ§Œ λ“€μ–΄κ°ˆ 수 μžˆλ‹€. 배열도 λ§ˆμ°¬κ°€μ§€μ΄λ‹€.

Declaring Variables / Initializing Variables

λ³€μˆ˜ μ„ μ–Έ

  1. 데이터 νƒ€μž…(κΈ°λ³Έν˜• / μ°Έμ‘°ν˜•) μ„ μ–Έ

  2. λ³€μˆ˜λͺ… μ„ μ–Έ

     // ν•˜λ‚˜μ˜ λ³€μˆ˜λ§Œ μ„ μ–Έν•˜λŠ” 경우
     int num1;
     boolean check1;
    
     // ν•˜λ‚˜ μ΄μƒμ˜ λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λŠ” 경우
     int num2, num3, num4;
     boolean check2, check3, check4;
  • λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κΈ° μœ„ν•΄μ„œλŠ” λ³€μˆ˜λͺ… μ„ μ–Έ 쑰건과 μ˜ˆμ•½μ–΄μ— λŒ€ν•œ κ·œμΉ™μ„ νŒŒμ•…ν•˜κ³  μ„ μ–Έν•΄μ•Ό ν•œλ‹€.

     

μž‘μ„± κ·œμΉ™ μ˜ˆμ‹œ
λ³€μˆ˜λͺ… 첫 번째 λ¬ΈμžλŠ” 숫자둜 μ‹œμž‘ν•  수 μ—†λ‹€. κ°€λŠ₯ : index, $hello, my_name
λΆˆκ°€λŠ₯ : 1_index, 10num, 5str
μ˜μžλŠ” λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•œλ‹€. λ³€μˆ˜ str와 StrλŠ” λ‹€λ₯Έ λ³€μˆ˜μ΄λ‹€.
Java μ˜ˆμ•½μ–΄λŠ” μ‚¬μš©ν•  수 μ—†λ‹€. μ˜ˆμ‹œ : private, print, public, int λ“±
λ³€μˆ˜λͺ…μ˜ κΈΈμ΄λŠ” μ œν•œμ€ μ—†λ‹€.  

λ³€μˆ˜ μ΄ˆκΈ°ν™”

λ³€μˆ˜ μ΄ˆκΈ°ν™”λŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μ‹€μ œ 데이터λ₯Ό μ •μ˜ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

μ΄ˆκΈ°ν™” ν•˜λŠ” 방법은 λŒ€μž… μ—°μ‚°μž(=)λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„ μ–Έν•œ λ³€μˆ˜μ— μ‹€μ œ 데이터λ₯Ό μ €μž₯ν•˜λŠ” ν˜•μ‹μœΌλ‘œ κ΅¬ν˜„ν•œλ‹€.

int num1 = 10;
int num2 = 20;

int sum = num1 + num2;
Integer num3 = new Integer();

System.out.println(sum); // 30

λ§Œμ•½ μ΄ˆκΈ°ν™” λ˜μ§€ μ•Šκ³  μ„ μ–Έλ§Œ 된 λ³€μˆ˜λ₯Ό 연산을 μ§„ν–‰ν•˜λ©΄ μ΄ˆκΈ°ν™”λ˜μ§€ μ•Šμ€ λ³€μˆ˜κ°€ μžˆλ‹€κ³  μ˜ˆμ™Έλ₯Ό λ°œμƒμ‹œν‚¨λ‹€.

int num1 = 10;
int num2;

int sum = num1 + num2;
System.out.println(sum);

// μ˜ˆμ™Έ λ°œμƒ
java: variable num2 might not have been initialized

Variable Scope / Lifetime

λ³€μˆ˜λŠ” μ„ μ–Έλ˜λŠ” μœ„μΉ˜, μ ‘κ·Ό μ œν•œμžμ— 따라 μ—‘μ„ΈμŠ€ν•  수 μžˆλŠ” λ²”μœ„κ°€ 달라진닀.
Javaμ—μ„œλŠ” λͺ¨λ“  μ‹λ³„μžκ°€ μ •μ μœΌλ‘œ λ²”μœ„ν™”λ˜λ©° ν•¨μˆ˜ 호좜 μŠ€νƒκ³ΌλŠ” 독립적이닀.

λ³€μˆ˜ μŠ€μ½”ν”„

  1. 멀버 λ³€μˆ˜ (Class Level Scope)

    클래슀 내에 μ„ μ–Έλ˜λŠ” λ³€μˆ˜λ‘œ μ ‘κ·Ό μ œν•œμžλ₯Ό 톡해 λ‹€μ–‘ν•œ 클래슀, λ©”μ†Œλ“œμ—μ„œ μ΄ˆκΈ°ν™” κ°€λŠ₯ν•˜λ©° Setter, Getter λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•΄ μ΄ˆκΈ°ν™” κ°€λŠ₯ν•˜λ‹€.

     public static class MemberVar {
         private int num1; // Seetter / Getter λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•΄μ„œ μ΄ˆκΈ°ν™”ν•˜κ³ , μž¬μ‚¬μš©
         public boolean check; // ν•΄λ‹Ή 클래슀 내에 μ–΄λ–€ λ©”μ†Œλ“œμ—μ„œλ„ 호좜
         final private String talk = "Hello World!"; // μƒμˆ˜μ˜ 의미
    
         // method1 λ³€μˆ˜μ—μ„œ μ ‘κ·Όμ œν•œμžκ°€ static으둜 μ„ μ–Έλœ checkλ₯Ό 
         // trueκ°’μœΌλ‘œ μ΄ˆκΈ°ν™”ν•œ ν›„, ν•΄λ‹Ή 값을 λ°˜ν™˜ν•œλ‹€.
         boolean method1() {check = true; return check;}
     }
  2. 지역 λ³€μˆ˜ (Method Level Scope)

    λ©”μ†Œλ“œ λ‚΄μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λ‘œ ν•΄λ‹Ή λ©”μ†Œλ“œ 내에 λ™μΌν•œ μ΄λ¦„μ˜ 멀버 λ³€μˆ˜κ°€ μ‚¬μš©λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄ 같은 μ΄λ¦„μ˜ 지역 λ³€μˆ˜λ₯Ό μ„ μ–Έν•  수 μžˆλ‹€. ν•˜μ§€λ§Œ 본질적으둜 멀버 λ³€μˆ˜μ™€ 지역 λ³€μˆ˜μ˜ 데이터가 μ €μž₯된 λ©”λͺ¨λ¦¬ μ£Όμ†ŒλŠ” 같지 μ•Šλ‹€.

     public static class MethodVar {
         int num1;
    
         public int method1() {
             int num1 = 1;
             int num2 = 2;
             int result = num1 + num2;
             return result;
         }
    
         public int method2() {
             num1 = 20;
     //  num1을 같은 μ΄λ¦„μ˜ μƒˆλ‘œμš΄ λ³€μˆ˜λ‘œ μ„ μ–Έν•˜λ©΄ μƒˆλ‘œ μ„ μ–Έλœ λ³€μˆ˜μ˜ 데이터가 λ°˜ν™˜λœλ‹€.
     //  int num2 = 10 + num1;
             return num2;
         }
     }

λ³€μˆ˜ λΌμ΄ν”„νƒ€μž„

  • λ³€μˆ˜μ˜ λΌμ΄ν”„νƒ€μž„μ€ ν•΄λ‹Ή λ³€μˆ˜κ°€ μ–Έμ œ μ΄ˆκΈ°ν™”λ˜λŠ”μ§€ ν˜Ήμ€ μ΄ˆκΈ°ν™”, μ„ μ–Έλœ μœ„μΉ˜κ°€ 어디에 μ‘΄μž¬ν•˜λŠ”μ§€μ— 따라 달라진닀.
  • λ³€μˆ˜μ˜ λΌμ΄ν”„νƒ€μž„μ€ Garbage Collectionκ³Ό 연관이 κΉŠλ‹€.
  • 멀버 λ³€μˆ˜(μΈμŠ€ν„΄μŠ€ λ³€μˆ˜)의 경우,
    클래슀λ₯Ό μƒμ„±μžλ₯Ό 톡해 μ •μ˜ ν–ˆμ„ 경우 ν”„λ‘œκ·Έλž¨μ„ μ’…λ£Œν•  λ•Œ κΉŒμ§€ λ©”λͺ¨λ¦¬ 상에 μ‘΄μž¬ν•œλ‹€.
  • 지역 λ³€μˆ˜(둜컬 λ³€μˆ˜)의 경우,
    μ •μ˜λœ ν΄λž˜μŠ€μ— μ˜ν•΄ λ©”μ†Œλ“œκ°€ ν˜ΈμΆœλ˜μ–΄ μ‹€ν–‰λœ ν›„ μ’…λ£Œλ˜λ©΄ λ©”λͺ¨λ¦¬ μƒμ—μ„œ 사라진닀.

Type Inference / var Type

νƒ€μž… μΆ”λ‘ μ΄λž€ μ½”λ“œ μž‘μ„± λ‹Ήμ‹œ, 데이터 νƒ€μž…μ΄ 정해지지 μ•Šμ•˜μ§€λ§Œ μ»΄νŒŒμΌλŸ¬κ°€ κ·Έ νƒ€μž…μ„ μœ μΆ”ν•˜λŠ” 것이닀.

νƒ€μž… 좔둠은 Java 10μ—μ„œ μΆ”κ°€λœ μ΄λ‹ˆμ…œλΌμ΄μ €λ₯Ό μ‚¬μš©ν•˜λŠ” 둜컬 λ³€μˆ˜μ˜ μœ ν˜• 좔둠이닀.

Java 9κ°€μ§€λŠ” 둜컬 λ³€μˆ˜μ˜ μœ ν˜•μ„ λͺ…μ‹œμ μœΌλ‘œ μ–ΈκΈ‰ν•΄μ•Ό ν–ˆκ³ , 둜컬 λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” μ΄λ‹ˆμ…œλΌμ΄μ €μ™€ ν˜Έν™˜λ˜λŠ”μ§€ 확인해야 ν–ˆλ‹€.

Java 10μ—μ„œ νƒ€μž… 좔둠이 μΆ”κ°€λ˜λ©΄μ„œ λ³€μˆ˜μ˜ 데이터 μœ ν˜•μ„ λͺ…μ‹œν•˜μ§€ μ•Šμ•„λ„ λœλ‹€. ν•˜μ§€λ§Œ λ³€μˆ˜λ₯Ό μΈμŠ€ν„΄μŠ€λ‘œ μ •μ˜ν•˜κ³  μ»΄νŒŒμΌλŸ¬μ—κ²Œ μ–΄λ– ν•œ 데이터 νƒ€μž…μœΌλ‘œ μΈμ‹ν•˜κ²Œ ν•  것인지 λͺ…μ‹œν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.
(마치 Javascript의 var κ°™λ‹€.)

λ˜ν•œ, μ΄λŸ¬ν•œ νƒ€μž… 좔둠은 μ΄λ‹ˆμ…œλΌμ΄μ €κ°€ μžˆλŠ” 둜컬 λ³€μˆ˜μ—μ„œλ§Œ μ‚¬μš©ν•  수 있으며 멀버 λ³€μˆ˜(μΈμŠ€ν„΄μŠ€ λ³€μˆ˜)λ‚˜ λ©”μ†Œλ“œ νŒŒλΌλ―Έν„°, 리턴 μœ ν˜• λ“±μ—μ„œ μ‚¬μš©ν•  수 μ—†λ‹€.

public class TypeInference_varType {
    public static void main(String[] args) {
        // 일반적으둜 데이터 νƒ€μž…μ„ μ„ μ–Έν•œ λ³€μˆ˜
        String str1 = "Good Bye, Java 9";

        // 데이터 νƒ€μž…μ„ μ„ μ–Έν•˜μ§€ μ•Šμ€ var νƒ€μž… λ³€μˆ˜
        var str2 = "Hello, Java 10";
        System.out.println("str1은 λ¬Έμžμ—΄ νƒ€μž… 데이터인가? = " + str1 instanceof String);
        System.out.println("str1 = " + str1);
        System.out.println("str2은 λ¬Έμžμ—΄ νƒ€μž… 데이터인가? = " + str2 instanceof String);
        System.out.println("str2 = " + str2);

        // μΌλ°˜μ μ€ HashMap μ„ μ–Έ
        Map<Integer, String> map1 = new HashMap<>();

                // varλ₯Ό μ΄μš©ν•œ HashMap μ„ μ–Έ
        var map2 = new HashMap<Integer, String>();
        map1.put(1, "신짱ꡬ");
        map2.put(1, "신짱아");

        System.out.println("map1 = " + map1.get(1));
        System.out.println("map2 = " + map2.get(1));
    }
}

Data Type Conversion

Data Type Casting

  • κ°•μ œλ‘œ νƒ€μž…μ„ λ³€ν™˜ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.
  • κ°•μ œ νƒ€μž… λ³€ν™˜μ€ μΊμŠ€νŒ… μ—°μ‚°μž κ΄„ν˜Έ()λ₯Ό μ‚¬μš©ν•œλ‹€.
int a = 10;
int b = 3;
// 이 λ•Œ, a / b μ—°μ‚°μ˜ 값이 double 데이터 νƒ€μž…μœΌλ‘œ λ³€ν™˜λ˜λŠ” 것은 μ•„λ‹ˆλ‹€.
// a λ³€μˆ˜ μ•žμ— μΊμŠ€νŒ… μ—°μ‚°μž κ΄„ν˜Έκ°€ μžˆμœΌλ‹ˆ a λ³€μˆ˜λ₯Ό double νƒ€μž…μ˜ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•œλ‹€.
double c = (double) a / b;

Data Type Promotion

  • μžλ™μœΌλ‘œ νƒ€μž… λ³€ν™˜μ΄ μΌμ–΄λ‚˜λŠ” 것을 μ˜λ―Έν•œλ‹€.
  • μžλ™ νƒ€μž… λ³€ν™˜μ€ κ°’μ˜ ν—ˆμš© λ²”μœ„κ°€ μž‘μ€ νƒ€μž…μ΄ ν—ˆμš© λ²”μœ„κ°€ 큰 νƒ€μž…μœΌλ‘œ μ €μž₯될 λ•Œ λ°œμƒν•œλ‹€.
byte byteValue = 10;
int intValue = byte; // byte νƒ€μž… 데이터가 μžλ™μœΌλ‘œ int둜 λ³€ν™˜

// float νƒ€μž… 데이터가 long νƒ€μž… 데이터와 μ—°μ‚°ν•˜λ©΄μ„œ long νƒ€μž…μœΌλ‘œ λ³€ν™˜
double doubleValue = 1.4f + 0.2;

 

Primitive / Reference Type

Primitive Type

  • κΈ°λ³Έν˜• 데이터 νƒ€μž…μœΌλ‘œ 총 8개 μ‘΄μž¬ν•œλ‹€.
    • μ •μˆ˜ν˜• 데이터 νƒ€μž… → byte, short, char, int, long
    • μ‹€μˆ˜ν˜• 데이터 νƒ€μž… → float, double
    • λ…Όλ¦¬ν˜• 데이터 νƒ€μž… → boolean
  • 기본값을 κ°€μ§€λŠ” 데이터 νƒ€μž…μœΌλ‘œ null이 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • Generic을 μ΄μš©ν•  λ•Œ ν•„μš”ν•œ Wrapper Classκ°€ μ‘΄μž¬ν•œλ‹€.
  • κΈ°λ³Έν˜• 데이터 νƒ€μž…μ€ μŠ€λ ˆλ“œμ˜ Stack λ©”λͺ¨λ¦¬μ— μ €μž₯ν•œλ‹€.
이름 λ©”λͺ¨λ¦¬ μ‚¬μš© 크기 μ €μž₯λ˜λŠ” κ°’μ˜ ν—ˆμš© λ²”μœ„
byte 1byte / 8bit -128 ~ 127
short 2byte / 16bit -32,768 ~ 32,767
char 2byte / 16bit 0 ~ 65535
int 4byte / 32bit -2,147,483,648 ~ 2,147,483,647
long 8byte / 64bit -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float 4byte / 32bit (1.4 X 10의 -45제곱) ~ (3.4 X 10의 38제곱)
double 8byte / 64bit (4.9 X 10의 -324제곱) ~ (1.8 X 10의 308제곱)

Reference Type

  • μ°Έμ‘°ν˜• 데이터 νƒ€μž…μœΌλ‘œ κΈ°λ³Έν˜• 데이터 νƒ€μž…μ„ μ œμ™Έν•œ λͺ¨λ“  νƒ€μž…μ„ λœ»ν•œλ‹€.
  • μ΅œμƒμœ„ 클래슀인 java.lang.Objectλ₯Ό 상속 λ°›λŠ”λ‹€.
  • μ°Έμ‘°ν˜• 데이터 νƒ€μž…(객체)λŠ” Heap λ©”λͺ¨λ¦¬μ— μ €μž₯되며 HotSpot을 κΈ°μ€€μœΌλ‘œ μ•„λ¬΄λŸ° 데이터가 μ—†λŠ” 객체라도 8byteλ₯Ό μ°¨μ§€ν•œλ‹€.
  • new, Reflection λ“±μœΌλ‘œ 객체λ₯Ό μƒμ„±ν•œλ‹€.
  • String은 char νƒ€μž…μ˜ Array ν˜•νƒœλ‘œ, ArrayλŠ” Reference Type이기 λ•Œλ¬Έμ— String도 μ°Έμ‘°ν˜• 데이터 νƒ€μž…μ΄λ‹€.

 

Literal

Literal은 데이터 κ·Έ 자체λ₯Ό μ˜λ―Έν•œλ‹€.
int a = 1;
  • aλŠ” λ³€μˆ˜λͺ…, 1은 λ¦¬ν„°λŸ΄μ΄λ‹€.
    즉, 1κ³Ό 같이 λ³€ν•˜μ§€ μ•ŠλŠ” 데이터(boolean, char, double, long, int..)λ₯Ό λ¦¬ν„°λŸ΄μ΄λΌκ³  ν•œλ‹€.
  • 더 μ‰½κ²Œ μ„€λͺ…ν•˜μžλ©΄ λ³€μˆ˜λ‚˜ μƒμˆ˜λŠ” λ©”λͺ¨λ¦¬μ— ν• λ‹Ήλœ 곡간을 μ˜λ―Έν•˜λŠ” 반면, λ¦¬ν„°λŸ΄μ€ 곡간에 μ €μž₯된 데이터 자체λ₯Ό μ˜λ―Έν•œλ‹€.

μ •μˆ˜ λ¦¬ν„°λŸ΄

  1. 2μ§„μˆ˜
    • 0b λ˜λŠ” 0B둜 μ‹œμž‘ν•œλ‹€.
    • 0κ³Ό 1둜 κ΅¬μ„±λœλ‹€.
  2. 8μ§„μˆ˜
    • 0으둜 μ‹œμž‘ν•˜κ³  0 ~ 7 숫자둜 κ΅¬μ„±λœλ‹€.
  3. 16μ§„μˆ˜
    • 0x λ˜λŠ” 0X둜 μ‹œμž‘ν•œλ‹€.
    • 0 ~ 9, A ~ F λ˜λŠ” a ~ f둜 κ΅¬μ„±λœλ‹€.
// 2μ§„μˆ˜
int lit2 = 0b11010;
System.out.println(lit2);

// 8μ§„μˆ˜
int lit8 = 013;
System.out.println(lit8);

// 16μ§„μˆ˜
int lit16 = 0xB3;
System.out.println(lit16);

 

Array

1차원 λ°°μ—΄

// 1차원 λ°°μ—΄
// λ°°μ—΄ 길이만 μ„ μ–Έ -> λ°μ΄ν„°λŠ” μ„ μ–Έν•˜μ§€ μ•ŠμŒ
int[] arr1_1 = new int[5];

// 길이만 μ„ μ–Έλœ 배열에 데이터 μ‚½μž…
for (int i = 0; i < arr1_1.length; i++) {
    arr1_1[i] = i;
}

// 각 μΈλ±μŠ€μ— λ“€μ–΄κ°ˆ 데이터 μ΄ˆκΈ°ν™”μ™€ λ™μ‹œμ— λ°°μ—΄ μ„ μ–Έ
int[] arr1_2 = {0, 1, 2, 3, 4};

2차원 λ°°μ—΄

// 각 μΈλ±μŠ€μ— λ“€μ–΄κ°ˆ 데이터 μ΄ˆκΈ°ν™”μ™€ λ™μ‹œμ— λ°°μ—΄ μ„ μ–Έ
int[] arr1_2 = {0, 1, 2, 3, 4};

// 2차원 λ°°μ—΄
// ν–‰κ³Ό μ—΄μ˜ 길이만 μ„ μ–Έ -> λ°μ΄ν„°λŠ” μ„ μ–Έν•˜μ§€ μ•ŠμŒ
int[][] arr2_1 = new int[5][5];

// ν–‰κ³Ό μ—΄μ˜ ν‹€λ§Œ μ„ μ–Έλœ 배열에 데이터 μ‚½μž… 
for (int i = 0; i < arr2_1.length; i++) {
    for (int j = 0; j < arr2_1[i].length; j++) {
        arr2_1[i][j] = j;
    }
}

// 각 ν–‰μ˜ 열에 데이터 μ΄ˆκΈ°ν™”μ™€ λ™μ‹œμ— λ°°μ—΄ μ„ μ–Έ
int[][] arr2_2 = {{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {10, 11, 12, 13, 14}, {15, 16, 17, 18, 19}, {20, 21, 22, 23, 24}};

 

References

Variable / Primitive / Reference / Literal

  • 혼자 κ³΅λΆ€ν•˜λŠ” μžλ°”
 

혼자 κ³΅λΆ€ν•˜λŠ” μžλ°”

이 책은 λ…ν•™μœΌλ‘œ μžλ°”λ₯Ό λ°°μš°λŠ” μž…λ¬Έμžκ°€ ‘κΌ­ ν•„μš”ν•œ λ‚΄μš©μ„ μ œλŒ€λ‘œ’ ν•™μŠ΅ν•  수 μžˆλ„λ‘ κ΅¬μ„±ν–ˆλ‹€. ‘무엇을’ ‘μ–΄λ–»κ²Œ’ ν•™μŠ΅ν•΄μ•Ό 할지 μ‘°μ°¨ λͺ¨λ₯΄λŠ” μž…λ¬Έμžμ˜ λ§‰μ—°ν•œ λ§ˆμŒμ„ μ‚΄νŽ΄, κ³Όμ™Έ μ„ 

www.hanbit.co.kr

Type Inference

  • νƒ€μž… μΆ”λ‘ κ³Ό var νƒ€μž…
 

Java 10 LocalVariable Type-Inference | Baeldung

A quick and practical guide to Java 10 Local Variable Type Inference.

www.baeldung.com

 

'Programming > Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

F004 - Reference Type  (0) 2021.05.08
F003 - Access Modifier  (0) 2021.05.06
F002 - Primitive Type  (0) 2021.05.06
F001 - psvm  (0) 2021.05.06
TIL_W01 | JVM, Bytecode, JDK, JRE, JIT Compiler  (0) 2020.12.14