ジャワ議政石9枚
8889 ワード
ch9-4 hashCode()
メソッド
(hashCode:整数値、対象指紋)
public class Object {
...
public native int hashCode(); <--내용x
//네이티브 메서드: os의 메서드(c언어로 작성됨)
equals()を上書きする場合、hashCode()も上書きする必要があります.
-->equals()の結果、trueの2つのオブジェクトのハッシュコードは同じでなければなりません.
(参考まで)システム.IdentityHashCode(オブジェクトobj)は、オブジェクトクラスのHashCode()と同じ
toString():オブジェクトを文字列に変換する方法
(オブジェクト=ivセットは、オブジェクトを文字列に変換することを意味します.
イコールivの値を文字列に変換します.)
ch 9-1オブジェクトクラス
protected Object clone()
//객체 자신의 복사본을 반환
public boolean equals(Object obj)
//객체 자신과 객체 obj가 같은 객체인지 알려준다.(같으면 true)
protected void finalize()
//객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출.
//이 때 수행되어야하는 코드가 있을 때 오버라이딩한다.(거의 사용안함)
public Class getClass()
//객체 자신의 클래스 정보를 담고 있는 Class인스턴스를 반환
//Class의 C가 대문자인 것은 클래스(설계도)의 정보를 담기 위한 것.
public int hashCode()
//객체 자신의 해시코드를 반환
public String toString()
//객체 자신의 정보를 문자열로 반환
public void notify()
//객체 자신을 사용하려고 기다리는 쓰레드를 하나만 깨운다.
public void notifyAll()
//객체 자신을 사용하려고 기다리는 모든 쓰레드를 깨운다.
[
public void wait()
public void wait(long timeout)
public void wait(long timeout, int nanos)
]
//다른 쓰레드가 notify()나 notifyAll()을 호출할 때까지
//현재 쓰레드를 무한히 또는 지정된 시간(timeout, nanos)동안
기다리게 한다.(timeout은 천분의 1초, nanos는 10^9분의 1초)
ch9-2 equals(Object obj)
同じtrue、異なるfalse
//equals를 오버라이딩
class Value {
int value;
Value(int value) {
this.value = value;
}
public boolean equals(Object obj) {
if(!(obj instanceof Value)) return false;
return this.value==((Value)obj).value;
}
}
//equals를 오버라이딩
class Person {
long id;
public boolean equals(Object obj) {
if(!(obj instanceof Person)) return false;
Person p = (Person)obj;
return this.id ==p.id;
}
Person(long id) {
this.id = id;
}
}
ch 9-7 Stringクラス
Stringクラス=データ(char[])+メソッド(文字列依存)
コンテンツの不変クラスを変更できません
加算演算子(+)を使用した文字列のマージは、パフォーマンスが低下します.
文字列が頻繁に結合または変更される場合は、StringBufferを使用して内容を変更します.
ch 9-8文字列の比較
String str1 = "abc"; //분자열 리터럴 "abc"의 주소가 str1에 저장됨
String str2 = "abc"; //분자열 리터럴 "abc"의 주소가 str2에 저장됨
String str3 = new String("abc"); //새로운 String인스턴스 생성
String str4 = new String("abc"); //새로운 String인스턴스 생성
new String("abc);-->항상 새로운 문자열이 만들어 짐
ch 9-9文字列リットル
(定数プール:定数ストレージ)
ch 9-10空文字列(",空文字列)
String str="";
char[] chArr = new char[0];//長さ0の文字配列
int[] iAarr = new {};//ゼロ長int配列
String s = "";//空の文字列で初期化
char c = ' ';//
ch 9-11 Stringクラスの作成者と方法 String(char[] value)
//주어진 문자열(value)을 갖는 String인스턴스를 생성
//char[] --> String
//char[] c = {'H','e','l','l','o'};
//String s = new String(s);
//==> s = "Hello"
//String-->char[]
//--> tocharArray() 사용
(StringBuffer는 내용 변경 가능)
String(StringBuffer buf)
//StringBuffer인스턴스가 갖고있는 문자열과 같은 내용의 String인스턴스를 생성
//StringBuffer --> String
char charAt(int index)
//문자 1개 반환
int compareTo(String str)
//문자열(str)과 사전순서로 비교.
//같으면 0, 사전순으로 이전이면 음수, 이후면 양수를 반환
//정렬 할 때 사용
String concat(String str)
//문자열(str)을 뒤에 덧붙임
boolean contains(CharSequence s)
//지정된 문자열(s)이 포함되어 있는지 검사
boolean endsWith(String suffix)
//지정된 문자열(suffix)로 끝나는지 검사한다.
boolean equalsIgnoreCase(String str)
//대소문자 구분없이 비교
int indexOf(int ch)
//주어진 문자(ch)가 문자열에 존재하는지 확인하여 위치(index)를 알려줌.
//못 찾으면 -1을 반환
//(index는 0부터 시작)
int indexOf(int ch, int pos)
int indexOf(String str)
int lastIndexOf(int ch)
//뒤에서부터 확인
int lastIndexOf(String str)
int length()
String[] split(String regax)
(regax: 정규식, 규칙이 있는 식)
String[] split(String regex, int limit)
//문자열을 지정된 수로 자른다
boolean startsWith(String prefix)
//주어진 문자열(prefix)로 시작하는지 검사
String substring(int begin)
String substring(int begin, int end)
//문자열을 찾음. 시작위치는 범위에포함.But 끝 위치의 문자는 포함X
(begin<=x && x<end)
String toLowerCase()
String toUpperCase()
//소문자 또는 대문자로 반환
String trim()
//좌 우 공백을 없앰
static String valueOf(boolean b 등 기본형)
//기본형을 문자열로 반환
//참조형의 경우 toString()을 호출한 결과를 반환
//""더하는 것 보다 성능이 빠름
ch 9-12 join()とStringJoiner
String(char[] value)
//주어진 문자열(value)을 갖는 String인스턴스를 생성
//char[] --> String
//char[] c = {'H','e','l','l','o'};
//String s = new String(s);
//==> s = "Hello"
//String-->char[]
//--> tocharArray() 사용
(StringBuffer는 내용 변경 가능)
String(StringBuffer buf)
//StringBuffer인스턴스가 갖고있는 문자열과 같은 내용의 String인스턴스를 생성
//StringBuffer --> String
char charAt(int index)
//문자 1개 반환
int compareTo(String str)
//문자열(str)과 사전순서로 비교.
//같으면 0, 사전순으로 이전이면 음수, 이후면 양수를 반환
//정렬 할 때 사용
String concat(String str)
//문자열(str)을 뒤에 덧붙임
boolean contains(CharSequence s)
//지정된 문자열(s)이 포함되어 있는지 검사
boolean endsWith(String suffix)
//지정된 문자열(suffix)로 끝나는지 검사한다.
boolean equalsIgnoreCase(String str)
//대소문자 구분없이 비교
int indexOf(int ch)
//주어진 문자(ch)가 문자열에 존재하는지 확인하여 위치(index)를 알려줌.
//못 찾으면 -1을 반환
//(index는 0부터 시작)
int indexOf(int ch, int pos)
int indexOf(String str)
int lastIndexOf(int ch)
//뒤에서부터 확인
int lastIndexOf(String str)
int length()
String[] split(String regax)
(regax: 정규식, 규칙이 있는 식)
String[] split(String regex, int limit)
//문자열을 지정된 수로 자른다
boolean startsWith(String prefix)
//주어진 문자열(prefix)로 시작하는지 검사
String substring(int begin)
String substring(int begin, int end)
//문자열을 찾음. 시작위치는 범위에포함.But 끝 위치의 문자는 포함X
(begin<=x && x<end)
String toLowerCase()
String toUpperCase()
//소문자 또는 대문자로 반환
String trim()
//좌 우 공백을 없앰
static String valueOf(boolean b 등 기본형)
//기본형을 문자열로 반환
//참조형의 경우 toString()을 호출한 결과를 반환
//""더하는 것 보다 성능이 빠름
String animals = "dog,cat,bear";
String[] arr = animals.split(",");
String str = String.join("-",arr);
System.out.println(str); //dog-cat-bear
ch 9-13文字列からベースタイプへの変換
数値を文字列に変換します.
-->数字+",valueOf
文字列を数値に変換します.
Integer.ParseInt(「文字列」)
-->戻りタイプint、古いメソッド
Integer.valueOf(「文字列」)
-->戻りタイプIntegerですが、タイプint、新しいメソッドを返すこともできます.
ch 9-15 StringBufferクラス
ch 9-16 StringBufferの作成者
(作成、コピー、参照)
ch 9-17 StringBufferの変更
ch 9-18 StringBuffer比較
ch 9-19 StringBufferの作成者と方法 StringBuffer()
//16문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성
StringBuffer(int length)
StringBuffer(String str)
//크기지정
StringBuffer append(기본형과 Object obj)
int capacity()
//StringBuffer의 버퍼 크기(char[]크기)를 알려줌
char charAt(int index)
StringBuffer delete(int start, int end)
//문자 n개 제거, 끝 위치의 문자는 제외
StringBuffer deleteCharAt(int index)
//문자 1개 제거
StringBuffer insert(int pos, 기본형+Object obj)
//지정된 위치(pos)에 추가, pos는 0부터 시작
int length()
StringBuffer replace(int start, int end, String str)
//from ~ to를 변환
StringBuffer reverse()
//문자열 뒤집기
void setCharAt(int index, char ch)
지정된 위치의 문자 하나를 ch로 바꾼다
void setLength(int newLength)
//길이 변경
String toString()
//StringBuffer를 String으로 반환
String substring(int start)
String substring(int start, int end)
//from ~ to 문자 잘라내기
ch9-21 StringBuilder
StringBuffer()
//16문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성
StringBuffer(int length)
StringBuffer(String str)
//크기지정
StringBuffer append(기본형과 Object obj)
int capacity()
//StringBuffer의 버퍼 크기(char[]크기)를 알려줌
char charAt(int index)
StringBuffer delete(int start, int end)
//문자 n개 제거, 끝 위치의 문자는 제외
StringBuffer deleteCharAt(int index)
//문자 1개 제거
StringBuffer insert(int pos, 기본형+Object obj)
//지정된 위치(pos)에 추가, pos는 0부터 시작
int length()
StringBuffer replace(int start, int end, String str)
//from ~ to를 변환
StringBuffer reverse()
//문자열 뒤집기
void setCharAt(int index, char ch)
지정된 위치의 문자 하나를 ch로 바꾼다
void setLength(int newLength)
//길이 변경
String toString()
//StringBuffer를 String으로 반환
String substring(int start)
String substring(int start, int end)
//from ~ to 문자 잘라내기
(同期:マルチスレッドセキュリティ(thread-safe)
シングルスレッド:一度に1つのタスク
マルチスレッド:一度にn個のタスクを実行する
-->この場合、StringBufferではなくStringBuilderを使用すると、パフォーマンスが向上します.
ch 9-21 Mathクラス
static double abs(double a)
//float, int, long도 가능
//절대값 반환
static double ceil(double a)
//올림
static double floor(doubla a)
//floor는 바닥-->버림
static double max(double a, double b)
//큰 것 반환
static double min(double a, double b)
//작은 것 반환
static double random()
static double rint(double a)
//짝수 반올림, 1.5, 2.5 등은 반올림해서 짝수를 만듬
static long round(double a)
static long round(double a)
//일반 반올림
ch 9-25包装器類
Boolean
Character
Byte
Short
Integer
Long
Float
Double
ch 9-27 Numberクラス
intValue(), longValue(), DoubleValue(), floatValue()
ch 9-28文字列を数値に変換
문자열 -> 기본형
: Interger.parstInt("100"), ...
문자열 -> 래퍼클래스
: Integer.valueOf("100"), ...
래퍼클래스 -> 문자열
Byte b = new Byte("100");
String str = b.toString();
int i4 = Integer.parseInt("100",2);//100(2) -> 4
Integer.parseInt(「文字列」、置換する進数);-->10進数
ch 9-30自動組立と取り外し
int->Integer//自動追跡
Integer->int//unboxing
Reference
この問題について(ジャワ議政石9枚), 我々は、より多くの情報をここで見つけました https://velog.io/@tone8943/자바의정석-9장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol