다라다라V
article thumbnail
Published 2022. 10. 20. 01:10
[JAVA] 07-2 자바 기본 API 코딩언어/JAVA
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
profile

다라다라V

@DaraDaraV

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!