자바 191

JAVA 자바 Class 객체 얻기 getClass(), forName() /// 리플렉션 getDeclaredConstructors(), getDeclaredFields(), getDeclaredMethods()

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ Class 클래스 자바는 클래스와 인터페이스의 메타 데이터를 java.lang 패키지에 소속된 Class 클래스로 관리합니다. 여기서 메타 데이터란 클래스의 이름, 생성자 정보, 필드 정보, 메서드 정보를 말합니다. Class 객체 얻기 getClass(), forName() 프로그램에서 Class 객체를 얻기 위해서는 Object 클래스의 getClass() 메서드를 이용하면 됩니다. 모든 클래스에서 getClass() 메서드를 호출할 수 있습니다.Class clazz = obj.getClass(); getClass() 메서드..

자바 2017.03.15

JAVA 자바 System 클래스 현재 시각 읽기 currentTimeMiles() , nanoTime() /// 시스템 프로퍼티 읽기 getProperty()

현재 시각 읽기 currentTimeMiles() , nanoTime()컴퓨터 시계로부터 현재시간을 읽어서 currentTimeMiles() : 밀리세컨드(1/1000초)단위 long 값 리턴 nanoTime() : 나노세컨드(1/1000000000초)단위 long 값 리턴 long time = System.currentTimeMiles();long time2 = System.nanoTime(); 주로 프로그램의 실행 소요 시간 측정에 사용됩니다. 프로그램 시작 시 시각을 읽고 프로그램이 끝날 때 시각을 읽어서 차이를 구하면 프로그램 실행 송 시간이 나옵니다.예제)public class TimeExample { public static void main(String[] args) { long time1 ..

자바 2017.03.14

JAVA 자바 System 클래스 프로그램 종료 exit() /// 가비지 컬렉터 gc()

System 클래스 자바 프로그램은 JVM 위에서 실행됩니다. 운영체제의 모든 기능을 자바 코드로 직접 접근하기란 어렵습니다. java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있습니다. 프로그램 종료, 기보드로부터 입력, 모니터로 출력, 메모리 정리, 현재 시간 읽기, 시스템 프로퍼티 읽기, 환경 변수 읽기 등이 가능합니다.System. 클래스의 모든 필드와 메서드는 정적 필드와 정적 메서드로 구성. 프로그램 종료 exit() : 현재 실행하고 있는 프로세스를 강제 종료시키는 역할 JVM을 강제적으로 종료시킬 때도 있습니다. 이때 System 클래스의 exit() 메서드를 호출하면 됩니다. exit()메서드는 int 매개값을 지정하도록 되어있습니다. 이 ..

자바 2017.03.14

JAVA 자바 Objects 클래스 해시 코드 생성 hash() , hashCode() ///널 여부 검사 isNull(), nonNull(), requireNonNull()

해시코드 생성 hash(), hashCode() Objects,hash(Object... values) 메서드 :매개 값으로 주어진 값들을 이용해서 해시 코드를 생성하는 역할매개값들로 배열을 생성하고 Arrays.hashCode(Obejct[])를 호출해서 해시코드를 얻고값을 리턴. 이 메서드는 클래스가 hashCode()를 재정의할 때 리턴값을 생성하기 위해서 사용하면 좋습니다.클래스가 여러 가지 필드를 가지고 있을 때 필드들로부터 해시코드를 생성하면동일한 필드값을 가지는 객체는 동일한 해시코드를 가질 수 있습니다. @Overridepublic int hashCode() { return Objects.hash(field1, field2, field3); }Objects.hashCode(Object o)..

자바 2017.03.14

JAVA 자바 Objects 클래스 객체 비교 compare(T t1, T t2, Comparator<T> c) /// 동등비교 equals() 와 deepEquals()

Objects 클래스객체 비교, 해시코드 생성, null 여부, 객체 문자열 리턴 등의 연산을 수행하는 정적 메서드들로 구성된 Object 의 유틸리티 클래스입니다. 아래는 Objects 클래스가 가지고 있는 정적 메서드들입니다. 객체비교 compare(T a, T b, Comparatorc)두 객체를 비교자(Comparator)로 비교해서 int 값을 리턴. java.util.Comparator는 두 객체를 비교하는 compare(T a, T b) 메서드가 정의되어 있습니다. T는 비교할 객체 타입이라는 것만 알아두면 되겠습니다. compare() 메서드는 리턴타입이 int 입니다. a가 b 보다 작으면 음수를, 같으면 0을 크면 양수를 리턴하도록 구현 클래스를 만들어야 해요.public interfa..

자바 2017.03.14

JAVA 자바 Object 클래스 객체 소멸자 finalize()

객체 소멸자 finalize() 참조하지 않는 배열이나 객체는 Garbage Collector 가 힙 영역에서 자동적으로 소멸시킵니다. Garbage Collector는 객체를 소멸하기 직전에 마지막으로 객체 소멸자 finalize()를 실행 시킵니다. 소멸자 : Object의 finalize() 메서드.기본적으로 실행 내용이 없습니다. 객체가 소멸되기 전에 마지막으로 사용했던 자원(데이터 연결, 파일 등)을 닫고 싶거나 중여한 데이터를 저장하고 싶다면 Object의 finalize()를 재정의할 수 있습니다.예제)public class Counters { private int no; public Counters(int no) { this.no = no; } @Override protected void ..

자바 2017.03.14

JAVA 자바 Object 클래스 객체 복제 clone

객체 복제 clone() 객체 복제 : 원본 객체의 필드값과 동일한 값을 가지는 새로운 객체를 생성하는 것객체를 복제하는 이유 : 원본 객체를 안전하게 보호하기 위해신뢰하지 않은 영역으로 원본 객체를 넘겨 작업할 경우 원본 객체의 데이터가 훼손될 수 있기 때문에 복제된 객체를 만들어 신뢰하지 않는 영역으로 넘기는 것이 좋습니다. 객체를 복제하는 방법은 얕은 복제와 깊은 복제가 있습니다. 얕은 복제(thin clone) 필드 값을 복사해서 객체를 복제하는 것. 필드값만 복제하기 때문에 필드가 기본 타입일 경우 값 복사가 일어나고 필드가 참조 타입일 경우에는 객체의 번지가 복사됩니다. 예)원래 객체에 int 타입의 필드와 배열 타입의 필드가 있을 경우 얕은 복제된 필드의 값은 아래 그림과 같습니다. clon..

자바 2017.03.14

JAVA 자바 Object 클래스 객체의 문자 정보 toString()

객체의 문자 정보 toString()객체의 문자 정보를 리턴합니다. 객체의 문자 정보 : 객체를 문자열로 표현한 값을 말합니다. 기본적으로 toString 메서드는 "클래스@16진수해시코드" 구성된 문자 정보를 리턴합니다.Object obj = new Object();System.out.println(obj.toString() );실행 결과=> java.lang.Object@de6ced Object 클래스의 toString() 메서드의 리턴값은 자바 애플리케이션에서는 별로 중요하지 않은 정보이므로 Object 하위 클래스는 toString() 매서드를 오버라이딩해서 간결하고 유익한 정보를 리턴하도록 되어 있습니다. 예를 들어 java.util 패키지의 Date 클래스는 toString() 메서드를 오버라..

자바 2017.03.14

JAVA 자바 Object 클래스 객체 해시코드 hashCode()

객체 해시코드 hashCode()hashCode() 메서드는 객체의 메모리 번지를 이용해서 해시코드를 만들어 리턴하기 때문에 객체마다 다른 값을 가지고 있습니다. 논리적 동등 비교시에는 hashCode() 를 오버라이딩할 필요성이 있습니다. 이부분에 대해서는 다음에 공부하도록 하겠습니다. hashCode() 메서드를 실행해서 리턴된 해시코드 값이 같은지 본 후 해시코드 값이 다르면 다른 객체로 판단하고, 같으면 equals() 메서드로 다시 비교합니다.때문에 hashCode() 메서드가 true가 나와도 equals() 의 리턴값이 다르면 다른 객체가 됩니다. 같음 truehashCode() 리턴값 -------> equals() 리턴값 --------> 동등 객체 | | false 다름 | | ----..

자바 2017.03.14

JAVA Object 클래스 객체 비교 equals()

Object 클래스 클래스를 선언할 때 다른 클래스를 상속하지 않으면 java.lang.Object 클래스를 상속하게 됩니다. 따라서 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스입니다.Object는 자바의 최상위 클래스에 해당합니다. 필드가 없고, 메서드들로 구성되어 있습니다. 이 메서드들은 모든 클래스가 Object를 상속하기 때문에 모든 클래스에서 사용이 가능합니다. 객체 비교 equals() Object의 메서드. public boolean equals(Object obj) { ... }equals() 메서드의 매개 타입은 Object 인데 이모든 객체가 매개값으로 대입될 수 있음을 말합니다. Object가 최상위 타입이므로 모든 객체는 Object 타입으로 자동 타입 변환이 ..

자바 2017.03.14