전체 글
-
StringBuilder, Math 클래스공부/Java 2024. 3. 31. 16:20
StringBuilder, Math 클래스 StringBuilder - StringBuffer는 멀티쓰레드에 안전(thread safe)하도록 동기화되어 있다. 멀티 쓰레드 프로그램이 아닌 경우, 동기화는 불필요한 성능 저하의 문제가 있다. 이럴 때 StringBuffer 대신 StringBuilder를 사용하면 성능이 향상된다. - StringBuilder는 동기화가 되지 않는 것을 제외하면 StringBuffer와 차이점이 없다. Math 클래스 - 수학 관련 static 메서드의 집합 Math 클래스의 메서드 메서드 / 설명 예제 결과 static double abs(double d) static float abs(float f) static int abs(int i) static long abs(..
-
StringBuffer의 생성자와 메서드공부/Java 2024. 3. 30. 02:12
StringBuffer의 생성자와 메서드 메서드 / 설명 예제 / 결과 StringBuffer() StringBuffer sb = new StringBuffer(); 16문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성한다. sb = "" StringBuffer(int length) StringBuffer sb = new StringBuffer(10); 지정된 개수의 문자를 담을 수 있는 버퍼를 가진 StringBuffer 인스턴스를 생성한다. sb = "" StringBuffer(String str) StringBuffer sb = new StringBuffer("Hi"); 지정된 문자열 값(str)을 갖는 StringBuffer 인스턴스를 생성한다. sb = "Hi" Strin..
-
StringBuffer 클래스공부/Java 2024. 3. 29. 17:01
StringBuffer 클래스 - String처럼 문자형 배열(char[])을 내부적으로 가지고 있다. - 내부적으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있으며, StringBuffer 인스턴스를 생성할 때 그 크기를 지정할 수 있다. - String과는 달리 내용을 변경할 수 있다.(mutable) StringBuffer의 생성자 - 배열은 길이 변경이 불가능하므로, 공간이 부족하면 새로운 배열을 생성해야 한다. - StringBuffer는 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해야 한다. - 배열이 부족하면 배열을 새로 생성 후 내용을 복사, 참조도 변경해야 하므로 효율이 떨어진다. StringBuffer의 변경 - append()는 지정된 내용을 StringBuffer에 추..
-
StringJoiner, 문자열과 기본형 변환공부/Java 2024. 3. 28. 14:49
StringJoiner, 문자열과 기본형 변환 join()과 StringJoiner - join()은 여러 문자열 사이에 구분자를 넣어서 결합한다. 예제 String animals = "dog, cat, bear"; String[] arr = animals.split(","); String str = = String.join("-", arr); System.out.println(str); 결과 dog-cat-bear - StringJoiner 클래스를 사용해서도 문자열을 결합할 수 있다. 예제 StringJoiner sj = new StringJoiner(",", "[", "]"); String[] strArr = {"aaa", "bbb", "ccc"}; for (String s : strArr) sj...
-
String 클래스의 생성자와 메서드공부/Java 2024. 3. 27. 18:36
String 클래스의 생성자와 메서드 메서드 / 설명 예제 결과 String(String s) String s = new String("Hello"); s = "Hello" 주어진 문자열 (s)를 갖는 String 인스턴스를 생성한다. String(char[] value) char[] c = {'H', "e', 'l', 'l', 'o'}; String s = new String(c) s = "Hello" 주어진 문자열(value)을 갖는 String 인스턴스를 생성한다. String(StringBuffer buf) StringBuffer sb = new StringBuffer("Hello"); String s = new string(sb); s = "Hello" StringBuffer 인스턴스가 갖고 있..
-
String 클래스, 문자열 비교, 빈 문자열공부/Java 2024. 3. 26. 15:00
String 클래스, 문자열 비교, 빈 문자열 String 클래스 - 문자열을 다루기 위한 클래스 - 데이터(char[]) + 메서드(문자열 관련) - 내용을 변경할 수 없는 불변(immutable) 클래스 - 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어진다. 문자열의 결합이나 변경이 잦다면, 내용이 변경가능한 StringBuffer를 사용한다. 문자열 비교 예제 String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); String str4 = new String("abc"); str1과 str2는 문자열 리터럴로, str3과 str4는 new 연산자를 이용해 문자열 객체를 만들었다. 그러면 그림은 이렇게 된다. str..
-
hashCode(), toString()공부/Java 2024. 3. 25. 22:54
hashcode(), toString() hashCode() - 객체의 해시코드를 반환하는 메서드 ※ 해시코드 값은 정수값임 (해싱 알고리즘) - Object 클래스의 hashCode()는 객체의 주소를 int로 변환해서 반환 - equals()를 오버라이딩하면, hashCode()도 오버라이딩해야 한다. equals()의 결과가 true인 두 객체의 해시코드는 같아야 하기 때문이다. 이클립스는 Source - Generate hashCode() and equals()... 기능을 통해 자동으로 오버라이딩이 가능하다. ※ System.identityHashCode(Object obj)는 Object클래스의 hashCode()와 동일하다. 객체마다 다른 해시코드를 반환한다. 오버라이딩하기 전 값을 찾을 때..
-
Object 클래스와 equals()공부/Java 2024. 3. 24. 23:12
Object 클래스와 equals() Object 클래스 - 모든 클래스의 최고 조상 - 11개의 메서드를 가지고 있다. Object 클래스의 메서드 설명 protected Object clone() 객체 자신의 복사본을 반환한다. public boolean equals(Object obj) 객체 자신과 객체 ob가 같은 객체인지 알려준다. (같으면 true) protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출된다. 이 때 수행되어야 하는 코드가 있을 때 오버라이딩 한다. (거의 사용안함) public Class getClass() 객체 자신의 클래스 정보를 담고 있는 Class 인스턴스를 반환한다. public int hashCode() 객체 자신의 해..