일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 파이썬
- 구현
- Matrix
- two pointers
- database
- Number Theory
- string
- Math
- Tree
- Binary Tree
- greedy
- implement
- Class
- SQL
- Binary Search
- Method
- hash table
- bit manipulation
- java
- Stack
- 코딩테스트
- array
- Counting
- dynamic programming
- simulation
- 코테
- geometry
- 자바
- Data Structure
- sorting
- Today
- Total
목록Method (20)
코린이의 소소한 공부노트

[메서드 참조] - 하나의 메서드만 호출하는 람다식을 더 간단하게 표현하는 방법 1. 메서드별 참조 방법 // 1) static메서드 참조 (x) -> ClassName.method(x) // 이 람다식을 ClassName::method // 이렇게 참조 가능 // 2) 인스턴스메서드 참조 (obj, x) -> obj.method(x) // 이 람다식을 ClassName::method // 이렇게 참조 가능 // 3) 특정 객체 인스턴스메서드 참조 - 거의 사용하지 않는다. (x) -> obj.method(x) // 이 람다식을 obj::method // 이렇게 참조 가능 // 결국 우리가 사용할 메서드 참조 방법은 // 클래스이름::메서드이름 형태 // 메서드 참조를 보고 이해가 되지 않는다면 // 다..

[java.util.function 패키지] - 자주 사용되는 다양한 함수형 인터페이스를 제공하는 패키지 1. 기본 함수형 인터페이스 - 함수는 반환값이 0개 또는 1개이다. // 1) java.lang.Runnable 인터페이스 void run() // 매개변수X, 반환값X // 2) Supplier 인터페이스 T get() // 매개변수X, 반환값 1개 // 3) Consumer 인터페이스 void accept(T t) // 매개변수 1개, 반환값X -> Supplier와 반대 // 4) Function 인터페이스 R apply(T t) // 매개변수 1개, 반환값 1개 -> 일반적인 함수 // 5) Predicate 인터페이스 boolean test(T t) // 매개변수 1개, 반환값 논리형 ->..

[동기화가 필요한 이유] 1. 멀티 쓰레드 프로세스에서는 다른 쓰레드의 작업에 영향을 미칠 수 있다. - 진행 중인 작업이 다른 쓰레드에게 간섭받지 않게 하려면 동기화가 필요하다. 2. 동기화를 하려면 다른 쓰레드에게 간섭받지 않아야 하는 문장들을 임계 영역(critical section)으로 설정한다. - 임계 영역은 락(lock)을 얻은 단 하나의 쓰레드만 출입이 가능하다.(객체 1개에 락 1개) - 락을 걸어둠으로써 데이터의 일관성을 유지하게 한다. - 임계 영역이 많을수록 성능이 떨어지기 때문에 최소한의 영역만 설정한다. [synchronized 키워드를 이용한 동기화] 1. 임계 영역을 설정하는 방법 // 1) 특정한 영역을 임계 영역으로 지정 synchronized(객체의 참조변수) { // ..

[데몬 쓰레드] boolean isDaemon() // 쓰레드 그룹이 데몬 쓰레드 그룹이면 true를 반환한다. void setDaemon(boolean on) // 쓰레드를 데몬 쓰레드 또는 사용자 쓰레드로 변경한다. on을 true로 지정하면 데몬 쓰레드가 된다. // setDaemon()은 반드시 start()를 호출하기 전에 실행되어야 한다. // start() 후에는 데몬 쓰레드로 변경할 수 없기 때문이다. // start() 전에 setDaemon()을 호출하면 IllegalThreadStateException이 발생한다. 1. 일반 쓰레드(non-daemon thread)의 작업을 돕는 보조적인 역할을 수행하는 쓰레드 2. 일반 쓰레드가 모두 종료되면 자동적으로 종료된다. 3. 가비지 컬렉터..

[와일드카드 ‘?’ 사용 이유] - 지네릭 타입을 이용한 선언문 작성 시 타입이 같아야 한다.. ArrayList list = new ArrayList(); // OK list = new ArrayList(); // 지네릭 타입이 달라서 에러 list = new ArrayList(); // 지네릭 타입이 달라서 에러 - 지네릭 타입에 와일드카드를 쓰면, 하나의 참조변수로 여러 타입의 객체를 참조할 수 있다. ArrayList - 제한 없음 - 모든 타입 가능 -

