โ๏ธ ๊น์ํ์ ์ค์ ์๋ฐ - ์ค๊ธ 1ํธ ์ ๋ฃ๊ณ ์์ฑํ๋ ๋ณต์ต ๋ธ๋ก๊ทธ ์ ๋๋ค.
0. ๋ฐฐ๊ฒฝ
์๋ฐ๋ฅผ ์ฒ์ ๋ฐฐ์ธ ๋ int, double ๊ณผ ๊ฐ์ ๊ธฐ๋ณธํ์ ๋จผ์ ๋ฐฐ์ด๋ค
ํ์ง๋ง ๊ธฐ๋ณธํ์๋ ๋ช ํํ ํ๊ณ๊ฐ ์กด์ฌํ๋ค
๊ทธ๋ฌ๋ฉด ์ด๋ฐ ํ๊ณ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผํ ๊น !!!?
1. ๊ธฐ๋ณธํ์ ํ๊ณ
๊ธฐ๋ณธํ์ ํฌ๊ฒ ๋๊ฐ์ง์ ํ๊ณ๊ฐ ์กด์ฌํ๋ค.
- ๊ฐ์ฒด๊ฐ ์๋ ๐
โ๏ธ
- ๊ธฐ๋ณธํ ๋ฐ์ดํฐ๋ ๊ฐ์ฒด๊ฐ ์๋๋ค
- ์๋ฐ๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ๋ฐ, ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ฅ์ ์ ์ด๋ฆด ์ ์๋ค
- null ๊ฐ์ ๊ฐ์ง์ง ๋ชปํจ ๐
โ๏ธ
- ๊ธฐ๋ณธํ ๋ฐ์ดํฐ ํ์ ์ null ๊ฐ์ ๊ฐ์ง ์ ์๋ค
- ๋ฐ์ดํฐ๊ฐ ์์์ด๋ผ๋ ์ํ๋ฅผ ํํํ๋ ค๋ฉด int ์ ๊ฒฝ์ฐ -1 ์ด๋ 0 ๋ฑ์ ์ฌ์ฉํด์ผ ํ๋ค
์ด๋ฌํ ํ๊ณ๋ฅผ ๋ฒ์ด๋๊ธฐ ์ํด์ ์ง์ ํด๋์ค๋ฅผ ๋ง๋ค์ด๋ณด์ !!!
2. ์ง์ ๊ธฐ๋ณธํ ํด๋์ค ๋ง๋ค๊ธฐ
๋จ์ํ๊ฒ ๊ธฐ๋ณธํ ํด๋์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ๊ธฐ๋ณธํ์ class ๋ก ๊ฐ์ธ์ฃผ๋ฉด ๋๋ค
public class MyInteger {
private final int value;
public MyInteger(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public int compareTo(int value, int target) {
if (value < target) {
return -1;
} else if (value > target) {
return 1;
} else {
return 0;
}
}
}
int value ๋ฅผ private final ๋ก ๋ง๋ค๊ณ ๋ฉ์๋๋ฅผ ํตํด์
- getValue() : value ์กฐํ ๋ฉ์๋
- compareTo() : value ๋น๊ต ๋ฉ์๋
๋ ๊ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค
์ด๋ฅผ ํตํด์ int๋ฅผ ๊ฐ์ฒด๋ก ๋ค๋ฃฐ ์ ์๊ณ , null ๊ฐ์ ํตํด ์์์ด๋ผ๋ ์ํ๋ฅผ ํ์ํ ์ ์๊ฒ ๋์๋ค !!
3. ์๋ฐ ๋ํผ ํด๋์ค
์ด๋ ๊ฒ ํ๋์ฉ ๋ง๋ค ํ์ ์์ด ์๋ฐ์์๋ ๋ํผ ํด๋์ค๋ฅผ ์ ๊ณตํ๋ค
๋ํผ ํด๋์ค๋ ๊ฐ๋จํ๊ฒ ๊ธฐ๋ณธํ์ ๊ฐ์ฒด ๋ฒ์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค !!
๊ธฐ๋ณธํ | ๋ํผ ํด๋์ค |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
๊ฐ๊ฐ์ ๊ธฐ๋ณธํ์ ๋ํผ ํด๋์ค์ ๋งคํ๋๋ค
๋ํผ ํด๋์ค ์์ฑ
Integer newInteger = new Integer(10);
Integer integerObj = Integer.valueOf(10);
Long longObj = Long.valueOf(100);
Double doubleObj = Double.valueOf(10.5);
- ๋ํผ ํด๋์ค๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ new ํค์๋๋ก ์์ฑํ ์ ์๋ค
- ํ์ง๋ง, vaueOf ๋ฐฉ๋ฒ์ด ๋ ๊ถ์ ๋๋๋ฐ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ์ ์บ์ฑํ๊ธฐ ๋๋ฌธ์ด๋ค
- ๋ํ ๋ํผ ํด๋์ค์ ๊ฐ์ ๋ถ๋ณ์ด๋ค
๋ํผ ํด๋์ค ๊ฐ ์ฝ๊ธฐ
int intValue = integerObj.intValue();
long longValue = longObj.longValue();
- ๊ธฐ๋ณธํValue() ์ ํ์์ผ๋ก ๋ํผ ํด๋์ค ๊ฐ์ ์ฝ์ ์ ์๋ค
๋ํผ ํด๋์ค ๋น๊ต
Integer newInteger = new Integer(10);
Integer integerObj = Integer.valueOf(10);
System.out.println("๋น๊ต");
System.out.println("==: " + (newInteger == integerObj));
System.out.println("equlas: "+(newInteger.equals(integerObj)));
- == ์ผ๋ก ๋น๊ตํ์ ๋ false, equals ๋ก ๋น๊ตํ์ ๋ true
- newInteger ์ integerObj ๋ ๋ค๋ฅธ ์ฐธ์กฐ๊ฐ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ == ๋ก ๋น๊ตํ๋ฉด false ๊ฐ ๋์ค๊ณ
- value ๊ฐ 10์ผ๋ก ๋์ผํ๊ธฐ ๋๋ฌธ์ equals ๋ก ๋น๊ตํ์ ๋ true ๊ฐ ๋์จ๋ค
Integer newInteger = Integer.valueOf(10);
Integer integerObj = Integer.valueOf(10);
System.out.println("๋น๊ต");
System.out.println("==: " + (newInteger == integerObj));
System.out.println("equlas: "+(newInteger.equals(integerObj)));
- == ์ผ๋ก ๋น๊ตํ์ ๋ true, equals ๋ก ๋น๊ตํ์ ๋ true
- Integer.valueOf ๋ก ๋ง๋๋ ๊ฒฝ์ฐ ์บ์ฑ๋ ๊ฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ == ๋ก ๋น๊ตํ์ ๋๋ true ๊ฐ ๋์จ๋ค
4. ๋ฐ์ฑ & ์ธ๋ฐ์ฑ
๋ฐ์ฑ (Boxing)
- ๊ธฐ๋ณธํ → ๋ํผํด๋์ค
- ๋ฐ์ค์ ๋ฌผ๊ฑด์ ๋ฃ์ ๊ฒ ๊ฐ๋ค๊ณ ํด์ ๋ฐ์ฑ์ด๋ผ๊ณ ํ๋ค
- new Integer() ์ ์ถํ ์ญ์ ๋ ์์ ์ด๊ธฐ ๋๋ฌธ์ Integer.valueOf() ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค
- Integer.valueOf() ์๋ ์ฑ๋ฅ ์ต์ ํ ๊ธฐ๋ฅ์ด ์๋ค. ๊ฐ๋ฐ์๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ -128 ~ 127 ๋ฒ์์ Integer ํด๋์ค๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํ๋ค.
์ธ๋ฐ์ฑ (Unboxing)
- ๋ํผ ํด๋์ค → ๊ธฐ๋ณธํ
- ๋ฐ์ค์ ๋ค์ด์๋ ๋ฌผ๊ฑด์ ๊บผ๋ด๋ ๊ฒ๊ฐ๋ค๊ณ ํด์ ์ธ๋ฐ์ฑ์ด๋ผ๊ณ ํ๋ค
์คํ ๋ฐ์ฑ / ์ธ๋ฐ์ฑ (Autoboxing / AutoUnboxing)
- ์ปดํ์ผ๋ฌ๊ฐ ๊ฐ๋ฐ์ ๋์ valueOf, xxxValue() ๋ฑ์ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ค๋ค
- ์คํ ๋ฐ์ฑ / ์ธ๋ฐ์ฑ์ผ๋ก ๊ธฐ๋ณธํ๊ณผ ๋ํผํ์ ์๋ก ํธํ๊ฒ ๋ณํํ ์ ์๋ค
Integer boxedValue = value;
Integer boxedValue = Integer.valueOf(value);
int unboxedValue = boxedValue;
int unboxedValue = boxedValue.intValue();
5. Class ํด๋์ค
ํด๋์ค์ ์ ๋ณด (๋ฉํ๋ฐ์ดํฐ) ๋ฅผ ๋ค๋ฃจ๋๋ฐ ์ฌ์ฉํ๋ค
์ฆ, ์คํ ์ค์ธ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ํ์ํ ํด๋์ค์ ์์ฑ์ ๋ฉ์๋์ ๋ํ ์ ๋ณด๋ฅผ ์กฐํํ๊ณ ์กฐ์ํ ์ ์๋ค
์ฃผ์ ๊ธฐ๋ฅ
- ํ์ ์ ๋ณด ์ป๊ธฐ : ํด๋์ค์ ์ด๋ฆ, ์ํผํด๋์ค, ์ธํฐํ์ด์ค, ์ ๊ทผ ์ ํ์ ๋ฑ๊ณผ ๊ฐ์ ์ ๋ณด๋ฅผ ์กฐํ
- ๋ฆฌํ๋ ์
: ํด๋์ค์ ์ ์๋ ๋ฉ์๋, ํ๋, ์์ฑ์ ๋ฑ์ ์กฐํํ๊ณ ์ด๋ค์ ํตํด ๊ฐ์ฒด ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ฑฐ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๋ฑ์ ์์
-> ์ด๊ฑด ์ถํ์ ๋ฐฐ์๋ ๋๋ค !! - ๋์ ๋ก๋ฉ๊ณผ ์์ฑ : Class.forName() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค๋ฅผ ๋์ ์ผ๋ก ๋ก๋ํ๊ณ , newInstance() ๋ฉ์๋๋ฅผ ํตํด ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑ
- ์ ๋ ธํ ์ด์ ์ฒ๋ฆฌ : ํด๋์ค์ ์ ์ฉ๋ ์ ๋ ธํ ์ด์ ์ ์กฐํํ๊ณ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ ์ ๊ณต
ํด๋์ค ์กฐํ
// 1. ํด๋์ค์์ ์กฐํ
Class clazz = String.class;
// 2. ์ธ์คํด์ค์์ ์กฐํ
Class clazz1 = new String().getClass();
// 3. ๋ฌธ์์ด๋ก ์กฐํ
Class clazz2 = Class.forName("java.lang.String");
Class ํด๋์ค์ ์ฃผ์ ๊ธฐ๋ฅ
- getDeclaredFields() : ํด๋์ค์ ๋ชจ๋ ํ๋ ์กฐํ
- getDeclaredMethods() : ํด๋์ค์ ๋ชจ๋ ๋ฉ์๋ ์กฐํ
- getSuperclass() : ํด๋์ค์ ๋ถ๋ชจ ํด๋์ค ์กฐํ
- getInterface() : ํด๋์ค์ ์ธํฐํ์ด์ค๋ค ์กฐํ
6. System ํด๋์ค
์์คํ ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํ๋ค
์ ๊ณต ๋ฉ์๋ | ์ค๋ช |
System.currentTimeMillis() | ํ์ฌ ์๊ฐ์ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ์ ๊ณต |
System.nanoTime | ํ์ฌ ์๊ฐ์ ๋๋ ธ์ด ๋จ์๋ก ์ ๊ณตํ๋ค |
System.getenv() | OS์์ ์ค์ ํ ํ๊ฒฝ ๋ณ์์ ๊ฐ ์กฐํ |
System.getProerties() | ํ์ฌ ์์คํ ์์ฑ |
System.getProperty(String key) | ํน์ ์์ฑ |
System.exit(int status) | ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๊ณ , OS์ ํ๋ก๊ทธ๋จ ์ข ๋ฃ์ ์ํ ์ฝ๋๋ฅผ ์ ๋ฌ |
System.arraycopy | ์์คํ ๋ ๋ฒจ์์ ์ต์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๋ณต์ฌ ์ฐ์ฐ์ ์ฌ์ฉ |
'๐ฑ ์ธํ๋ฐ > โ๏ธ ๊น์ํ์ ์ค์ ์๋ฐ - ์ค๊ธ 1ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฐ Object ํด๋์ค (0) | 2025.09.01 |
---|---|
์๋ฐ ์์ธ์ฒ๋ฆฌ ์ด์ ๋ฆฌ (1) | 2025.07.11 |
์๋ฐ ์ด๊ฑฐํ ENUM ์ด์ ๋ฆฌ (2) | 2025.07.10 |
์๋ฐ ์ค์ฒฉ ํด๋์ค์ ๋ด๋ถ ํด๋์ค (3) | 2025.07.09 |
์๋ฐ ๋ ์ง์ ์๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์ ๋ฆฌ (0) | 2025.07.07 |