본문 바로가기
[Effective Java] Comparable 인터페이스의 구현을 고려하자. [Effective Java] Comparable 인터페이스의 구현을 고려하자. - compareTo 메소드는 Comparable 인터페이스에 존재하는 메소드이다. compareTo 메소드는 equals 메소드와 유사한 특성을 갖는다. 차이점은 두 객체가 동일한지 비교에 덧붙여 순서까지 비교할 수 있으며, 제네릭 타입을 지원한다. - Comparable interface 를 구현하면, Arrays.sort 와 같은 메소드를 손쉽게 쓸 수 있고, TreeSet 과 같은 크기 비교를 사용하는 Collection 들에서도 손쉽게 사용할 수 있다. - 자바 라이브러리의 모든 값 클래스들은 Comparable 인터페이스를 구현한다. - 알파벳 순, 숫자 순, 날짜 순과 같은 자연율을 갖는 값 클래스를 작성한다면 .. 2016. 10. 14.
[Effective Java] 쓸모 없는 객체 참조를 제거하자. [Effective Java] 쓸모 없는 객체 참조를 제거하자. - 자바와 같이 가비지 컬렉션을 자동으로 해주는 언어는 메모리 관리를 따로 해줄 필요가 없다고 생각하기 쉬우나, 이는 틀린 생각이다. GC 의 원리에 대해 정확히 이해하고 메모리 관리를 해주어야 한다. 다만 그 메모리 관리하는 범위가 C, C++ 과 같은 GC 가 없는 언어들에 비해 더 간단할 뿐! - 자바에서도 메모리 누출(memory leak)이 쉽게 발견된다. 메모리 누수가 생기면, 성능저하의 형태로 서서히 나타난다. GC 작업이 증가하거나, 메모리 할당과 회수 횟수가 빈번해지기 때문이다. 심하면 디스크 페이징 현상이 나타나기도 하고, 아주 극단적으로는 OutOfMemoryError 가 발생한다. 메모리 누수의 무서운 점은, 특정 객체.. 2016. 1. 4.
[android] Caused by: java.lang.NullPointerException at android.app.AlertDialog.resolveDialogTheme 안드로이드, Caused by : java.lang.NullPointerException at android.app.AlertDialog.resolveDialogTheme Caused by: java.lang.NullPointerExceptionat android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:148)at android.app.AlertDialog.(AlertDialog.java:104)at android.app.ProgressDialog.(ProgressDialog.java:77) 해당 이슈는 말 그대로 null pointer exception 인데 무엇이 null 이냐?AlertDialog 를 만들 때 전달하는 Context 혹은 Acti.. 2013. 8. 20.
[Java] String.equals( Object ) 에 대한 고찰. Java, String.equals( Object ) 에 대한 고찰. 평소에 str.equals( "abc" ) 와 같은 형태로 주로 써왔는데 사실 "abc".equals( str ) 가 좋다고 한다.즉 null 이 아님이 확실한 string 에 equals method 를 호출하여 string 비교하는 것이 추천된다.이는 string 이 null 일 경우 NullPointerException 이 발생하기 때문에, 이를 위해서 null check 코드가 하나 더 추가되기 때문. 결론! (null 이 아님이 확실한 string).equals( (비교하고픈 str) ) 의 형태로 쓰는 것이 좋다. Android, equals, Java, NullPointerException, string, string.eq.. 2013. 8. 2.
반응형