[HashSet 클래스] 1. Set 인터페이스를 구현한 대표적인 컬렉션 클래스 2. 순서를 유지하지 않는다 -> 순서를 유지하려면 LinkedHashSet 클래스를 사용하면 된다. 3. 중복을 허용하지 않는다 -> 객체를 저장하기 전에 기존에 같은 객체가 있는지 확인한다. [생성자] HashSet() // 기본 생성자 HashSet(Collection c) // c에 저장된 객체를 담은 HaseSet 생성 HashSet(int initialCapacity) // 초기 용량 설정 HashSet(int initialCapacity, float loadFactor) // 초기 용량 + 용량을 늘리는 시기 설정 // loadFactor=0.8이면 80%가 찼을 때 용량 늘림 // 보통은 2배로 늘린다. [메서..

Math 클래스는 수학 관련 static 메서드의 집합이다. [상수] public static final double E; // E = 2.7182818284590452354, 자연로그의 밑 public static final double PI; // PI = 3.14159265358979323846, 원주율 [메서드] double d = 90.4552; long l = Math.round(d); // l = 90 // d를 소수점 셋째 자리에서 반올림 하고 싶다면 d *= 100;// d = 9045.52; l = Math.round(d);// l = 9046 d = l / 100.0;// d = 90.46 // 만약 100.0이 아닌 100으로 나눈다면 d = l / 100; // d = 90.0 s..

[StringBuffer 클래스] 1. String 클래스처럼 문자열을 저장하고 다루기 위한 클래스이다. 2. String 클래스와 마찬가지로 내부적으로 char[]를 갖고 있다. 3. String은 내용을 변경할 수 없지만(immutable), StringBuffer는 내용을 변경할 수 있다(mutable). 4. 배열은 길이를 변경할 수 없다. 그러므로 StringBuffer를 생성할 때 저장할 문자열의 길이를 고려해서 적절한 크기로 생성해줘야 한다. -> [생성자]에서 확인 가능 [생성자] public StringBuffer(){ this(16); } StringBuffer sb = new StringBuffer(); // sb = "" StringBuffer() - 16 문자를 담을 수 있는 버퍼..

[String 클래스] 1. 문자열을 다루기 위한 클래스 2. 내부적으로 char[]을 가지고 있다. 3. 내용을 변경할 수 없는 불변(immutable) 클래스다. 즉 한번 생성되면 수정할 수 없다. 아래처럼 문자열 결합을 해서 수정하는 것 같아 보이는 코드도 메모리에서는 우리의 생각과는 다른 일이 일어난다. - 문자열 결합(+)은 계속 String 객체를 만들어 내서 성능이 떨어진다. 문자열의 결합이나 변경이 잦다면, 내용을 변경할 수 있는 StringBuffer 클래스를 사용하는 것이 좋다. [문자열을 생성하는 방법] // 1. 기본형처럼 생성 String s1 = "abc";// 문자열 리터럴 "abc"의 주소가 s1에 저장됨 String s2 = "abc";// 문자열 리터럴 "abc"의 주소가..

Object 클래스는 1. 모든 클래스의 최고 조상 클래스이다. 2. iv 없이 메서드만 11개 있다. - finalize(): 생성자와 반대 개념의 메서드. 메모리 부족으로 인해 객체를 없애야 할 때, finalize()에 수행되어야 할 코드가 있다면 이걸 실행하느라 메모리 정리하는 데 시간을 더 쓸 수 있으므로 가급적이면 사용하지 않는 메서드. - getClass(): Class 클래스는 클래스 정보(조상 클래스, iv 개수, 생성자 등)를 담기 위한 클래스. getClass()를 이용하면 메서드를 호출한 클래스의 정보가 담긴 Class 객체(인스턴스)를 반환. - notify(), notifyAll(), wait(): 쓰레드와 관련된 메서드. - protected 메서드인 clone()과 final..