java.lang
자바 프로그래밍에 필요한 기본적인 클래스와 인터페이스 제공.
import문을 사용하지 않아도 자동으로 호출.
java.util
날짜, 시간 등 다양한 유틸리티 클래스와 인터페이스 제공
java.io
입출력하는 클래스와 인터페이스 제공
java.awt & javax.swing
GUI 프로그래에 필요한 클래스와 인터페이스 제공
java.lang 패키지에 속한 클래스.
모든 클래스에 강제로 상속.
아무 클래스도 상속받지 않는 유일한 클래스로 계층 구조 상 최상위 클래스.
주요 메소드
객체 비교와 equals() 메소드
==연산자
기본 타입의 값을 비교
두 레퍼런스가 동일한 객체를 가리키는지 비교(내용물이 같은지 비교하는 것 아님)
equals() 메소드
객체 비교
toString() 메소드
객체를 문자열로 변환하는 메소드 → 객체가 가지고 있는 정보나 값을 문자열로 만들어 리턴
클래스 작성할 때 toString()으로 자신만의 문자열 리턴
Object의 toString()을 오버라이딩하여 자신만의 문자열을 리턴
+) 오버라이딩 : 슈퍼 클래승에서 구현된 메소드를 서브 클래스에서 자신의 특징에 맞게 다시 구현
public String toString();
※ public으로 선언해야 한다. ※
int, char, double 등 8개의 기본 타입을 객체로 다루기 위해 만들어진 8개의 클래스를 통칭한 것
java.lang 패키지에서 제공
Wrapper 클래스 객체 생성
기본 타입의 값을 인자로 하여 정적 메소드인 valueOf()를 호출하여 생성
Integer i = Integer.valueOf(10); Character c = Character.valueOf('c');
문자열로 Wrapper 객체 생성 가능
Integer i = Integer.valueOf("10");
※ "10" 등 String으로 들어가도 valueOf를 이용하면 객체화 가능 ※
Wrapper 클래스 활용
int intValue() : int 타입 값 리턴
Integer i = Integer.valueOf(10); int ii = i.intValue();
ii = 10의 값이 들어간다.
static int parseInt(String s) : 문자열을 정수로 변환
int i = Integer.parseInt("123");
문자열 "123"을 10진 정수로 변환한 123이 i에 들어간다.
parseInt(), parseBoolean(), parseDouble() 메소드는 모두 static타입 ▶ Wrapper 클래스의 이름으로 바로 메소드 호출
Wrapper 클래스는 해당 타입으로 변환하는 메소드만을 제공.
기본 타입 값을 문자열로 변환
String s1 = Integer.toString(123); String s2 = Double.toString(3.14); String s3 = Character.toString('a');
※ Object 클래스에서의 toString과는 다르다. ※
박싱과 언박싱
박싱 : 기본 타입의 값을 Wrapper 객체로 변환하는 것
언박싱 : Wrapper 객체 → 기본 타입의 값
※ JDK 1.5부터 자동으로 박싱, 언박싱이 이루어진다 ▶ 자동 박싱, 자동 언박싱 ※
생성자를 통해 여러 가지 방법으로 String 객체 생성
스트링 리터럴과 new String()
스트링 리터럴
자바 내부에서 리터럴 테이블로 관리해 동일한 리터럴 공유
String a = "Hello"; String b = "Java"; String c = "Hello";
"Hello"와 "Java"는 자바 가상 기계의 스트링 리터럴 테이블에 생성
a와 c는 리터럴 테이블에서 같은 Hello 공유
new String()
힙 메모리에 생성. new를 이용하여 생성되는 다른 객체와 동일
String d = new String("Hello"); String e = new String("Java"); String f = new String("Java");
스트링 객체 d, e, f는 힙 메모리에 독립적으로 생성
※ 스트링 리터럴, newString() 둘 다 수정이 불가능 ※
String a = new String("Hello"); String b = a.concat("World"); // HelloWorld 리턴 a = a.concat("World"); // a는 새로 리턴된 "HelloWorld" 가리킴
String 활용
int compareTo(String anotherString) - 문자열 비교
현재 스트링과 매개변수로 주어진 anotherString의 스트링을 사전 순으로 비교
0 : 두 문자열 같을 때
음수 : 현재 문자열이 anotherString의 문자열보다 사전에서 먼저 나올 때
양수 : 현재 문자열이 anotherString의 문자열보다 사전에서 뒤에 나올 때
※ equals() 메소드 : 두 문자열이 같은지만 비교할 때 사용 ※
String concat(String str) - 문자열 연결
"문자열".concat("새로운 문자열") 로 연결 가능
▶ +연산자로 문자열 연결할 때) 피연산자에 문자열 하나만 있으도 문자열 연결 가능
String trim() - 공백 제거
문자열 앞뒤에 있는 공백 문자를 제거한 새로운 문자열 리턴
※ 문자열 중간에 있는 공백 제거는 불가능 ※
※ 스페이스, \t 제거 가능 ※
char charAt(int index) - 문자열의 문자
특정 위치에 있는 문자을 알아낼 때 사용
String 객체와 StringBuffer 객체 차이
String 객체 : 내부의 문자열을 수정 불가능.
StringBuffer 객체 : 문자열의 수정 가능.
▶문자열을 저장하는 가변 버퍼를 가지고 있기 때문
▶문자열의 크기 증가하면 내부 버퍼 크기 자동 조절
+) String 클래스 : 간단한 문자열을 처리할 때 사용
StringBuffer 클래스 : 문자열의 길이가 길거나 수시로 변하는 경우에 사용
StringBuffer 객체 생성
StringBuffer sb = new StringBuffer("java");
StringBuffer 클래스 생성자
하나의 문자열을 여러개의 문자열로 분리하기 위해 사용
생성자를 통해 문자열이 전달되고, 생성자에서 문자열 분리가 바로 이루어진다.
구분 문자 : 문자열을 분리할 때 사용되는 기준 문자
토큰 : 구분 문자로 분리된 문자열
String str = "abc=def&ghi=jkl&mno=pq"; StringTokenizer st = new StringTokenizer(str, "&"); //구분문자 : '&' int n = st.countTokens(); //몇 개의 토큰으로 분리되었는지 알아냄. for(int i=0; i<n; i++){ String token = st.nextToken(); // 토큰 하나씩 얻기 System.out.println(token); }
※ 구분 문자를 '&'대신 '&='를 주게 되면 '&'와 '='를 모두 구분 문자로 사용 ※
기본적인 산술 연산을 제공하며 모든 멤버 베소드는 static 타입
random() - 난수 발생0
: 0.0보다 크거나 같고 1.0보다 작은 임의의 double 값 리턴(Math.random( )만 사용하였을시)
static double sqrt(double a) - 실수 a의 제곱근 리턴
static long round(double a) - 반올림. 실수 a를 소수 첫째 자리에서 반올림한 정수를 long 타입으로 반환
static double abs(double a) - 실수 a의 절대값 리턴
static double cos(double a) - 실수 a의 cosine 값 리턴
시간과 날짜 정보를 저장. set(), get() 메소드를 이용하여 날짜나 시간을 알아낼 때 사용.
Calendar 객체 생성하여 날짜와 시간 알아내기 & 설정
Calendar now = Calendar.getInstance();
▶ Calendar 클래스는 추상 클래스이기 때문에, new Calendar() 대신 getInstance() 메소드 사용해 객체 생성
int year = now.get(Calendar.YEAR); int month = now.get(Calendar.MONTH) + 1;
▶ 1월달은 0을 리턴하기 때문에 month에 1을 더해야 한다.
Calendar new = Calendar.getInstance(); new.clear(); new.set(2022, 3, 17); new.set(Calendar.HOUR_OF_DAY, 20); new.set(Calendar.MINUTE, 30);
Calendar 클래스의 static 상수
[Java] 주요 패키지 내 클래스
주요 패키지
java.lang
자바 프로그래밍에 필요한 기본적인 클래스와 인터페이스 제공.
import문을 사용하지 않아도 자동으로 호출.
java.util
날짜, 시간 등 다양한 유틸리티 클래스와 인터페이스 제공
java.io
입출력하는 클래스와 인터페이스 제공
java.awt & javax.swing
GUI 프로그래에 필요한 클래스와 인터페이스 제공
Object 클래스
java.lang 패키지에 속한 클래스.
모든 클래스에 강제로 상속.
아무 클래스도 상속받지 않는 유일한 클래스로 계층 구조 상 최상위 클래스.
주요 메소드
객체 비교와 equals() 메소드
==연산자
기본 타입의 값을 비교
두 레퍼런스가 동일한 객체를 가리키는지 비교(내용물이 같은지 비교하는 것 아님)
equals() 메소드
객체 비교
toString() 메소드
객체를 문자열로 변환하는 메소드 → 객체가 가지고 있는 정보나 값을 문자열로 만들어 리턴
클래스 작성할 때 toString()으로 자신만의 문자열 리턴
Object의 toString()을 오버라이딩하여 자신만의 문자열을 리턴
+) 오버라이딩 : 슈퍼 클래승에서 구현된 메소드를 서브 클래스에서 자신의 특징에 맞게 다시 구현
※ public으로 선언해야 한다. ※
Wrapper 클래스
int, char, double 등 8개의 기본 타입을 객체로 다루기 위해 만들어진 8개의 클래스를 통칭한 것
java.lang 패키지에서 제공
Wrapper 클래스 객체 생성
기본 타입의 값을 인자로 하여 정적 메소드인 valueOf()를 호출하여 생성
문자열로 Wrapper 객체 생성 가능
※ "10" 등 String으로 들어가도 valueOf를 이용하면 객체화 가능 ※
Wrapper 클래스 활용
int intValue() : int 타입 값 리턴
ii = 10의 값이 들어간다.
static int parseInt(String s) : 문자열을 정수로 변환
문자열 "123"을 10진 정수로 변환한 123이 i에 들어간다.
parseInt(), parseBoolean(), parseDouble() 메소드는 모두 static타입 ▶ Wrapper 클래스의 이름으로 바로 메소드 호출
Wrapper 클래스는 해당 타입으로 변환하는 메소드만을 제공.
기본 타입 값을 문자열로 변환
※ Object 클래스에서의 toString과는 다르다. ※
박싱과 언박싱
박싱 : 기본 타입의 값을 Wrapper 객체로 변환하는 것
언박싱 : Wrapper 객체 → 기본 타입의 값
※ JDK 1.5부터 자동으로 박싱, 언박싱이 이루어진다 ▶ 자동 박싱, 자동 언박싱 ※
String 클래스
생성자를 통해 여러 가지 방법으로 String 객체 생성
스트링 리터럴과 new String()
스트링 리터럴
자바 내부에서 리터럴 테이블로 관리해 동일한 리터럴 공유
"Hello"와 "Java"는 자바 가상 기계의 스트링 리터럴 테이블에 생성
a와 c는 리터럴 테이블에서 같은 Hello 공유
new String()
힙 메모리에 생성. new를 이용하여 생성되는 다른 객체와 동일
스트링 객체 d, e, f는 힙 메모리에 독립적으로 생성
※ 스트링 리터럴, newString() 둘 다 수정이 불가능 ※
String 활용
int compareTo(String anotherString) - 문자열 비교
현재 스트링과 매개변수로 주어진 anotherString의 스트링을 사전 순으로 비교
0 : 두 문자열 같을 때
음수 : 현재 문자열이 anotherString의 문자열보다 사전에서 먼저 나올 때
양수 : 현재 문자열이 anotherString의 문자열보다 사전에서 뒤에 나올 때
※ equals() 메소드 : 두 문자열이 같은지만 비교할 때 사용 ※
String concat(String str) - 문자열 연결
"문자열".concat("새로운 문자열") 로 연결 가능
▶ +연산자로 문자열 연결할 때) 피연산자에 문자열 하나만 있으도 문자열 연결 가능
String trim() - 공백 제거
문자열 앞뒤에 있는 공백 문자를 제거한 새로운 문자열 리턴
※ 문자열 중간에 있는 공백 제거는 불가능 ※
※ 스페이스, \t 제거 가능 ※
char charAt(int index) - 문자열의 문자
특정 위치에 있는 문자을 알아낼 때 사용
StringBuffer 클래스
String 객체와 StringBuffer 객체 차이
String 객체 : 내부의 문자열을 수정 불가능.
StringBuffer 객체 : 문자열의 수정 가능.
▶문자열을 저장하는 가변 버퍼를 가지고 있기 때문
▶문자열의 크기 증가하면 내부 버퍼 크기 자동 조절
+) String 클래스 : 간단한 문자열을 처리할 때 사용
StringBuffer 클래스 : 문자열의 길이가 길거나 수시로 변하는 경우에 사용
StringBuffer 객체 생성
StringBuffer 클래스 생성자
StringTokenizer 클래스
하나의 문자열을 여러개의 문자열로 분리하기 위해 사용
생성자를 통해 문자열이 전달되고, 생성자에서 문자열 분리가 바로 이루어진다.
구분 문자 : 문자열을 분리할 때 사용되는 기준 문자
토큰 : 구분 문자로 분리된 문자열
※ 구분 문자를 '&'대신 '&='를 주게 되면 '&'와 '='를 모두 구분 문자로 사용 ※
Math 클래스
기본적인 산술 연산을 제공하며 모든 멤버 베소드는 static 타입
주요 메소드
random() - 난수 발생0
: 0.0보다 크거나 같고 1.0보다 작은 임의의 double 값 리턴(Math.random( )만 사용하였을시)
static double sqrt(double a) - 실수 a의 제곱근 리턴
static long round(double a) - 반올림. 실수 a를 소수 첫째 자리에서 반올림한 정수를 long 타입으로 반환
static double abs(double a) - 실수 a의 절대값 리턴
static double cos(double a) - 실수 a의 cosine 값 리턴
Calendar 클래스
시간과 날짜 정보를 저장. set(), get() 메소드를 이용하여 날짜나 시간을 알아낼 때 사용.
Calendar 객체 생성하여 날짜와 시간 알아내기 & 설정
▶ Calendar 클래스는 추상 클래스이기 때문에, new Calendar() 대신 getInstance() 메소드 사용해 객체 생성
▶ 1월달은 0을 리턴하기 때문에 month에 1을 더해야 한다.
Calendar 클래스의 static 상수
'Back-End > Java' 카테고리의 다른 글