java.lang 패키지
자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다.
Class Wrapper
java.lang.Boolean
java.lang.Byte
java.lang.Character
java.lang.Double
java.lang.Float
java.lang.Integer
java.lang.Long
java.lang.Short
8개의 기본형을 대표하는 8개의 래퍼 클래스.
기본형 값을 객체로 다룰 수 있다.
생성자의 매개변수로 문자열을 제공할 때, 각 자료형에 알맞은 문자열을 사용해야 한다.
Boolean
Boolean(boolean value)
Boolean(String s)
Java
1
2
Boolean b1 = new Boolean(true);
Boolean b2 = new Boolean("true");Character
Character(char value)
Java
1
Character c = new Character('a');Byte
Byte(byte value)
Byte(String s)
Java
1
2
Byte b1 = new Byte(2);
Byte b2 = new Byte("2");Short
Short(short value)
Short(String s)
Java
1
2
Short s1 = new Short(2);
Short s2 = new Short("2");Integer
Integer(int value)
Integer(String s)
Java
1
2
Integer i1 = new Integer(1000);
Integer i2 = new Integer("1000);Long
Long(long value)
Long(String s)
Java
1
2
Long l1 = new Long(1000);
Long l2 = new Long("1000");Float
Float(double value)
Float(float value)
Float(String s)
Java
1
2
3
Float f1 = new Float(1.0);
Float f1 = new Float(1.0f);
Float f1 = new Float("1.0f");Double
Double(double value)
Double(String s)
Java
1
2
Double d1 = new Double(1.0);
Double d2 = new Double("1.0");boolean equals(Object anObject)
오버라이딩 되어 있어서 주소값이 아닌 객체가 가지고 있는 값을 비교한다.
Java
1
2
3
4
5
Integer i1 = new Integer(2);
Integer i2 = new Integer(2);
System.out.println((i1 == i2)); // false
System.out.println(i1.equals(i2)); // trueint compareTo(Integer anotherInteger)
Integer 객체에 비교 연산자를 사용할 수 없어서 제공된 메서드.
Java
1
2
3
4
5
6
7
8
Integer i1 = new Integer(2);
Integer i2 = new Integer(2);
Integer i3 = new Integer(5);
Integer i4 = new Integer(-5);
System.out.println(i1.compareTo(i2)); // 0
System.out.println(i1.compareTo(i3)); // -1
System.out.println(i1.compareTo(i4)); // 1String toString()
객체가 가지고 있는 값을 문자열로 변환하여 반환한다.
Java
1
2
3
Integer i = new Integer(2);
System.out.println(i.toString()); // 2java.lang.Number
내부적으로 숫자를 멤버변수로 갖는 래퍼 클래스들(Byte, Double, Float, Int, Long, Short)의 조상.
추상 클래스.
객체가 가지고 있는 값을 숫자와 관련된 기본형으로 변환하여 반환하는 메서드들을 정의하고 있다.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public abstract class Number extends Object implements Serializable {
abstract double doubleValue();
abstract float floatValue();
abstract int intValue();
abstract long longValue();
byte byteValue() {
return (byte) intValue();
}
short shortValue() {
return (short) intValue();
}
...
}문자열을 숫자로 변환
기본형을 반환하는 '타입.parse타입(String s)'과 래퍼 클래스 타입을 반환하는 '타입.valueOf()'
JDK1.5부터 도입된 오토박싱 덕분에 두 메서드의 차이가 없어졌다.
단, 성능은 valueOf()가 조금 더 느리다.
Java
1
2
3
4
5
6
7
8
9
10
11
12
byte b = Byte.parseByte("2");
Byte B = Byte.valueOf("2"); // → byte B = Byte.valueOf("2");
short s = Short.parseShort("2");
Short S = Short.valueOf("2"); // → short S = Short.valueOf("2");
int i = Integer.parseInt("2");
Integer I = Integer.valueOf("2"); // → int I = Integer.valuseOf("2");
long l = Long.parseLong("2");
Long L = Long.valueOf("2"); // → long L = Long.valueOf("2");
float f = Float.parseFloat("2.0");
Float F = Float.valueOf("2.0"); // → float F = Float.valueOf("2.0");
double d = Double.parseDouble("2.0");
Double D = Double.valueOf("2.0"); // → double D = Double.valueOf("2.0");문자열이 10진수가 아닌 다른 진법의 숫자일 때도 변환이 가능하다.
Java
1
2
static int parseInt(String s, int radix);
static Integer valueOf(String s,int radix);Java
1
2
3
4
5
int i1 = Integer.parseInt("100", 2); // 4
int i2 = Integer.parseInt("100", 8); // 64
int i3 = Integer.parseInt("100", 16); // 256
int i4 = Integer.parseInt("aa", 16); // 170
int i5 = Integer.parseInt("aa"); // error: NumberFormatException오토박싱 Autoboxing & 언박싱 Unboxing
기본형과 참조형 간의 연산이 가능하도록 컴파일러가 자동으로 변환하는 코드를 넣어준다.
개발자가 간략하게 쓴 구문을 컴파일러가 원래의 구문으로 변경해주는 것뿐 자바의 원칙이 바뀐 것은 아니다.
오토박싱 : 기본형 값을 래퍼 클래스의 객체로 자동 변환해주는 것.
Java
1
2
3
4
int i = 2;
Integer intg = (Integer) i; // = Integer.valueOf(i);
Object obj = (Object) i; // = (Object) Integer.valueOf(i);
Long l = 100L; // = new Long(100L);언박싱 : 래퍼 클래스의 객체를 기본형 값으로 자동 변환해주는 것.
Java
1
2
3
ArrayList list = new ArrayList<>();
list.add(10); // Autoboxing. 10 → new Integer(10)
int value = list.get(0); // Unboxing. new Integer(10) → 10참고 서적: 자바의 정석 3판

[Java] Class Math
Java에서 쓰이는 Math 클래스를 설명한 글입니다.
Java

[Java] 정규식
Java에서 쓰이는 정규식을 설명한 글입니다.
Java
