-
day23 - JAVA (자바 , JAVA API, java lang, equals(), 객체 해시코드, toString())KIC/JAVA 2021. 7. 17. 20:14반응형
[JAVA API]
-> java api 에는 대표적으로 java.lang 과 java.util이 있다.
[java lang]
-> 자바 프로그램의 기본적인 클래스를 담은 패키지
-> 포함된 클래스와 인터페이스는 import 없이 사용
[주요 클래스]
-> Wrapper: 참조 변수간에 주소를 주고받는 것을 케스팅이라고 하는데 이 개념중 기본형과 참조형은 둘 간의 케스팅이루어 지지 않는다. 이 기본형을 참조 형으로 바꿔주는게 Wrapper이다.
-> 기본형은 call by value 라 값이 들어 있는 것이고 Wrapper는 주소로 할당하는 것
-> 나중에 컬렉션에 갔을 때 이걸 처리하는 오브젝트 타입이 필요하기 때문에 Wrapper가 중요하다.
[Oblect 클래스의 메서드]
[equals() 메소드]
-> 기본적으로 == 연산자와 동일한 결과 리턴(주소 비교)
-> equals() 메소드는 논리적 동등을 위해 오버라이딩이 필요하다.
논리적 동등: 같은 객체이건 다른 객체이건 상관 없이 객체에 저장한 데이터가 동일함
-> 그냥 == 는 객체의 값 뿐만 아니라 객체 자체가 같은 객체인지 비교한다.
-> equals()은 객체의 값이 같은지 비교한다.
[객체 해시코드]
-> 해시코드란 객체를 식별할 ㅎ나의 정수값
-> 객체의 메모리 번지를 이용해 해시코드를 만들어 리턴한다.
-> 개별 객체는 해시코드가 모두 다름
=> equals() 가 true 여야 하고 두 오브젝트의 해시코드가 같아야지만 두 오브젝트는 같은 오브젝트이다.
[객체 문자정보 toString()]
-> 객체를 문자열로 표현한 값
-> Object 클래스의 toString() 메소드는 객체의 문자 정보를 리턴한다.
-> 일반적으로는 의미있는 문자정보가 나오도록 재정의 해서 사용
-> Data 클래스: 현재 시스템의 날짜와 시간 정보 리턴
-> String 클래스: 저장하고 있는 문자열 리턴
-> system.out.println(Object) 메소드
-> 오브젝트의 toString()의 리턴값을 출력한다.
[객체 복제 clone()]
-> 원본 객체의 필드 값과 동일한 값을 가지는 새로운 객체를 생성하는 것
-> 얕은 복제: 필드 값만 복제(참조 타입 필드는 번지를 공유)
-> 깊은 복제: 참조하고 있는 객체도 복제
-> Object clone() 메소드
-> 동일한 필드 값을 가진 얕은 복제된 객체 리턴
-> java.lang.Cloneable 인터페이스를 구현한 객체만 복제 가능
-> 깊은 복제는 clone() 메서드를 재정의하고 참조 객체도 복제해야 한다.
[String 메소드]
-> 문자열의 추출, 비교, 찾기, 분리, 변환등과 같은 다양한 메소드를 가진다.
사용 빈도 높은 메서드들
[String 메소드 ex]
package javaPro.java_string; public class StringEx1 { public static void main(String[] args) { String s = new String("ABCDEFGH"); System.out.println(s.charAt(4)); //E, 5번째 문자 리턴 //정렬관련 메서드. "ABCDEFGH" - "abc" : 65 - 97 = -32 System.out.println(s.compareTo("abc"));//-32 //IgnoreCase : 대소문자 구분없이. System.out.println(s.compareToIgnoreCase("abcdefgh"));//0 //다를땐 -1 출력 //concat() : 문자열 연결. s = s + "abc" System.out.println(s.concat("abc"));//ABCDEFGHabc System.out.println(s + "abc");//ABCDEFGHabc //endsWith : s문자열의 끝이 "GH"? System.out.println(s.endsWith("GH")); //true //startsWith : s문자열의 시작이 "AB"? System.out.println(s.startsWith("AB")); //true System.out.println(s.equalsIgnoreCase("abcdefgh"));//true System.out.println(s.equals("abcdefgh"));//false s = new String("This is a String"); //indexOf : 문자나 문자열의 위치 리턴 System.out.println(s.indexOf('i')); //2 //indexOf : 5번인덱스포함 이후에 문자나 문자열의 위치 리턴. System.out.println(s.indexOf('i',5));//5 //indexOf : 15번인덱스포함 이후에 문자나 문자열의 위치 리턴. System.out.println(s.indexOf('i',15));//-1. 15번 인덱스 이후 문자없음. System.out.println(s.indexOf("is")); //2 System.out.println(s.indexOf("is",3)); //5 //lastIndexOf : 뒤쪽부터 검색하여 문자나 문자열의 위치 리턴 System.out.println(s.lastIndexOf("is")); //5 System.out.println(s.length()); //16. 문자열의 길이 //replace : 치환 is=> QR문자열로 치환. System.out.println(s.replace("is", "QR")); //substring : 부분문자열 리턴 // 5번 인덱스 부터 이후를 부분문자열로 리턴 System.out.println(s.substring(5)); // 5번 인덱스부터 13번인덱스 앞 까지를 부분문자열로 리턴 (5 ~ 12 인덱스) System.out.println(s.substring(5,13)); System.out.println(s.toLowerCase()); //소문자로 출력 System.out.println(s.toUpperCase()); //대문자로 출력 //trim() : 양쪽 공백 제거. System.out.println("["+" 문자열 trim 메서드 ".trim()+"]"); } }
[Math 클래스]
-> 수학 계산에 사용할 수 있는 클래스 제공
[Random 클래스]
-> 난수를 만드는 알고리즘에 사용되는 seed 설정 가능
[Date 클래스]
-> 날짜를 표현하는 클래스
-> 날짜 정보를 객체간에 주고 받을 때 사용
[Calendar 클래스]
-> 달력을 표현한 추상 클래스
-> os 에 설정된 시간대 기준의 Calendar 객체를 얻는다.
-> 다른 시간대의 Calendar 객체도 얻기 가능
[Format 클래스]
-> 숫자와 날짜를 원하는 형식의 문자열로 변환
[종류]
▶ 숫자 형식: DecimalFormat
▶ 날짜 형식: SimpleDateFormat
▶ 매개변수화 된 문자열 형식: MessageFormat[숫자 형식 클래스(DecimalFormat)]
-> 적용할 패턴 선택해 생성자 매개값으로 지정 후 객체 생성300x250'KIC > JAVA' 카테고리의 다른 글
day25_1 - JAVA (자바, Generic) (0) 2021.07.19 day24 - JAVA (자바 , SimpleDateFormat, DecimalFormat, parse, Math, Calendar) (0) 2021.07.17 day22 - JAVA (자바 , 접근 제한자, 예외 처리(Exception Handle)) (0) 2021.07.17 day21 - JAVA (inner class, static 내부 클래스, non-static 내부 클래스, 지역 내부 클래스, 무명 클래스) (0) 2021.07.17 day20 - JAVA (자바 , 인터페이스, final, static) (0) 2021.07.16