728x90
반응형
📌 java.lang.Object 클래스
📚 java.lang.Object 클래스
- 자바의 모든 클래스들은 이 클래스를 기반으로 작성됨
- 모든 클래스의 부모 역할을 하는 클래스
- 명시적으로 상속 관계를 기술하지 않아도 모든 클래스에 강제로 상속시키는 최상위 클래스
java.lang.Object 클래스의 주요 메서드들은 다음과 같습니다.
메소드 | 설명 |
boolean equals(Object obj) | obj가 가리키는 객체와 현재 객체를 비교하여 같으면 true 리턴 * 객체는 속성값을 비교하는 것이 아닌 참조 변수 자체를 비교합니다. 때문에 객체의 값을 비교하기 위해서는 equals가 필요합니다. |
int hashCode() | 현 객체에 대한 해시 코드 값 리턴 |
Sting toString() | 현 객체에 대한 문자열 표현을 리턴 |
void notify() | 현 객체에 대해 대기하고 있는 하나의 스레드를 깨움 |
void wait() | 현 객체에 대해 대기하고 있는 모든 스레드를 깨움 |
📌 Wrapper 클래스
📚 Wrapper 클래스
- 기본 자료형을 객체로 나타내기 위한 클래스들
- 특정한 경우에 기본형 값을 객체로 표현할 필요가 있을 때 사용
- Wrapper인 클래스가 존재하는 것이 아닌 8개의 기본 타입을 다루는 클래스들을 통칭
기본타입 | byte | short | int | long | char | float | double | boolean |
Wrapper 클래스 | Byte | Short | Integer | Long | Character | Float | Double | Boolean |
📚 Wrapper 객체의 생성
기존의 JDK는 new 연산자를 이용하여 생성자를 호출하여 객체를 생성했습니다. 그러나 Wrapper 클래스에서 제공하는 static 메서드를 사용하여 객체 생성 없이 사용할 수 있습니다.
📃 기본 자료형의 값으로 Wrapper 객체 생성
Integer i = Integer.valueOf(10); // 정수 10의 객체화
Character c = Character.valueOf(‘c’); // 문자 'C'의 객체화
Double f = Double.valueOf(3.14); // 실수 3.14의 객체화
Boolean b = Boolean.valueOf(true); // 불린 값 true의 객체화
📃 문자열로 Wrapper 객체 생성
Integer I = Integer.valueOf(“10”); //문자열 '10'의 정수화
Double d = Double.valueOf(“3.14”); //문자열 '3.14'의 실수화
Boolean b = Boolean.valueOf(“false”); //문자열 'false'의 불린화
📚 Wrapper 객체들의 주요 메서드
다수의 메서드들이 static 타입입니다. 명시적으로 new 연산자를 통해 객체 없이 간단히 메서드 호출 가능합니다.
메서드 | 설명 |
static in bitCount(int i) | 정수 i의 이진수 표현에서 1의 개수 리턴 |
float floatValue() | float 타입으로 값 리턴 |
int intValue() | int 타입으로 값 리턴 |
static int praseInt(String s) | 문자열 s를 10진 정수로 변환한 값 리턴 |
static int praseInt(String s, int radix) | 문자열 s를 지정된 진법의 정수로 변환한 값 리턴 |
static String toString(int i) | 정수 i를 문자열로 변환하여 리턴 |
static Integer valueOf(int i) | 정수 i를 담음 Integer 객체 리턴 |
static Integer valueOf(String s) | 문자열 s를 정수로 변환하여 담고 있는 Integer 객체 리턴 |
📚 Wrapper 객체의 사용
📃 Wrapper 객체로부터 기본 자료형 얻어내기
Integer i = Integer.valueOf(10);
int ii = i.intValue(); // ii = 10
Character c = Character.valueOf('c' );
char cc = c.charValue(); // cc = ’c’
Double f = Double.valueOf(3.14);
double dd = d.doubleValue(); // dd = 3.14
Boolean b = Boolean.valueOf(true);
boolean bb = b.booleanValue(); // bb = true
📃 문자열을 기본 자료형으로 변환
int i = Integer.parseInt("123"); // i = 123
boolean b = Boolean.parseBoolean("true"); // b = true
double f = Double.parseDouble("3.14"); // d = 3.14
📃 기본 자료형을 문자열로 변환
String s1 = Integer.toString(123); // 정수 123을 문자열 "123" 으로 변환
String s2 = Integer.toHexString(123); // 정수 123을 16진수의 문자열 "7b"로 변환
String s3 = Double.toString(3.14); // 실수 3.14를 문자열 "3.14"로 변환
String s4 = Charater.toString('a'); // 문자 ‘a’를 문자열 "a"로 변환
String s5 = Boolean.toString(true); // 불린 값 true를 문자열 "true"로 변환
📚 자동 박싱과 언박싱
- 박싱(boxing) : 기본 타입의 값을 Wrapper 객체로 변환하는 것
- 언박싱(unboxing) : Wrapper 객체의 값을 기본 타입으로 변환하는 것
- JDK 1.5이후부터 자동으로 이루어져 자동 박싱, 자동 언박싱이라고 함
Integer ten = 10; // 자동 박싱. Integer ten = Integer.valueOf(10);로 자동 처리
int n = ten; // 자동 언박싱. int n = ten.intValue();로 자동 처리
📌 java.lang.String 클래스
📚 java.lang.String 클래스
- 문자열을 표현할 때 사용
- 자바의 문자열을 리터럴은 String 객체로 처리됨
- + 연산자로 문자열을 연결할 수 있음
- 기본적으로 String 객체는 편집 불가능함
=> 편집되는 것 같아보여도 내부적으로는 단지 폐기 후 새로 생성하는 것
📚 String 클래스 객체의 생성 방법
📃 암시적 생성
String s1 = "hello";
- 이미 같은 문자열이 등록되어 있다면 그 문자열의 참조 변수를 넘겨 받음
- 문자열 리터럴 자체는 상수 영역에 할당되기 때문에 그 참조값(id값)을 넘겨받는 것
- == 연산자로 문자열을 비교 불가
📃 명시적 생성
String s2 = new String("hello");
- 항상 새로운 객체를 동적 할당하여 heap 영역에 새로 객체가 만드어짐
- == 연산자로 문자열 비교 가능하지만 권장 X
- 문자열 (객체1).equals(객체2) 형태로 eqauls 메서드 사용
📚 String 클래스 객체의 생성 방법 비교
String s1 = "hello"; // 암시적 생성
String s2 = "hello"; // 암시적 생성
String s3 = new String("hello"); // 명시적 생성
String s4 = new String("hello"); // 명시적 생성
if (s1 == s2) System.out.println("s1 == s2") //Output:s1 == s2, 같은 참조값 비교
if (s3 != s4) System.out.println("s3 != s4") //Output:s3 != s4, 객체가 비교되지 않아 다름
if (s1 != s3) System.out.println("s1 != s3") //Output:s1 != s3, 객체가 비교되지 않아 다름
if (s1.equals(s2)) System.out.println("s1 == s2") //Output:s1 == s2, 같은 참조값 비교
if (s3.equals(s4)) System.out.println("s3 == s4") //Output:s3 != s4, 객체가 비교되지 않아 다름
if (s1.equals(s3)) System.out.println("s1 == s3") //Output:s1 != s3, 객체가 비교되지 않아 다름
📚 String 클래스의 주요 메서드
메서드 | 설명 |
char charAt(int index) | index에 있는 문자 값 리턴 |
int compareTo(String another) | 두 문자열이을사전 순으로 비교하여 두 문자열이 같으면 0, 현 문자열이 비교 대상보다 먼저 나오면 음수 아니면 양수 리턴 |
String concat(String str) | 현재 문자열 뒤에 str 스트링을 덧붙인 새로운 문자열 리턴 |
boolean contains(CharSequence s) | s에 지정된 문자들을 포함하고 있으면 true 리턴 |
int length() | 문자열의 길이(문자 개수) 리턴 |
String replace(CharSequence target, CharSequence replacement) |
target이 지정하는 일련의 문자들을 replacement가 지정하는 문자들로 변경한 문자열 리턴 |
String toLowerCase() | 소문자로 변경한 문자열 리턴 |
String toUpperCase() | 대문자로 변경한 문자열 리턴 |
String trim() | 문자열 앞뒤의 공백 문자들을 제거한 문자열 리턴 |
📌 java.lang.StringBuffer 클래스
📚 java.lang.StringBuffer 클래스
- 가변 문자열을 나타내는데 사용
- StringBuffer 객체는 편집 가능하기 때문에 자주 변경되는 문자열 표시
- 객체 생성시 여유 공간을 할당받을 수 있음
StringBuffer s = new StringBuffer("hi");
📚 StringBuffer 클래스의 주요 메서드
- StringBuffer로 만드는 문자열들은 반드시 toString을 통해 객체로 변환해야 한다.
메서드 | 설명 |
StringBuffer append(String str) | str 스트링을 스트링 버퍼에 덧붙인다 |
int capacity | 스트링 버퍼의 현재 크기를 리턴 |
StringBuffer delete(int start, int end) | start 위치에서 end 위치 앞까지 부분 문자열 삭제 |
StringBuffer insert(int offset, String str) | str 스트링을 스트링 버퍼의 offset 위치에 삽입 |
StringBuffer replace(int start, int end, String str) |
스트링 버퍼 내의 start 위치의 문자부터 end가 지정하는 문자 앞의 서브 스트링을 str로 대치 |
StringBuffer reverse() | 스트링 버퍼 내의 문자들을 반대 순서로 변경 |
void setLength(int newLength) | 스트링 버퍼 내 문자열 길이를 newLength로 재설정, 현재 길이보다 큰 경우 널문자로 채우며 작은 경우 기존 문자열이 잘림 |
📌 java.lang.Math 클래스
📚 java.lang.Math 클래스
- 기본 산술 연산 메서드들이 제공
- 모든 메서드들은 static으로 선언되어 제공
메서드 | 설명 |
int abs(int num) | num의 절대값을 리턴 |
double sin(double angle) | angle의 sin 값을 되돌려줌 (삼각함수) |
double sqrt(double num) | num의 제곱근 값을 되돌려줌 |
double pow(double num, double power) | num^power, num의 power 승을 되돌려줌 |
double random | 의사 난수 발생 |
📌 java.util.Calendar 클래스
📚 java.util.Calendar 클래스
- 시간과 날짜 정보 저장 및 관리
- 년, 월, 요일, 시, 분, 초, 밀리초, 오전, 오후
필드 | 의미 | 필드 | 의미 |
YEAR | 년도 | DAY_OF_MONTH | 한 달의 날짜 |
MONTH | 달 (0~11) | DAY_OF_WEEK | 한 주의 요일 |
HOUR | 시간 (0~11) | AM_PM | 오전인지 오후인지 구분 |
HOUR_OF_DAY | 24시간을 기준으로 한 시간 | MINUTE | 분 |
SECOND | 초 | MILLISECOND | 밀리초 |
📚 Calendar 객체 생성
- 현재 날짜와 시각 정보를 가지는 객체를 생성
Calendar now = Calendar.getInstance();
- 날짜 / 시간 얻기
int y = now.get(Calendar.YEAR);
int m = now.get(Calendar.MONTH) + 1; //1월이 0월로 저장되어 있어 +1
- 날짜 시간 설정
now.clear();
now.set(2022, 10, 6); // 특정 날짜 지정
now.set(Calendar.HOUR_OF_DAY, 1);
now.set(Calendar.MINUTE, 30);
📌 java.util.Random 클래스
📚 java.util.Random 클래스
- 의사 난수(pseudorandom number)를 생성하는 메서드 제공
- Math.Random은 0~1 사이 난수를 생성하기에 더 활용도가 높음
메서드 | 설명 |
nextInt() | 모든 가능한 정수 값 범위의 난수를 리턴 |
nextInt(int n) | 0과 n-1 사이에 있는 정수형 난수를 리턴 |
nextFloat() | 0.0 이상 1.0 미만 사이의 난수 리턴 |
.
반응형
'코딩언어 > JAVA' 카테고리의 다른 글
[JAVA] 09. 클래스 상속 (0) | 2022.10.24 |
---|---|
[JAVA] 08. 배열 (0) | 2022.10.22 |
[JAVA] 07-1 자바의 패키지와 모듈 (0) | 2022.10.18 |
[JAVA] 06. 캡슐화와 정보 은닉 (2) | 2022.10.14 |
[JAVA] 05. 클래스의 멤버 (0) | 2022.10.13 |