1~3. Object ํด๋์ค์ equals()
Object ํด๋์ค
- ๋ชจ๋ ํด๋์ค์ ์ต๊ณ ์กฐ์. ์ค์ง 11๊ฐ์ ๋ฉ์๋๋ง์ ๊ฐ๊ณ ์์
- notify(), wait() ๋ฑ์ ์ฐ๋ ๋ ๊ด๋ จ ๋ฉ์๋
eqauls(Object obj)
- ๊ฐ์ฒด ์์ (this)๊ณผ ์ฃผ์ด์ง ๊ฐ์ฒด(obj)๋ฅผ ๋น๊ต
- Object ํด๋์ค์ equals()๋ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ๋น๊ต(์ฐธ์กฐ๋ณ์ ๊ฐ ๋น๊ต)
class Value {
int value;
Value(int value) {
this.value = value;
}
// equals()๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํด์ ์ฃผ์๊ฐ ์๋ value๋ฅผ ๋น๊ต
@Override
public boolean equals(Object obj) {
// ์ฐธ์กฐ๋ณ์ ํ๋ณํ ์ ์๋ ํญ์ instanceof ๋ก ํ์ธ
if (!(obj instanceof Value)) {
return false;
}
Value v = (Value)obj;
return this.value == v.value;
}
}
public class Ex9_1 {
public static void main(String[] args) {
Value v1 = new Value(10);
Value v2 = new Value(10);
// v1๊ณผ v2์ ๊ฐ์ ๊ฐ์ง๋ง equals ๊ฐ ๋น๊ตํ๋ ๊ฐ์ ์ฐธ์กฐ๋ณ์์ด๊ธฐ ๋๋ฌธ์ false ๋ฐํ
System.out.println(v1.equals(v2));
}
}
eqauls(Object obj)์ ์ค๋ฒ๋ผ์ด๋ฉ
- ์ธ์คํด์ค ๋ณ์(iv)์ ๊ฐ์ ๋น๊ตํ๋๋ก equals()๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉ
class Person {
long id;
public boolean equals(Object obj) {
if (obj instanceof Person) {
return id == ((Person)obj).id;
} else {
return false;
}
}
Person(long id) {
this.id = id;
}
}
4~6. hashCode(), toString()
hashCode()
- ๊ฐ์ฒด์ ํด์์ฝ๋๋ฅผ ๋ฐํํ๋ ๋ฉ์๋
- Object ํด๋์ค์ hashCode()๋ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ int๋ก ๋ณํํด์ ๋ฐํ
- equals()๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ๋ฉด, hashCode()๋ ์ค๋ฒ๋ผ์ด๋ฉํด์ผ ํจ
- equals() ๊ฒฐ๊ณผ๊ฐ true ๋ฉด ๋ ๊ฐ์ฒด์ ํด์์ฝ๋๋ ๊ฐ์์ผ ํ๊ธฐ ๋๋ฌธ
- System.identityHashCode(Object obj)๋ Object ํด๋์ค์ hashCode()์ ๋์ผ
toString(), toString()์ ์ค๋ฒ๋ผ์ด๋ฉ
- toString() : ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๊ธฐ ์ํ ๋ฉ์๋
public String toString() {
return getClass.getName() + "@" + Integer.toHexString(hashCode());
}
class Card {
String kind;
int number;
Card() {
this("SPADE", 1);
}
Card(String kind, int number) {
this.kind = kind;
this.number = number;
}
// equals()๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉ ํ๊ธฐ ๋๋ฌธ์ hashCode()๋ ์ค๋ฒ๋ผ์ด๋ฉ
@Override
public int hashCode() {
return Objects.hash(kind, number);
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Card)) {
return false;
}
return this.kind.equals(((Card)obj).kind) && this.number == ((Card)obj).number;
}
@Override
public String toString() {
return "kind : " + kind + " number : " + number;
}
}
public class Ex9_4 {
public static void main(String[] args) {
Card c1 = new Card();
Card c2 = new Card();
System.out.println(c1.equals(c2));
System.out.println(c1.toString());
System.out.println(c2.toString());
System.out.println(c1.hashCode());
System.out.println(c2.hashCode());
}
}
7~10. String ํด๋์ค
String ํด๋์ค
- String ํด๋์ค = ๋ฐ์ดํฐ(
char[]
) + ๋ฉ์๋(๋ฌธ์์ด ๊ด๋ จ)
public final class String implements java.io.Serializable, Comparable {
private char[] value;
...
}
- ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์๋ ๋ถ๋ณ(immutable) ํด๋์ค
String a = "a";
String b = "b";
a = a + b; // "a" ๋ ์ฌ๋ผ์ง๊ณ "ab" ๊ฐ ์ฐธ์กฐ๋ณ์ a ์ ๋ค์ ํ ๋น๋จ
- ๋ง์
์ฐ์ฐ์(+)๋ฅผ ์ด์ฉํ ๋ฌธ์์ด ๊ฒฐํฉ์ ์ฑ๋ฅ์ด ๋จ์ด์ง
- ๋ฌธ์์ด์ ๊ฒฐํฉ์ด๋ ๋ณ๊ฒฝ์ด ์ฆ๋ค๋ฉด, ๋ด์ฉ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ StringBuffer ์ฌ์ฉ
String str = "hello";
str = str + " world";
Java ์์ String
ํ์
์ ๋ถ๋ณ ๊ฐ์ฒด๋ค. ์ฆ, ์ ์ฝ๋์์ "hello"
๊ฐ "hello world"
๊ฐ ๋๋ ๊ฒ์ด ์๋ "hello"
์ "hello world"
๊ฐ์ฒด๊ฐ ๋ฐ๋ก ์์ฑ๋๋ ๊ฒ์ด๋ค.
str
๋ณ์๊ฐ "hello"
์์ "hello world"
๋ฅผ ์ฐธ์กฐํ๊ฒ ๋๋ฉด "hello"
๊ฐ์ฒด๋ ์ฐธ์กฐ๋์ง ์๋ ์ํ๊ฐ ๋์ด GC ์ ๋์์ด ๋๋ค.
String str = "";
for (int i = 0; i < 10000; i++) {
str += i;
}
๋ง์ฝ ์์ ๊ฐ์ ์ฝ๋๊ฐ ์คํ๋๋ค๋ฉด ์ฐธ์กฐ๋์ง ์๋ String
๊ฐ์ฒด 10000๊ฐ๊ฐ Heap ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐจ์งํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ฑ๋ฅ์ ์น๋ช
์ ์ผ ์ ์๋ค.
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100; i++) {
sb.append(i);
}
String str = sb.toString();
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ๋ณ์ฑ์ ๊ฐ์ง๋ StringBuilder
์ StringBuffer
๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ ์ฝ๋ ์ฒ๋ผ .append()
.delete()
๋ฑ์ API ๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผ ๊ฐ์ฒด ๋ด์์ ๋ฌธ์์ด์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. ๋๋ฌธ์ ๋ณ๊ฒฝ์ด ๋น๋ฒํ ๋ก์ง์ ์ฌ์ฉํด์ผ ํ ๊ฒฝ์ฐ StringBuilder
์ StringBuffer
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ด๋ค.
๋ฌธ์์ด์ ๋น๊ต
String str = โabc;
์String str = new String(โabcโ);
์ ๋น๊ต
String str1 = "abc"; // ๋ฌธ์์ด ๋ฆฌํฐ๋ด "abc"์ ์ฃผ์๊ฐ str1์ ์ ์ฅ๋จ
String str2 = "abc"; // ๋ฌธ์์ด ๋ฆฌํฐ๋ด "abc"์ ์ฃผ์๊ฐ str2์ ์ ์ฅ๋จ
String str3 = new String("abc"); // ์๋ก์ด String ์ธ์คํด์ค ์์ฑ
String str4 = new String("abc"); // ์๋ก์ด String ์ธ์คํด์ค ์์ฑ
str1 == str2 // true;
str1.equals(str2) // true;
str3 == str4 // false;
str3.equals(str4) // true;
๋ฌธ์์ด ๋ฆฌํฐ๋ด
- ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ํ๋ก๊ทธ๋จ ์คํ ์ ์๋์ผ๋ก ์์ฑ๋จ (constant pool์ ์ ์ฅ)
- ๊ฐ์ ๋ด์ฉ์ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ํ๋๋ง ๋ง๋ค์ด์ง
๋น ๋ฌธ์์ด ("", empty String)
- ๋ด์ฉ์ด ์๋ ๋ฌธ์์ด. ํฌ๊ธฐ๊ฐ 0์ธ charํ ๋ฐฐ์ด์ ์ ์ฅํ๋ ๋ฌธ์์ด
- ํฌ๊ธฐ๊ฐ 0์ธ ๋ฐฐ์ด์ ์์ฑํ๋ ๊ฒ์ ์ด๋ ํ์ ์ด๋ ๊ฐ๋ฅ
- ๋ฌธ์์ ๋ฌธ์์ด์ ์ด๊ธฐํ
String s = null;
char c = '\u0000';
// ์ ๋ณด๋ค ์๋์ ์ฝ๋๊ฐ ๋์
Stirng s = "";
char c = ' ';
11. String ์์ฑ์
String ํด๋์ค์ ์์ฑ์์ ๋ฉ์๋
// String(String s) ๊ฑฐ์ ์์
String s = new String("Hello");
// String(char[] value)
char[] c = {'H', 'e', 'l', 'l', 'o'};
String s = new String(c);
// String(StringBuffer buf)
StringBuffer sb = new StringBuffer("Hello");
String s = new String(sb);
// char charAt(int index)
String s = "Hello";
String n = "0123456";
char c = s.charAt(1); // 'e'
cahr c2 = n.charAt(1); // '1'
// int compareTo(String str)
int i = "aaa".compareTo("aaa"); // i = 0
int i2 = "aaa".compareTo("bbb"); // i2 = -1
int i3 = "bbb".compareTo("aaa"); // i3 = 1
// String concat(String str)
String s = "Hello";
String s2 = s.concat(" World"); // s2 = "Hello World"
// boolean contains(CharSequence s)
String s = "abcdefg";
boolean b = s.contains("bc"); // b = true
// boolean endsWith(String suffix)
String file = "Hello.txt";
boolean b = file.endsWith("txt"); // b = true
// boolean equals(Object obj)
String s = "Hello";
boolean b = s.equals("Hello"); // true
boolean b2 = s.equals("hello"); // false
// boolean equalsIgnoreCase(String str)
String s = "Hello";
boolean b = s.equalsIgnoreCase("HELLO"); // true
boolean b2 = s.equalsIgnoreCase("heLLo"); // true
// int indexOf(int ch)
String s = "Hello";
int idx1 = s.indexof('o'); // 4
int idx2 = s.indexof('k'); // -1
// int indexOf(int ch, int pos)
String s = "Hello";
int idx1 = s.indexof('e', 0); // 1
int idx2 = s.indexof('e', 2); // -1
// int indexOf(String str)
String s = "ABCDEFG";
int idx = s.indexOf("CD"); // 2
// int lastIndexOf(int ch)
String s = "java.lang.Object";
int idx1 = s.lastIndexOf('.'); // 9
int idx2 = s.indexOf('.'); // 4
// int lastIndexOf(String str)
String s = "java.lang.java";
int idx1 = s.lastIndexOf('java'); // 10
int idx2 = s.indexOf('java'); // 0
// int length()
String s = "Hello";
int length = s.length(); // 5
// String[] split(String regex)
String animals = "dog,cat,bear";
String arr[] = animals.split(","); // {"dog", "cat", "bear"}
// String[] split(String regex, int limit)
String animals = "dog,cat,bear";
String arr[] = animals.split(",", 2); // {"dog", "cat,bear"}
// boolean startsWith(String prefix)
String s = "java.lang.Object";
boolean b = s.startsWith("java"); // true
boolean b2 = s.startsWith("lang"); // false
// String substring(int begin, int end)
String s = "java.lang.Object";
String c = s.substring(10); // "Object"
String p = s.substring(5, 9); // "lang"
// String toLowerCase()
String s = "Hello";
String s1 = s.toLowerCase(); // "hello"
// String toUpperCase()
String s = "Hello";
String s1 = s.toUpperCase(); // "HELLO"
// String trim()
String s = " Hello World ";
String s1 = s.trim(); // "Hello World"
// static String valueOf(๊ธฐ๋ณธํ)
String b = String.valueOf(true); // "true"
String c = String.valueOf('a'); // "a"
String i = String.valueOf(100); // "100"
12~14. StringJoiner, ๋ฌธ์์ด๊ณผ ๊ธฐ๋ณธํ
join()๊ณผ StringJoiner
- join()์ ์ฌ๋ฌ ๋ฌธ์์ด ์ฌ์ด์ ๊ตฌ๋ถ์๋ฅผ ๋ฃ์ด์ ๊ฒฐํฉ
String animals = "dog,cat,bear";
String[] arr = animals.split(",");
String str = String.join("-", arr);
System.out.println(str); // dog-cat-bear
๋ฌธ์์ด๊ณผ ๊ธฐ๋ณธํ ๊ฐ์ ๋ณํ
- ์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ
int i = 100;
String str1 = i + "";
String str2 = String.valueOf(i);
- ๋ฌธ์์ด์ ์ซ์๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ
int i = Integer.parseInt("100");
int i2 = Integer.valueOf("100");
Integer i2 = Integer.valueOf("100"); // ์๋ ๋ฐํ ํ์
์ Integer
15~18. StringBuffer ํด๋์ค
StringBuffer ํด๋์ค
- String ์ฒ๋ผ ๋ฌธ์ํ ๋ฐฐ์ด(
char[]
)์ ๋ด๋ถ์ ์ผ๋ก ๊ฐ์ง๊ณ ์์ - ๊ทธ๋ฌ๋ String ๊ณผ ๋ฌ๋ฆฌ ๋ด์ฉ์ ๋ณ๊ฒฝํ ์ ์์ (mutable)
StringBuffer์ ์์ฑ์
- ๋ฐฐ์ด์ ๊ธธ์ด ๋ณ๊ฒฝ๋ถ๊ฐ. ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด ์๋ก์ด ๋ฐฐ์ด ์์ฑ
- StringBuffer๋ ์ ์ฅํ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๊ณ ๋ คํด์ ์ ์ ํ ํฌ๊ธฐ๋ก ์์ฑํด์ผ ํจ
public StringBuffer(int length) {
value = new char[length];
shared = false;
}
public StringBuffer() {
this(16); // ๋ฒํผ์ ํฌ๊ธฐ ๋ฏธ์ง์ ์ 16์ผ๋ก ์์ฑ
}
public StringBuffer(String str) {
this(str.length() + 16); // ์ง์ ํ ๋ฌธ์์ด๋ณด๋ค 16 ํฌ๊ฒ ์์ฑ
append(str);
}
StringBuffer์ ๋ณ๊ฒฝ
- StringBuffer ๋ String ๊ณผ ๋ฌ๋ฆฌ ๋ด์ฉ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅ
- append() ๋ ์ง์ ๋ ๋ด์ฉ์ StringBuffer ์ ์ถ๊ฐ ํ, StringBuffer ์ ์ฐธ์กฐ๋ฅผ ๋ฐํ
StringBuffer sb2 = sb.append("ZZ");
System.out.println(sb); // abc123ZZ
System.out.println(sb2); // abc123ZZ
// ์๋์ ๊ฐ์ด ์จ๋๋๋ค
StringBuffer sb = new StringBuffer("abc");
sb.append("123").append("ZZ");
StringBuffer์ ๋น๊ต
- StringBuffer ๋ equals() ๊ฐ ์ค๋ฒ๋ผ์ด๋ฉ ๋์ด ์์ง ์์ (์ฃผ์ ๋น๊ต)
- StringBuffer ์ String ์ผ๋ก ๋ณํ ํ์ equals() ๋ก ๋น๊ต
StringBuffer sb = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.out.println(sb.equals(sb2)); // false
String s = sb.toString();
String s2 = sb2.toString();
System.out.println(s.equals(s2)); // true
19~20. StringBuffer ํด๋์ค์ ๋ฉ์๋
StringBuffer ํด๋์ค์ ๋ฉ์๋
public class Ex9_12 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("01");
StringBuffer sb2 = sb.append(23);
sb.append('4').append(56);
StringBuffer sb3 = sb.append(78);
sb3.append(9.0);
System.out.println("sb =" + sb);
System.out.println("sb2=" + sb2);
System.out.println("sb3=" + sb3);
System.out.println("sb =" + sb.deleteCharAt(10));
System.out.println("sb =" + sb.delete(3, 6));
System.out.println("sb =" + sb.insert(3, "abc"));
System.out.println("sb =" + sb.replace(6, sb.length(), "END"));
System.out.println("capacity=" + sb.capacity());
System.out.println("length=" + sb.length());
}
}
21~24. StringBuilder, Math ํด๋์ค
StringBuilder
- StringBuffer๋ ๋๊ธฐํ ๋์ด ์์. ๋ฉํฐ ์ฐ๋ ๋์ ์์ (thread-safe)
- ๋ฉ์ ์ฐ๋ ๋ ํ๋ก๊ทธ๋จ์ด ์๋ ๊ฒฝ์ฐ, ๋๊ธฐํ๋ ๋ถํ์ํ ์ฑ๋ฅ ์ ํ
- ์ด๋ด ๋ StringBuffer ๋์ StringBuilder ๋ฅผ ์ฌ์ฉ
Math ํด๋์ค
- ์ํ ๊ด๋ จ static ๋ฉ์๋์ ์งํฉ
public class RoundTest {
public static void main(String[] args) {
for (double d = 1.5; d <= 10.5; d++) {
double d1 = Math.round(d);
double d2 = Math.rint(d);
System.out.printf("%4.1f %4.1f %4.1f%n", d, d1, d2);
}
}
}
1.5 2.0 2.0
2.5 3.0 2.0
3.5 4.0 4.0
4.5 5.0 4.0
5.5 6.0 6.0
6.5 7.0 6.0
7.5 8.0 8.0
8.5 9.0 8.0
9.5 10.0 10.0
10.5 11.0 10.0
StringBuilder ์ StringBuffer ์ ์ฐจ์ด
public final class StringBuilder
extends AbstractStringBuilder
implements java.io.Serializable, Comparable<StringBuilder>, CharSequence
{
public final class StringBuffer
extends AbstractStringBuilder
implements java.io.Serializable, Comparable<StringBuffer>, CharSequence
{
StringBuilder
์ StringBuffer
๋ฅผ ์ดํด๋ณด๋ฉด ๋์ผํ ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ๊ณ ์๋ค. ์ฆ, ๋์ผํ API ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด ๋์ ์ฐจ์ด์ ์ ๋ฌด์์ผ๊น?
// StringBuilder
@Override
@HotSpotIntrinsicCandidate
public StringBuilder append(String str) {
super.append(str);
return this;
}
// StringBuffer
@Override
public synchronized StringBuffer append(Object obj) {
toStringCache = null;
super.append(String.valueOf(obj));
return this;
}
.append()
๋ฉ์๋๋ฅผ ์ดํด๋ณด๋ฉด ์ด ๋์ ์ฐจ์ด๋ฅผ ์ ์ ์๋ค. StringBuilder
์ ๋ฌ๋ฆฌ StringBuffer ๋ synchronized
ํค์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ฆ, StringBuilder
๋ Thread-Safe
ํ์ง ์์ ๋ฐ๋ฉด StringBuffer
๋ Thread-Safe
ํ๊ธฐ ๋๋ฌธ์ ๋ฉํฐ ์ค๋ ๋ ํ๊ฒฝ์์์ ์์ ์ฑ์ ๊ฐ์ง๊ณ ์๋ค.
ํ์ง๋ง, StringBuilder
๋ ๋๊ธฐํ๋ฅผ ๊ณ ๋ คํ์ง ์๊ธฐ ๋๋ฌธ์ ๋จ์ผ ์ค๋ ๋ ํ๊ฒฝ์์ StringBuffer
๋ณด๋ค ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
์ ๊ทธ๋ฆผ์ String
StringBuilder
StringBuffer
์ ํน์ง์ ๋ํด์ ์ ๋ฆฌ๋ ํ์ด๋ค. ๋ฌธ์์ด์ ์ฌ์ฉํด์ผํ๋ ์ํฉ์ ๋ง์ถฐ ์๋ง๊ฒ ์ฌ์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
25~27. ๋ํผํด๋์ค, Number ํด๋์ค
๋ํผ(wrapper) ํด๋์ค
- 8๊ฐ์ ๊ธฐ๋ณธํ์ ๊ฐ์ฒด๋ก ๋ค๋ค์ผํ ๋ ์ฌ์ฉํ๋ ํด๋์ค
- boolean โ Boolean
- char โ Character
- int โ Integer
Number ํด๋์ค
- ๋ชจ๋ ์ซ์ ๋ํผ ํด๋์ค์ ์กฐ์
28~31. ์คํ ๋ฐ์ฑ & ์ธ๋ฐ์ฑ
๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ๊ธฐ
- ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ๋ ๋ค์ํ ๋ฐฉ๋ฒ
int i = new Integer("100").intValue();
int i2 = Integer.parseInt("100"); // ์ฃผ๋ก ์ด ๋ฐฉ๋ฒ์ ๋ง์ด ์ฌ์ฉ
Integer i3 = Integer.valueOf("100");
- n์ง๋ฒ์ ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ
int i4 = Integer.parseInt("100",2); // 100(2) -> 4
int i5 = Integer.parseInt("100",8); // 100(8) -> 64
int i6 = Integer.parseInt("100",16); // 100(16) -> 256
int i7 = Integer.parseInt("FF",16); // FF(16) -> 255
์คํ ๋ฐ์ฑ & ์ธ๋ฐ์ฑ
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(10); // ์คํ ๋ฐ์ฑ. 10 -> new Integer(10)
int value = list.get(0); // ์ธ๋ฐ์ฑ. new Integer(10) -> 10
- ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ ๊ฐ์ ์๋ ํ๋ณํ
- ์คํ ๋ฐ์ฑ : int โ Integer (๊ธฐ๋ณธํ์ ๋ํผํด๋์ค๋ก)
- ์ธ๋ฐ์ฑ : Integer โ int (๋ํผํด๋์ค๋ฅผ ๊ธฐ๋ณธํ์ผ๋ก)
public class Ex9_16 {
public static void main(String[] args) {
int i = 10;
// ๊ธฐ๋ณธํ์ ์ฐธ์กฐํ์ผ๋ก ํ๋ณํ(ํ๋ณํ ์๋ต๊ฐ๋ฅ)
Integer intg = (Integer)i; // Integer intg = Integer.valueOf(i);
Object obj = (Object)i; // Object obj = (Object)Integer.valueOf(i);
Long lng = 100L; // Long lng = new Long(100L);
int i2 = intg + 10; // ์ฐธ์กฐํ๊ณผ ๊ธฐ๋ณธํ๊ฐ์ ์ฐ์ฐ ๊ฐ๋ฅ
long l = intg + lng; // ์ฐธ์กฐํ ๊ฐ์ ๋ง์
๋ ๊ฐ๋ฅ
Integer intg2 = new Integer(20);
int i3 = (int)intg2; // ์ฐธ์กฐํ์ ๊ธฐ๋ณธํ์ผ๋ก ํ๋ณํ๋ ๊ฐ๋ฅ(ํ๋ณํ ์๋ต๊ฐ๋ฅ)
}
}