본문 바로가기

java8

Comparable를 구현한 방식과 comparing을 구현한 방식간 성능차이 자바에서 객체를 정렬시키기 위해서는 Comparable or Comaparator 인터페이스를 사용합니다. 정렬을 해야하는 객체의 경우 해당 클래스에 Comparable을 구현하여 compareTo 메소드를 정의하면 되는데요. 이펙티브 자바에서는 compareTo 메소드의 정의규칙을 다음과 같이 설명합니다. Comparable을 구현한 클래스는 모든 x, y에 대해 x.compareTo(y) == y.compareTo(x)여야 한다. Comparable을 구현한 클래스는 추이성을 보장해야한다. (x.compareTo(y) > 0 && y.compareTo(z) > 0 이면 x.compareTo(z) > 0이다.) Comparable을 구현한 크래스는 모든 z에 대해 x.compareTo(y) == 0이면.. 더보기
헤비한 객체 Lazy하게 생성하여 사용하기 Functional Programming in JAVA8이라는 책을 공부하면서 실무에서 사용할 수 있는 패턴을 응용하여 사용해봤습니다. 대부분의 프로젝트에서는 아이디, 패스워드 등 입력값에 대한 Validation Check를 해야하는데요. 사용자의 요청마다 매번 Pattern 객체를 생성하여 입력값에 대한 Validation Check를 하는 것은 비효율적이라 생각하게 되었습니다. Pattern 객체를 생성하려면 많은 리소스가 필요하기 때문이죠. 프로그램이 실행 될 때 단 하나의 인스턴스만을 생성한 후 사용 시 가져온다면 매번 객체를 생성하기 위한 리소스가 들지 않기 때문에 프로그램의 효율이 증가되지 않을까 하고 다음 코드를 작성해보았습니다. private Function pattern = regexp.. 더보기