본문 바로가기

All205

[이펙티브자바 3판] ITEM10. equals는 일반 규약을 지켜 재정의하라 이번장의 핵심은... 꼭 필요한 경우가 아니면 equals를 재정의하지 말자 많은 경우 Object의 equals가 여러분이 원하는 비교를 정확히 수행해준다 재정의해야 할 때는 그 클래스의 핵심 필드 모두 빠짐 없이, 아래에 설명되어 있는 5가지 규약을 확실히 지키고 있는지 비교하자 equals() vs hashCode() equals() : 두 객체의 내용이 같은지, 논리적 동등성을 비교하는 것이다 hashCode() : 두 객체가 같은 객체인지, 동일성을 비교할 수 있다 equals()는 이럴 땐 재정의하지 말자 1. 각 인스턴스가 본질적으로 고유할 때 즉, 값을 표현하는게 아니라 동작하는 개체를 표현하는 클래스 ex) Thread -> Object의 equals 메서드는 이러한 클래스에 딱 맞게 구.. 2020. 9. 11.
[Codility(코딜리티)] Lesson4. MaxCounters (88%) Lesson 4 Counting Elements - MaxCounters (Java Solution) app.codility.com/programmers/lessons/4-counting_elements/max_counters/ MaxCounters coding task - Learn to Code - Codility Calculate the values of counters after applying all alternating operations: increase counter by 1; set value of all counters to current maximum. app.codility.com 문제 카운터 배열의 수 N과 배열 A가 주어진다 X는 1이상, N이하, k번째 카운터의 값을 1증가 한.. 2020. 9. 9.
[Codility(코딜리티)] Lesson4. FrogRiverOne (100%) Lesson 4 Counting Elements - FrogRiverOne (Java Solution) app.codility.com/programmers/lessons/4-counting_elements/frog_river_one/ FrogRiverOne coding task - Learn to Code - Codility Find the earliest time when a frog can jump to the other side of a river. app.codility.com 문제 작은 개구리가 강 건너편으로 건너기를 원한다 개구리는 처음에 0에 위치하고, X+1로 가기를 원한다 N개로 구성된 배열 A는 떨어지는 나뭇잎들을 나타내고, A[K]는 K초에 한 나뭇잎의 위치를 나타낸다 목표는 1에서 .. 2020. 9. 9.
[Codility(코딜리티)] Lesson3. TapeEquilibrium (100%) Lesson 3 Time Complexity - TapeEquilibrium (Java Solution) app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/ TapeEquilibrium coding task - Learn to Code - Codility Minimize the value |(A[0] + ... + A[P-1]) - (A[P] + ... + A[N-1])|. app.codility.com 문제 N개의 정수들로 구성된 비어있지 않은 A 배열이 있다 어떠한 정수 P (0 |10-3| = 7 즉, 1이 답이다 해결 단순하게 문제 그대로 풀었다 A 배열의 총합을 구하고, 배열을 반으로 나눴을 때, 앞의 값들의 합을 저.. 2020. 9. 9.
[이펙티브자바 3판] ITEM9. try-finally 보다는 try-with-resources를 사용하라 이번장의 핵심은... 꼭 회수해야 하는 자원을 다룰 때는 try-finally 말고, try-with-resources를 사용하자 코드는 더 짧고 분명해지고, 만들어지는 예외 정보도 훨씬 유용하다 자원회수를 finalizer로? No! 자바 라이브러리에는 close 메서드를 호출해 직접 닫아줘야 하는 자원이 많다 Ex) InputStream, OutputStream, java.sql.Connection 등 자원 닫기를 놓칠 경우, 예측할 수 없는 성능 문제로 이어지기도 한다 상당 수가 안전망으로 finalizer를 활용하고 있지만 finalizer는 좋지 않다 자세한 내용은 아래에 정리해두었다 https://jackjeong.tistory.com/17 [이펙티브자바 3판] ITEM8. finalizer와.. 2020. 9. 9.
[Codility(코딜리티)] Lesson3. PermMissingElem (100%) Lesson 3 Time Complexity - PermMissingElem (Java Solution) app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/ PermMissingElem coding task - Learn to Code - Codility Find the missing element in a given permutation. app.codility.com 문제 배열 A가 주어지는데, N개의 다른 정수들로 구성되어있다 배열은 1~N+1 범위안의 정수들로 구성된다 그것은 정확히 1개의 정수가 빠진다는 것을 의미한다 그 1개의 정수를 출력한다 예를 들면, A = {2,3,1,5} 배열이 주어진다 A[0] = 2, .. 2020. 9. 8.
[Codility(코딜리티)] Lesson3. FrogJmp (100%) Lesson 3 Time Complexity - FrogJmp (Java Solution) app.codility.com/programmers/lessons/3-time_complexity/frog_jmp/ FrogJmp coding task - Learn to Code - Codility Count minimal number of jumps from position X to Y. app.codility.com 문제 주어지는 변수는 X, Y, D 작은 개구리가 현재 X 위치에 있다 그리고 Y와 같거나 그 이상으로 가기를 원한다 D 만큼 움직일 수 있다 Y와 같거나 그 이상으로 가려면 몇 번을 점프? 예를 들면, X = 10, Y = 85, D = 30 1. 10 + 30 = 40 2. 10 + 30 + .. 2020. 9. 8.