1. java.lang패키지
- java.lang패키지는 자바프로그래밍에 기본이 되는 클래스들을 포함하고 있다.
: String, System,....
2. Object클래스
- Object클래스는 멤버면수없이 11개의 메서드만 가지고 있다.
- equals(Object obj)
: 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으로 알려준다.
: 참조변수에 저장된 주소값이 같은지를 판단할수 밖에 없다.
: 주소값이 아닌 멤버변수의 값을 비교하기 위해서는 equals메서드를 오버라이드 해야된다.
: equals메서드가 오버라이드 되어 있는 클래스들
ex) String, Date, File, wrapper클래스(기본형 8가지를 객체형태로 바꾼것)...
- hashCode() - 10진수로 이루어져 있다.
: 객체의 주소값을 이용해서 해시코드를 만들어 반환한다.
: String클래스는 문자열의 내용이 같으면 동일한 해시코드를 반환하도록
hashCode메서드도 오버라이드 되어 있다.
- toString()
: 알트쉬프트에스에스엔터
: 인스턴스에 대한 정보를 문자열로 제공할 목적으로 작성.
: 기본적인 toString()
return getClass() 클래스의정보를 읽어오는 역할
return getClass().getName() + "@" + Integer.toHexString(hashCode()); // 16진수로 변환
: toSting메서드도 오버리아디 해서 사용한다.
- getClass()
: 자신이 속한 클래스의 Class객체를 반환하는 메서드 // 클래스의 정보를 저장하는 클래스 //반환타입 클래스
: Class객체를 얻는 방법
1) 생성된 객체로부터 얻는 방법
Class obj = new Card().getClass();
2) 클래스 리터럴로부터 얻는 방법
Class obj = Card.class;
3) 클래스의 이름으로 부터 얻는 방법 // 많이 쓰인다.
Class obj = Class.forName("Card");
// 스트링타입으로 받을때면 오타등의 이유로 그클래스를 못찾는 오류가 생길수 있다.
// try catch 사용해야한다.
- clone()
: 얕은복사
: 자신을 복제하여 새로운 인스턴스를 생성한다.
: 단순히 인스턴스변수의 값만을 복사한다.
3. String 클래스
- 다른 언어에서는 문자열을 char형의 배열로 다룬다.
- 문자열을 합치게 될때 새로운 문자열을 가진 String인스턴스가 생성된다.
- 문자열 비교
: 문자열 리터럴을 지정하는 방식과 String클래스의 생성자를 이용하는 방법이 있다. //객체생성을해야한다.
: 문자열 리터럴은 클래스가 메모리에 로드될대 자동적으로 미리 생성된다.
// 나중에 가져다 쓰는것 문자열이 같으면 한번만 로드하고 가져다쓴다 ==이 안되는이유
- 문자 인코딩 변환
: 한글 윈도우의 경우 문자 인코딩 CP949 타입
: 이클립스의 문자 인코딩 MS949 타입
: 한글이 들어간 경우 UTF-8을 사용햇다
- String.format
: 기본값을 String으로 변환.
1) 빈 문자열을 더하는 방식
int a = 10;
String b = a + ""; //메모리를 많이 차지한다.
2) valueOf를 이용하는방법
int a = 10;
String b = String.valueOf(a); // a를 문자열로 바꿔준다..
: String을 기본형 값으로 반환.
1) wrapper클래스를 이용하는 방식
String str = "100";
int a = Integer.parseInt(str); //문자열을 인트값을 변환해주는것.
int a = Integer.valueOf(str); //모두사용하기위해 valueOf를 만들었다.
String str2 = "200";
int a = Integer.parseInt(str2,16); // str2이 16진수입니다.
String str2 = "10100";
int a = Integer.parseInt(str2, 2); //str2가 2진수입니다.
System.out.println(a); // 진수로 변경해주는것은 없다.
4. StringBuffer, StringBuilder
- String클래스는 인스턴스를 생성할때 지정된 문자열을 변경할 수 없다.
- 문자열의 변경을 위해서는 StringBuffer클래스를 이용한다.
5. Math클래스
6. wrapper클래스
- 객체지향 개념은 모든것을 객체로 다루어야 한다.
- 8가지 기본형은 객체로 다루지 않는다.
- 때로는 기본형 변수도 어쩔수 없이 객체로 다루어야 하는 경우가 있다.
: 매개변수로 객체를 요구할때
: 기본형이 아닌 객체로 저장되어야 할때.
void method(Object obj){
Vector v = new Vector();
}
기본형 | wrapper클래스
boolean | Boolean
char | Character ***
byte | Byte
short | Short
int | integer ***
long | Long
float | Float
double | Double
- 오토박싱(Auto-Boxing) : 기본형 값을 래퍼클래스의 객체형태로 변환해 주는 기술
- 언박싱(unBoxing) : 래퍼클래스의 객체형태를 기본형값으로 변환해 주는 기술
7. 정규식(Regular Expression) //찾아내서 바꿈 필터같은것
- 텍스트 데이터 중에서 원하는 조건과 일치하는 문자열을 찾아내기 위해 사용하는 것.
- 정규식의 구성
: 패턴을 알아야함 << 패턴을 정의 하는것 : Pattern 클래스를 이용해서 정규식을 정의 한다.
: 텍스트와 확인작업 << Matcher (매칭해주는 녀석 ) 클래스를 이용해서 Pattern과 데이터를 비교한다.
- 패턴만드는방법
^ : 문자열의 시작 예) ^a
$ : 문자열의 끝 예) b$
. : 임의의 한문자 모든문자가능 단. '\'는 넣을수 없다.
* : 문자가 없을수도 무한정 있을수도 있다.
+ : 앞 문자가 하나이상 예) [a-z]+
? : 앞 문자가 없거나 하나
[] : 문자의 집합이나 범위를 나타낸다. 예) [abd]하나만 있음된다 [a-z] a~z까지 -기호를 이용하여 범위를 나타낸다.
[^] 의 ^은 not의 의미를 가진다.
{} : 반복횟수 또는 반복범위를 나타낸다. {2,3} {2}
() : 소괄호 안의 문자를 하나의 문자로 인지한다.
| : 패턴안에서 or 연산을 수행할때 사용
\s : 공백문자 예)\\s
\S : 공백문자를 제외한 모든문자. 예)\\S
\w : 알파벳이나 숫자 = [A-Za-z0-9] 대문자 소문자 숫자중의 하나
\W : 알파벳이나 숫자를 제외한 모든 문자
\d : 숫자를 의미 [0-9]까지를 의미
\D : 숫자를 제외한 문자
Pattern p = Pattern.compile("[a-z]*"); //영어 소문자만들어온다 *:앞에있는문자가 0개이거나 여러번 반복될수 있다.
Matcher m = p.matcher("asdfasdf");
System.out.println(m.matches()); //boolean 타입의 결과를 주는 메서드
'Web Programming > Java' 카테고리의 다른 글
[BASIC JAVA] 17.COLLECTION_TEST (0) | 2021.06.20 |
---|---|
[BASIC JAVA] 16.COLLECTION (0) | 2021.06.20 |
[BASIC JAVA] 14.EXCEPTION (0) | 2021.06.19 |
[BASIC JAVA] 13.OOP : 객체지향 프로그래밍_02 (0) | 2021.06.19 |
[BASIC JAVA] 12.OOP : 객체지향 프로그래밍_01 (0) | 2021.06.19 |