Primitive type μ’ λ₯
νμ
μ’
λ₯ μ©λ κΈ°λ³Έ κ°
-----------------------------------------------------------------------------------------------
boolean 1 bit false (μ«μ νΈν X)
char 2 bytes '\u0000' ('a'(λ¬Έμ) != "a"(λ¬Έμμ΄ ; κ°μ²΄))
| byte 1 byte 0 β² λͺ
μμ νλ³ν (Casting)
| short 2 bytes 0 |
| int(default) 4 bytes 0 |
| long 8 bytes 0L |
| float 4 bytes 0.0f |
묡μμ νλ³ν βΌ double(default) 8 bytes 0.0d |
(Promotion)
Reference type = All type - Primitive type
non-Primitive type
javaλ 2Bytes체μ μ μ λμ½λλ₯Ό μ§μνλ€.
μ λμ½λλ u0000 ~ uffffκΉμ§ ννλ¨
u00[**]μμ [**]μ 1λ°μ΄νΈλ ASCIIμ½λ
char ch = 'A';
char ch = 65;
char ch = '\u0041'; //Aμ μ λμ½λνκΈ° (4*16^1+1*16^0 = 65)
Wrapper Class ? Primitive Typeμ Boxingνμ¬ κ°μ²΄ννλ ν΄λμ€!
8κ°μ Primitive Typeμ κ°κ° λμλκ² λ€ μ‘΄μ¬ν¨.
java 5.0 λΆν° μ¬μ©μλ€μ΄ intμ Integerκ° μλ‘ νΈνλλ κ² μ²λΌ λκ»΄μ§κ² Auto Boxing, Auto UnBoxingμ μ§μν¨.
λ°λΌμ javaμ λͺ¨λ λ°μ΄ν°νμ μ κ°μ²΄λ‘ ννμ΄ κ°λ₯ν΄μ§λ€. κ·Έλμ μ΅μμ νμ μΈ Object Typeμ λ€νμ± λλ¬Έμ μ‘΄μ¬.
Integer i = new Integer(10);
νμ§λ§
String λ κ°μ²΄μΈ κ²μ²λΌ, μμ°ν Wrapper Classλ κ°μ²΄μμ μμΌλ©΄ μλλ€.κ²½μ°μ λ°λΌ, μλ μ΄λ―Έμ§μ κ°μ μν©λ λ°μν μ μλ€.
equalsλ‘ κ°μ λμΌνμ§λ§ == κ° μλ‘ λ€λ₯΄λ€λ κ²°κ³Όλ₯Ό λ³΄μΌ λλ μλ€.
Literal : μλ° μ½λμ μ§μ 'κ°'μ λͺ
μνλ©΄ 리ν°λ΄λ‘ λΆλ₯ν¨
μμ€ μ½λμ κ³ μ λ κ°μ λννλ μ©μ΄
Literal μ’ λ₯
Primitive νμ κ³Ό κ°μ΄ μ μ, μ€μ, λ¬Έμ, λ Όλ¦¬, λ¬Έμμ΄ λ¦¬ν°λ΄μ΄ μλ€.
1. μ μ 리ν°λ΄
10μ§μ, 8μ§μ, 16μ§μ, 2μ§μ ννλ‘ ννν κ°μ΄λ€.
int a = 15;
int b = 015;
int c = 0x15;
int d = 0b0101;
μ μ 리ν°λ΄μ int νμ΄ defaultμ΄λ€.
long νμ 리ν°λ΄μ μ«μ λ€μ L λλ lμ λΆμ¬ νμνμ¬μΌ νλ€. ( long a = 26L; )
2. μ€μ 리ν°λ΄
μμμ ννλ μ§μ ννλ‘ ννν κ°μ΄λ€.
μ€μ 리ν°λ΄λ λ§μ°¬κ°μ§λ‘ double νμ΄ defaultμ΄λ€.
double a = 0.1234;
double b = 1234E-4;
a = 0.1234 μ b = (123410(-4)λ λμΌν κ°
long νμ 리ν°λ΄μ μ«μ λ€μ L λλ lμ λΆμ¬ νμνμ¬μΌ νλ―μ΄, float νμ 리ν°λ΄λ fλ₯Ό κΌ λΆμ¬μ€μΌνλ€. ( float h = 0.1234f; )
3. λ¬Έμ 리ν°λ΄
λ¨μΌ μΈμ©λΆνΈ(' ')λ‘ λ¬Έμλ₯Ό νννλ€.
char a = 'H';
char b = 'ν';
char c = \uae00;(μ λμ½λκ°) // \uλ€μμ 4μ리 16μ§μλ‘, 2λ°μ΄νΈμ μ λμ½λ(Unicode))
μλμ κ°μ΄ κ°κ°μ κΈ°λ₯μ κ°μ§λ νΉμλ¬Έμ 리ν°λ΄λ μ‘΄μ¬νλ€.
4. λ Όλ¦¬ 리ν°λ΄
boolean νμ λ³μμ μΉννκ±°λ 쑰건문μ μ΄μ©νλ€.
boolean flag1 = true;
//Javaμμλ λ€λ₯Έ μΈμ΄μ λ¬λ¦¬ 0 κ³Ό 1μ΄μ μκ° λ
Όλ¦¬ 리ν°λ΄μ΄ λ μ μλ€.
boolean flag2 = 1; // μ»΄νμΌ μλ¬!
λ°λμ true, falseλ§μ΄ λ Όλ¦¬ 리ν°λ΄μ΄ λλ€.
5. λ¬Έμμ΄ λ¦¬ν°λ΄
λ¬Έμμ΄μ Primitive typeμ΄ μλκ³ μμ°ν Reference type κ°μ²΄μ΄λ€.
μ΄μ€ μΈμ©λΆνΈ (" ")λ‘ λ¬Έμμ΄μ νννλ€.
String str1 = new String("a"); // identityHashCode : 1908981452
String str2 = new String("a"); // identityHashCode : 234231844
String str3 = "a"; // identityHashCode : 4332211222
String str4 = "a"; // identityHashCode : 4332211222
public class Person{
// λ©€λ² λ³μ μ μΈ
// μΈμ€ν΄μ€ λ³μ μ μΈ
int n, m, k;
// ν΄λμ€ λ³μ μ μΈ
int static s;
// μμ±μλ‘ μΈμ€ν΄μ€ λ³μ μ΄κΈ°ν
Person(int n, int m, int k){
this.n = n;
this.m = m;
thos.k = k;
}
// μΈμ€ν΄μ€ λ³μ λΈλ μ΄κΈ°ν
{
n = 10;
m = 20;
k = 30;
}
// ν΄λμ€ λ³μ μ€νν± λΈλ μ΄κΈ°ν
static {
s = 40;
}
// λ©μλ λ΄ λ‘컬 λ³μ μ μΈ λ° μ΄κΈ°ν
void declare(){
int a; // μ μΈ
a = 10; // μ΄κΈ°ν
int b = 10; // μ μΈκ³Ό λμμ μ΄κΈ°ν
}
}
λ³μλ₯Ό μ μΈν λ final ν€μλλ₯Ό λΆνμ final λ³μλ‘ μ μΈν μ μλ€.
final λ³μλ λ°λ‘ κ°μ μ΄κΈ°ν νκ±°λ μμ±μ λλ μ΄κΈ°ν λΈλμμ μ΄κΈ°ν λμ΄μΌνλ€.
final λ³μλ 4κ°μ§λ‘ ꡬλΆν μ μλ€.
1. λ‘컬 primitive type λ³μ : finalλ‘ μ μΈνλ©΄ νλ² μ΄κΈ°νλ λ³μλ λ³κ²½ν μ μλ μμκ°μ΄ λλ€.
2. λ‘컬 reference type λ³μ : finalλ‘ μ μΈνλ©΄ κ·Έ λ³μμ λ€λ₯Έ μ°Έμ‘° κ°μ μ§μ ν μ μκ² λμ΄, primitive typeκ³Ό λμΌνκ² νλ² μ°μ¬μ§ λ³μμ μ¬λ³κ²½μ΄ λΆκ°ν΄μ§λ€.
λ¨, ν΄λΉ μΈμ€ν΄μ€ μμ²΄κ° λ³κ²½ λΆκ°νλ€λ μλ―Έλ μλλΌ ν΄λΉ μ°Έμ‘° λ³μκ° λ€λ₯Έ μΈμ€ν΄μ€λ‘ μ°Έμ‘° λ³κ²½μ΄ λΆκ°λ₯ ν κ²μ΄μ§, μΈμ€ν΄μ€μ μμ±μ λ³κ²½ κ°λ₯νλ€.
3. λ©μλ μΈμ λ³μ : λ©μλ μΈμλ‘ final ν€μλλ₯Ό λΆμΈ λ³μλ , λ©μλ μμμ λ³μκ°μ λ³κ²½ν μ μλ€.
public void changeVar(final int var) {
//var = 1; //final μΈμλ λ©μλμμμ λ³κ²½ν μ μμ
}
4. ν΄λμ€ λ©€λ² λ³μ : finalλ‘ μ μΈνλ©΄ μμκ°μ΄ λκ±°λ write-once νλλ‘ ν λ²λ§ μ°μ΄κ² λλ€. finalλ‘ μ μΈνλ©΄ μ΄κΈ°νλλ μμ μ μμ±μ λ©μλκ° λλκΈ° μ μ μ΄κΈ°νκ° λμ§λ§, fianl staticμ΄λ κ·Έλ₯ finalμ΄λμ λ°λΌμ μ΄κΈ°ν μμ μ΄ λ¬λΌμ§λ€.
public class InitVar{
//static final λ©€λ² λ³μ
static final inx a = 1; // κ°κ³Ό ν¨κ» μ μΈμ
static final int b;
static {
b = 2; // static μ΄κΈ°ν λΈλμμ
}
//instance final λ©€λ² λ³μ
final int c = 3; // κ°κ³Ό ν¨κ» μ μΈμ
final int d;
final int e;
{
d = 4; // μΈμ€ν΄μ€ μ΄κΈ°ν λΈλμμ
}
InitVar(int e){
this.e = e; // μμ±μμμ
}
}
μΈμ€ν΄μ€ λ³μ
ν΄λμ€ λ³μ
λ‘컬 λ³μ
Primitive Type
- μΊμ€ν : ν° λ°μ΄ν° νμ μμ μμ λ°μ΄ν° νμ μΌλ‘ ν λ³ν (κ°μ μ μΌλ‘ μμμ λͺ μμ νλ³νμ ν΄μ£Όμ§ μμΌλ©΄ μλ¬ λ°μ)
- νλ‘λͺ¨μ : μμ λ°μ΄ν° νμ μμ ν° λ°μ΄ν° νμ μΌλ‘ ν λ³ν (μλ νλ³ν)
int a = 10;
short b = (short) a; // Casting
double c = a; // Promition
Reference Type
μμ κ΄κ³μΈ κ²½μ° μΊμ€ν κ°λ₯.
- Up Casting : λΆλͺ¨ ν΄λμ€λ λͺ μμ μΈ νμ μΊμ€ν μμ΄ μμκ³Ό μ°κ²° ν μ μλ€.
- Down Casting : μμ ν΄λμ€λ λͺ μμ μΈ νμ μΊμ€ν μ΄ μλ€λ©΄ λΆλͺ¨μ μ°κ²°ν μ μλ€.
// Person <- Studentλ‘ ν΄λμ€ μμ κ΄κ³κ° μλ€κ³ κ°μ
Person p = new Student(); // Up Casting
Student s = (Student)p; // Down Castinh
/*
* μ°Έκ³ λ‘ μ‘°μ μ°Έμ‘°λ³μλ‘ μμ κ°μ²΄λ₯Ό μμ±νκ³ λ λ€μ
* μμ κ°μ²΄λ‘ μΊμ€ν
ν΄μ£Όλκ²μ λ¬Έμ μμΌλ,
* μ‘°μ κ°μ²΄λ₯Ό μμ±νλ©΄μ μμ κ°μ²΄λ‘ μΊμ€ν
νλκ²μ μλ¬κ° λ°μνλ€.
*/
Person p = new Person();
Student s = (Student)p; // μ»΄νμΌ μλ¬
Reference Type (μ¦, λ°°μ΄λ κ°μ²΄)
μ₯μ
λ°μ΄ν° κ΄λ¦¬ μ©μ΄ν¨
μ²λ¦¬μ±λ₯ ν¨μ¨μ
λ¨μ
λ°°μ΄ μμ±
// 1μ°¨μ λ°°μ΄ μμ±
λ°μ΄ν°νμ
[] μ°Έμ‘°λ³μ = new λ°μ΄ν°νμ
[size];
// 2μ°¨μ λ°°μ΄ μμ±
λ°μ΄ν°νμ
[][] μ°Έμ‘°λ³μ = new λ°μ΄ν°νμ
[size][]; // μλ‘ μ μΈνλ λ°°μ΄μ μ¬μ΄μ¦λ§ λͺ
μν΄μ€λ λλ€.
λ°°μ΄ μ¬μ©
// 1μ°¨μ λ°°μ΄ μ¬μ©
λ°μ΄ν°νμ
λ³μ = μ°Έμ‘°λ³μ[index];
// 2μ°¨μ λ°°μ΄ μ¬μ©
λ°μ΄ν°νμ
λ³μ = μ°Έμ‘°λ³μ[index1][index2];
indexλ 첫λ²μ§Έ μμ κΈ°μ€ offset κ°λ
κ·Έλ κΈ° λλ¬Έμ, 0 ~ κΈΈμ΄-1 κΉμ§κ° μ ν¨μΈλ±μ€κ° λ¨
λ°°μ΄ μ΄κΈ°ν
// 1μ°¨μ λ°°μ΄ μ΄κΈ°ν
λ°μ΄ν°νμ
[] μ°Έμ‘°λ³μ = new λ°μ΄ν°νμ
[]{κ°1,κ°2,,,,};
λ°μ΄ν°νμ
[] μ°Έμ‘°λ³μ = {κ°1,κ°2,,,,};
//μ΄κΈ°νλ₯Ό ν λλ λ€μ΄κ° μ΄κΈ°κ°μ κ°μμ λ°λΌ μλμΌλ‘ sizeκ° κ²°μ λκΈ° λλ¬Έμ μ§μ sizeλ₯Ό λͺ
μνμ§ μλλ€.
λ°μ΄ν°νμ
[] μ°Έμ‘°λ³μ = new λ°μ΄ν°νμ
[size]{κ°1,κ°2,,,,}; // μ»΄νμΌ μλ¬
// 2μ°¨μ λ°°μ΄ μ΄κΈ°ν
λ°μ΄ν°νμ
[][] μ°Έμ‘°λ³μ = new λ°μ΄ν°νμ
[][]{{κ°1, κ°2,,,,}, {κ°1, κ°2,,,,}, {κ°1, κ°2,,,,}};
λ°μ΄ν°νμ
[][] μ°Έμ‘°λ³μ = {{κ°1, κ°2,,,,}, {κ°1, κ°2,,,,}, {κ°1, κ°2,,,,}};
Java 10λΆν° var ν€μλλ₯Ό ν΅ν΄ λ³μλ₯Ό μ μΈν μ μκ² λλ€.
μ§μ λ³μλ‘λ§ μ¬μ© κ°λ₯νκ³ λ°λμ μ μΈκ³Ό λμμ μ΄κΈ°νλ₯Ό ν΄μΌ νλ©°, nullμ λμ ν μ μλ€.
λμ λ°μΈλ©μ²λΌ λ°νμμ varλ₯Ό μ€μ νμ μΌλ‘ μΉνν κ² κ°μ§λ§, μ€μ νμ μΌλ‘ μΉννλ κ²μ μ»΄νμΌ νμμ΄λ€.
public static void main(String[] args){
var intNum = 10; // int
var longNum = 10L; // long
var floatNum = 0.1f; // float
var doubleNum = 0.1; // double
var bool = true; // boolean
var str = "String"; // String
}