μλ°μμ λ°μ΄ν° νμ μ ν¬κ² μμ(Primitive) νμ κ³Ό μ°Έμ‘°(Reference) νμ μ΄ μλ€.
μ μ, μ€μ, λ¬Έμ, λ Όλ¦¬ 리ν°λ΄κ³Ό κ°μ μ€μ λ°μ΄ν° κ°μ μ μ₯νλ νμ
| μ’ λ₯ | λ°μ΄ν° νμ | ν¬κΈ°(byte) | κΈ°λ³Έ κ° | λ²μ |
|---|---|---|---|---|
| λ Όλ¦¬ν | boolean | 1byte | false | true, false |
| λ¬Έμν | char | 2byte | \u0000 | 0 ~ 65,535 |
| μ μν | byte | 1byte | 0 | -128~ 127 |
| μ μν | short | 2byte | 0 | -2^15 ~ 2^15 - 1 |
| μ μν | int | 4byte | 0 | -2^31 ~ 2^31 - 1 |
| μ μν | long | 8byte | 0L | -2^63 ~ 2^63 - 1 |
| μ€μν | float | 4byte | 0.0F | 1.4E-45 ~ 3.4028235E38 |
| μ€μν | double | 8byte | 0.0 | 4.9E-324 ~ 1.7976931348623157E308 |
-
boolean : cμ κ°μ΄ trueμ falseλ₯Ό νννλλ° 1bitλ§ μμΌλ©΄ λ κ² κ°μ§λ§ Javaλ λ°μ΄ν° μ΅μλ²μκ° 1Byteμ΄κΈ° λλ¬Έμ booleanλ 1byteμ ν¬κΈ°λ₯Ό κ°λλ€.
-
char : cμ κ²½μ° 1byteμ ν¬κΈ°λ₯Ό κ°μ§λ§ Javaλ
μ λμ½λλ₯Ό νννκΈ° μν΄ κΈ°λ³Έ 2byteλ₯Ό κ°μΌλ©°, Javaμ μμ λ°μ΄ν°νμ μ€ μ μΌνκ² unsignedννμ΄λ€. -
μ μν : JVMμ μ€νμ΄ κΈ°λ³Έμ μΌλ‘ νΌμ°μ°μλ₯Ό 4byte λ¨μλ‘ μ μ₯νκΈ° λλ¬Έμ intλ³΄λ€ μμ μλ£νμ κ°μ κ³μ°ν λ intνμΌλ‘ νλ³νλμ΄μ μ°μ°μ΄ μνλκΈ° λλ¬Έμ κ΅³μ΄ byteμ shortνμ μ¬μ©ν νμλ μμ΄ λ³΄μΈλ€.
JVMμ intνμ μ μνμ κΈ°λ³Έ λ°μ΄ν° νμ μΌλ‘ μ¬μ©νκΈ° λλ¬Έμ longμ μ¬μ©νκ³ μ νλ€λ©΄ λ€μ
l,Lμ λΆμ¬μΌ νλ€.Java8 μ΄νλΆν°λ Integerμ Longμ Wrapperν΄λμ€μ unsigned κ΄λ ¨ λ©μλκ° μΆκ°λμ΄ unsigned ννλ μ΄μ©μ΄ κ°λ₯νλ€.
-
μ€μν : doubleνμ΄ κΈ°λ³Έ λ°μ΄ν° νμ μΌλ‘ floatνμ μ¬μ©νκ³ μ νλ€λ©΄ λ€μ
f,Fλ₯Ό λΆμ¬ μ£Όμ΄μΌ νλ€.λ©λͺ¨λ¦¬ ν¬κΈ°λ int,longκ³Ό κ°μ§λ§ μ€μνμ
λΆλμμμ λ°©μμΌλ‘ μ μ₯νμ¬ λ λ§μ λ²μλ₯Ό μ μ₯ ν μ μλ€.floatμ κ²½μ° λΆνΈ(1bit)+μ§μ(8bit)+κ°μ(23bit), doubleμ κ²½μ° λΆνΈ(1bit)+μ§μ(11bit)+κ°μ(52bit)λ‘ λλμ΄ μ μ₯νκ² λμ΄ ννλ²μκ° κ³ μ μμμ λ°©μλ³΄λ€ λμ§λ§ μ€μ ννμ μμ΄ κ·Όμ¬μΉλ₯Ό νννκΈ° λλ¬Έμ μ€μ°¨κ° μ‘΄μ¬νλ λ¨μ μ κ°κ³ μλ€.
(0.1μ 1000λ² λνκ² λλ©΄ 100μ΄ λμ΄μΌ νμ§λ§ 100.09999... μ κ°μ κ·Όμ¬κ°μ΄ μΆλ ₯λλ€.)
floatμ κ²½μ° μμμ μλ 9μ리, doubleμ κ²½μ° 18μ리κΉμ§ ννμ΄ κ°λ₯νλ€.
κ°μ λ°μ΄ν° νμ μμλ int,long / float,doubleνμΌλ‘ λλ μ΄μ λ λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©νκΈ° μν΄μ μ΄λ€.
λ μ‘λλ° μ μ‘λ μΉΌμ μ¬μ©νλ κ²μ λλΉμ΄κΈ° λλ¬Έμ΄λ€.
μμ΄ μλ―Έ κ·Έλλ‘ μ°Έμ‘° νμ
μΌλ‘ μ μ₯λλ κ°μ΄ μμλ°μ΄ν°μ λ€λ₯΄κ² μ€μ κ°μ΄ μλ λ©λͺ¨λ¦¬ μ£Όμκ°μ΄ μ μ₯λλ νμ
μΌλ‘ λ¬Έμμ΄,λ°°μ΄,enum,class,interfaceλ±μ΄ μλ€.
JVMμ Runtime Data Areaμ€ μ°Έμ‘° νμ
λ³μλ λ°νμ μ€ν μμμ μ€μ κ°μ²΄λ ν μμμ μ μ₯λμ΄ κ°μ²΄λ₯Ό μ¬μ©ν λ λ§λ€ μ°Έμ‘° λ³μμ μ μ₯λ κ°μ²΄μ μ£Όμλ₯Ό λΆλ¬μ μ¬μ©νλ€.
μμμ λ§νκ²κ³Ό κ°μ΄ μ€μ λ°μ΄ν°λ ν μμμ μ μ₯λλ©° λ°μ΄ν° ν¬κΈ°λ μ ν΄μ Έμμ§ μκ³ λμ μΌλ‘ ν λΉλλ©° μ°Έμ‘°νλ λ³μκ° μλ€λ©΄ Garbage Collectorκ° μ κ±°νμ¬ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬νλ€.
-
Boxing : μμ νμ μ μ°Έμ‘° νμ μΌλ‘ λ³νμν€λ κ²
-
Unboxing : μ°Έμ‘° νμ μ μμ νμ μΌλ‘ λ³ν μν€λ κ²
Auto BoxingκΈ°λ₯μΌλ‘ λͺ μμ μΌλ‘ μμ±νμ§ μμλ μλμΌλ‘ Boxing μ ν΄μ€λ€.
int i= 1; Integer integer = i; //Auto Boxing
-
nullμ ν¬ν¨ν μ μλ€.int example = null; //error Integer integer = null;
-
μ λ€λ¦ νμμμ μ¬μ©ν μ μλ€List<int> list; //error List<Integer> list;
-
λ°μ΄ν° μ κ·Ό μλκ° μμνμ μ λΉν΄ λ리λ€
μμνμ μ
μ€νμμ λ°λ‘ μ¬μ©μ΄κ°λ₯νλ μ°Έμ‘°νμ μμ€νμμ λ©λͺ¨λ¦¬μ£Όμλ₯Ό κ°κ³νμ μ κ·Όνλ λ°©λ²μΌλ‘ κ°μ νμν λλ§λ€Unboxingμ κ±°μ³μΌνκΈ° λλ¬Έμ μ κ·Όμλκ° λλ €μ§κ² λλ€.νμ§λ§, ν° ν¬κΈ°μ λ°μ΄ν° μ κ·Όμ΄ μλ μ λ¬,볡μ¬μ κ²½μ°μλ μμνμ 보λ€λ μ°Έμ‘°νμ μ΄ μ’μ μλ μλ€.
λ©λͺ¨λ¦¬μ μ μ₯λμ΄ λ³νμ§ μλ κ°μ λ»νλ©° μ»΄νμΌ νμμ μ μλμ΄ κ·Έλλ‘ μ¬μ©νλ κ°
λμ μ°μ°μμ λͺ¨λ μ°νμ κ°λ€μ λ³΄ν΅ λ¦¬ν°λ΄μ΄λΌκ³ λΆλ₯Έλ€.
boolean isTrue = true;
char c = 'C';
int i = 1001;
long il = 1001L;
float f = 1.1234F;
double d = 1.1234;
String str = "hello";μ κ°μ΄ μ°νμ μλ λ΄κ° μ μν κ°λ€λ‘ λ³νμ§ μλ κ°λ€μ μλ―Ένλ€.
(λ°μ΄ν° νμ
) (λ³μλͺ
1),(λ³μλͺ
2)... ;
--Example --
int i;
int j,k,l;
μμ κ°μ΄ νλμ λ³μλ₯Ό μ μΈμ΄ κ°λ₯νκ³ λμμ μ¬λ¬κ°λ κ°λ₯νλ€.
-
μ μΈ ν μ΄κΈ°ν
int i; i =10;
-
μ μΈκ³Ό λμμ μ΄κΈ°ν
int i=10;
λ³μμ μ€μ½νλ ν΄λΉ λ³μμ μ κ·Όν μ μλ λ²μλ₯Ό λνλ΄λ κ²μΌλ‘ μ€κ΄νΈ {}λ₯Ό ν΅ν΄ μ€μ½νλ₯Ό λλλ λΈλ‘ μ€μ½νμ΄κ³ ν΄λΉ λ³μκ° μΈμ κΉμ§ μ‘΄μ¬νλμ§κ° λΌμ΄ν νμμ΄λ€.
μ§μλ³μμ λΌμ΄ννμκ³Ό μ€μ½νλ μ½λ λΈλμ κ΅νλλ€.
public class example {
public static void main(String[] args){
int i =1;
if(true){
int j=2;
System.out.println(i);
}
System.out.println(j); //error
}
}μμ μ½λμμ ifλ΄μμ iλ₯Ό μ κ·Όν λ ifμ μ½λ λΈλμμ iλ₯Ό μ°Ύκ³ μμΌλ©΄ κ·Έλ³΄λ€ μμ λΈλμΈ class λΈλμμ iλ₯Ό μ°Ύμ μ κ·Όμ΄ κ°λ₯νμ§λ§ jλ ifλ΄μ μ μΈλμ΄ ifμ λΈλ({})μ κ΅νλκΈ° λλ¬Έμ ifλ°μ λμμλ μ κ·Όμ΄ λΆκ°λ₯νκ³ ifμ λΈλμ΄ λλλ©΄μ ifμ κ΅νλμ΄μλ μ§μ λ³μλ€μ μ€νμμμμ μλ©Έλλ€.
λ νΌλ°μ€ νμ
μ μ₯μμ μ μ₯λλ ν μμλ°μ΄ν°μ λΌμ΄ν νμμ κ°λΉμ§ 컬λ ν°κ° κ΄λ¦¬νλ€.
public class example {
public static void main(String[] args){
String str = "Test";
System.out.println(str);
str = null;
System.out.println(str);
}
}strμ TestλΌλ νμμμ μ μ₯λ λ°μ΄ν°λ₯Ό μ°Έμ‘°νλ λ³μμΈλ°, str=null;λΆλΆμ ν΅ν΄ Testλ₯Ό κ°λ¦¬ν€λ λ³μλ λμ΄μ μ‘΄μ¬νμ§ μκ² λμ΄ κ°λΉμ§ 컬λ ν°κ° νμμμμ TestλΌλ λ°μ΄ν°λ₯Ό μ κ±°νκ² λλ€.
μ΄μ²λΌ μ°Έμ‘° νμ
μ ν μμμ μ μ₯λλ λ°μ΄ν°λ μ무λ μ°Έμ‘°νμ§ μκ² λμμλ μλ©Έλλ€.
νΉμ λ°μ΄ν° νμ μ κ°μ λ€λ₯Έ λ°μ΄ν° νμ μ κ°μ λ³ν νλ κ²
-
νμ νλ‘λͺ¨μ : μμ μ ννλ²μλ₯Ό λͺ¨λ ν¬ν¨ν λ°μ΄ν° νμ μΌλ‘ λ³ν
byte -> int, int-> longμ κ°μ΄ λ ν° λ²μλ₯Ό κ°λ λ°μ΄ν° νμ μΌλ‘ λ³νμ κ²½μ°κ° μνκ±°λint -> floatμ κ°μ΄ κ°μ ν¬κΈ°μ¬λ ννλ²μλ₯Ό λͺ¨λ ν¬ν¨ν μ μλ€λ©΄ νλ‘λͺ¨μ μ΄λ€.float -> longμ κ²½μ° λ°μ΄ν° ν¬κΈ°λ‘λ§ λ³΄λ©΄ νλ‘λͺ¨μ μ΄λΌκ³ μκ°ν μ μμ§λ§, longμ μ€μλ₯Ό μ μ₯ν μ μκΈ° λλ¬Έμ λ°μ΄ν° μμ€μ΄ μΌμ΄λ νλ‘λͺ¨μ μ΄λΌκ³ ν μ μκ³μΊμ€νμ΄λΌκ³ λ³Ό μ μλ€.long l = 1234L; float f = l;
μμ μ½λμ κ°μ΄
νλ‘λͺ¨μ μ κ²½μ° λ°μ΄ν° μμ€μ΄ λ°μνμ§ μκ³ μλμΌλ‘ νλ³νμ μμΌμ€λ€. -
νμ μΊμ€ν : μμ μ ν¬ν λ²μλ₯Ό λͺ¨λ ν¬ν¨νμ§ λͺ»ν λ°μ΄ν° νμ μΌλ‘ λ³ν
int->byte, long -> intμ κ°μ΄ ν° λ°μ΄ν°ν¬κΈ°μμ μμ ν¬κΈ°μ λ°μ΄ν° νμ μΌλ‘ λ³νν λλfloat -> longκ³Ό κ°μ΄ λ°μ΄ν° ννλ²μκ° λ¬λΌμ§λ κ²½μ°μ μνλ©° λ°μ΄ν° μμ€μ΄ μΌμ΄ λλ€.float f = 1.234f; long l = f;
μμ μ½λμ κ°μ΄ μλμΌλ‘ μΊμ€ν μ νλ €κ³ νλ€λ©΄ λ°μ΄ν° μμ€μ΄ λ°μν μ μκΈ° λλ¬Έμ
μ»΄νμΌνμμ μ€λ₯λ₯Ό λ°μ μν¨λ€.κ·Έλλ νλ³νμ νκ³ μΆλ€λ©΄
κ°μ νλ³νμ μ¬μ©ν μ μμ§λ§ λ°μ΄ν° μμ€μ΄ λ°μνκ² λλ€.float f = 1.234f; long l = (long)f; System.out.println(l); // 1
λ°°μ΄ λ³μ μ μΈκ³Ό λμμ μ΄κΈ°νλ₯Ό ν΅ν΄ μ μΈ νλ λ°©μκ³Ό newλ₯Ό μ΄μ©νλ λ°©μμ΄ μλ€.
class ArrayExample {
public static void main(String[] args) {
//1μ°¨μ λ°°μ΄
int[] array1 = {1, 2, 3, 4, 5};
int[] array2;
array2 = new int[5];
array2[0]=1;
array2[1]=2;
array2[2]=3;
array2[3]=4;
array2[4]=5;
//2μ°¨μ λ°°μ΄
int[][] array3 = {{1, 2}, {3, 4}};
int[][] array4;
array4 = new int[2][2];
array4[0][0] = 1;
array4[0][1] = 2;
array4[1][0] = 3;
array4[1][1] = 4;
}
}1μ°¨μ λ°°μ΄μ λ³μ(array1,array2)λ μ€νμμμ μ‘΄μ¬νλ©° ν μμμ μ£Όμκ°μ κ°λλ€.
ν μμμλ λ°μ΄ν° νμ
ν¬κΈ°μ μμ κ°μμ λ§κ² ν λΉλμ΄ μ¬μ©μ΄λλ€.
2μ°¨μ λ°°μ΄μ λ³μ(array3,array4)λ μ€νμμμ μ‘΄μ¬νλ©° ν μμμ μ£Όμκ°μ κ°λλ€.
ν μμμλ μ€μ λ°μ΄ν°κ°λ€κ³Ό 2μ°¨μλ°°μ΄μ κ° νμ μμμ£Όμλ₯Ό κ°λ μ£Όμκ°λ€μ΄ μ‘΄μ¬νλ€.
Java 10 μ΄νλΆν° μ겨λ κΈ°λ₯μΌλ‘ μ»΄νμΌλ¬κ° κ°μ λ³΄κ³ λ°μ΄ν° νμ
μ΄ λ¬΄μμΈμ§ μΆλ‘ νλ κ²μΌλ‘ Jsμ var,letμ λΉμ·νλ€.
public class example{
public static void main(String[] args){
HashMap<String,Integer> hashMap = new HashMap<>();
}
}μμ κ°μ΄ μ°νμ <>μμ κ°μ μ
λ ₯νμ§ μμλ μ’νμ κ°μ λ³΄κ³ νμ
μ μΆλ‘ νμ¬ μμ±νλ κ²½μ°
JSμ var,letκ³Ό κ°μ΄ μΆλ‘ ν λ°μ΄ν° νμ
μΌλ‘ μκ°ν μ μλλ°, λ€λ₯Έμ μΌλ‘ μ§μ λ³μμ μ μΈκ³Ό λμμ κ°μ΄ ν λΉ λμ΄μΌ νλ€λ μ μμ letκ³Ό constλ₯Ό ν©μΉ λλμ΄λ€.
public class example{
var i = 10; //error
public static void main(String[] args){
var j; //error
}
}