YOUNGJIN

람다식은 사실 익명 클래스의 객체이다. 함수형 인터페이스: 오직 하나의 추상 메서드만 정의되 있는 인터페이스 람다함수가 포함된 익명 클래스는 함수형 인터페이스의 구현체여야 한다. 람다식 사용 전 Collections.sort(list,new Comparator(){ public int compare(String s1,String s2){ return s2.compareTo(s1); } }); 람다식 사용 후 Collections.sort(list,(s1,s2)->s2.compareTo(s1)); 여기서 Comparator는 당연히 함수형 인터페이스이다. 외부변수를 참조하는 람다식 @FunctionalInterface interface MyFunction{ void myMethod(); } class Ou..

쓰레드 쓰레드를 구현하는 방법은 Thread클래스를 상속받는 방법과 Runnable인터페이스를 구현하는 방법, 모두 두 가지가 있다. 어느 쪽을 선택해도 별 차이는 없지만 Thread클래스를 상속받으면 다른 클래스를 상속받을 수 없기 때문에, Runnable인터페이스를 구현하는 방법이 일반적이다. class ThreadEx1{ public static void main(String args[]){ ThreadA t1=new ThreadA(); Thread t2=new Thread(new ThreadB()); t1.start(); t2.start(); } } class ThreadA extends Thread{ public void run(){ for(int i=0;i=money){ try{Thread.s..

Collection: 다수의 데이터 모든 Collection 클래스들은 아래의 3가지의 인터페이스 중 하나를 구현하고 있다. List: 순서가 있는 데이터의 집합. 데이터의 중복 허용. (ArrayList, LinkedList) Set: 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않음. (HashSet, TreeSet) Map: key와 value의 쌍으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. (HashMap, LinkedHashMap, TreeMap) ArrayList vs LinkedList 순차적으로 데이터를 추가/삭제하는 경우, ArrayList가 빠르다. (일반 배열과 구조가 유사) 비순차적으로 데이터를 추가/삭..

Object클래스 : 모든 클래스의 최고 조상 Object clone() boolean equals(Object obj) Class getClass() int hashCode() String toString() clone()을 사용하려면, 먼저 복제할 클래스가 Cloneable인터페이스를 구현해야 함. 얕은복사: 원본과 객체를 공유 깊은복사: 원본과 다른 객체를 참조 String클래스: 문자열 클래스 String(String s) String(char[] value) String(StringBuffer buf) char charAt(int index) int compareTo(String str) String concat(String str) boolean contains(CharSequence s) b..

컴파일 에러: 컴파일 시에 발생하는 에러 런타임 에러: 실행 시에 발생하는 에러 논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것 자바의 런타임 에러 에러: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 RuntimeException 클래스들: 프로그래머의 실수로 발생하는 예외 Exception클래스들: 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 try{ //예외가 발생할 가능성이 있는 문장 } catch(Exception e){ //Exception이 발생했을 경우, 이를 처리하기 위한 문장 } 멀티 catch 블럭 try{ //예외가 발생할 가능성이 있는 문장 } catch(ExceptionA|ExceptionB..