Java

Java

equals 사용시 주의할점

equals 사용시 주의할 점에대해 알아보겠습니다. equals는 객체가 동등한지 확인하는 메서드 입니다. Object의 메서드이지만 String에서 오버라이딩하여 문자열간의 비교를 할 수 있습니다. 간단하게 "==" 연산자와의 차이를 알아보면 아래와 같습니다. equals 값을 비교 == 주소값 비교 이처럼 equals는 값을 비교할때 사용하는데요 equals 사용시 주의점에 대해 알아보겠습니다. 주의점 String equals 에서 상수를 먼저 사용 상수를 먼저 사용하여 변수가 null일 경우 예외를 피하는 것입니다. 아래는 잘못된 예시 입니다. 변수.equals("상수") if (login.username().equals("test")) { return UriConst.HOME; } return U..

Java

InnerClass의 메모리 누수 위험

Inner Class에대해 알아보다 메모리 누수 관련한 이슈가 있어 공부해 보았습니다. Inner Class를 사용하지는 않았지만, Login이나 외부클래스에서만 사용해야하는 것들은 잘 사용할 수 있을것 같아 제대로 알고 사용해 보겠습니다. InnerClass는 OuterClass를 외부참조 합니다. InnerClass는 OuterClass가 생성되고 나서 생성이 됩니다. 그리고 OuterClass를 참조하게 됩니다. 이렇게 되면 어떤 문제가 발생할까요? OuterClass를 사용해서 외부접근이 가능하다는 단점이 있습니다. InnerClass를 사용하는 이유는 OuterClass 안에서만 사용하려고 하는것인데 다른 클래스에서 접근이 가능하기 때문입니다. InnerClass의 외부참조로 인해 GC의 대상이..

Java

Lambda, Stream

'Books/Modern Java In Action' 카테고리의 글 목록 sol-b.tistory.com Mordern Java In Acation을 읽고 간단하게 Lambda와 Stream을 정리한 글입니다. Lambda와 Stream Lambda와 Stream이 등장한 이유는 빅데이터를 효율적으로 관리하기 위해 나왔습니다. 간단하게 설명하자면 아래와 같습니다. 빅데이터지원 ➡️ 병렬화 강화 ➡️ 컬렉션 강화 ➡️ 스트림강화 ➡️ 람다 도입 ➡️ 함수형 인터페이스 도입 Lambda 함수형 인터페이스를 간단하게 실행할 수 있는 코드블럭 함수형 인터페이스에서만 사용이 가능합니다. 즉, 코드블록(함수형 인터페이스의 구현체)을 변수처럼 사용할 수 있다는 것입니다. 익명 객체조자 없이 바로 코드블록만 사용하면 ..

Java

Error와 Exception의 차이

Error(오류)와 Exception(예외)은 개발자가 미리 예측할 수 있는가? 에 따라 정해집니다. Throwable Error와 Exception을 살펴보기 전에 둘 다 Throwable이라는 클래스와 상속관계에 있습니다. Throwable에는 getMessage()와 printStackTrace()가 있습니다. 이 두 메서드를 통해 에러 코드들을 확인할 수 있습니다. 즉, Error와 Exception에는 에러 메세지를 담을 수 있습니다. Error (오류) 시스템이 종료되어야 할수준의 상황 같은 심각한 문제 실행전 컴파일 에러 또는 실행중 에러가 발생하는 경우입니다. 이것은 개발자가 예측하여 방지할 수 없습니다. StackOverflowError 호출의 깊이가 깊어지거나 재귀가 지속되어 stack..

Sol b
'Java' 카테고리의 글 목록