JAVA: 282개의 글
자료구조는 list, stack, queue, hash table이 있다. 그 중에서 list, set, map의 차이점에 대해 알아보자 1. List : 저장공간이 필요에 의해 자동으로 늘어난다 ( 순서가 있는 저장공간 ) * 특징 : 순서가 있고, 중복을 허용(배열과 유사) * 장점 : 가변적인 배열9배열이 자동으로 늘어남) * 단점 : 원하는 데이터가 뒤쪽에 위치하는 경우 속도의 문제 * 방식 : equals()를 이용한 데이터 검색 자바에서 list자료 구조는 크게 vector, arraylist, linkedlist로 나눠진다. 1) Arraylist : 객체 내부에 있는 배열에 데이터를 저장한다 - 상당히 빠르고 크기를 맘대로 조절할 수 있는 배열 - 단방향 포인터 구조로 자료에 대한 순차적인..
MapStruct - NullPointerException • 개발환경 mapstruct version 1.3.0.Final IntelliJ IDEA 2021.2.2 => IntelliJ 사용하면서 컴파일할 때 에러 발생 java: Internal error in the mapping processor: java.lang.NullPointerException at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifestUrl(DefaultVersionInformation.java:182) at org.mapstruct.ap.internal.processor.DefaultVersionInformation.openManifest..
java stream api를 많이 사용하실텐데요. 예상치 못하게 NullPointerException 발생을 맞이하는 경우가 있어서 정리해보고자 합니다. 예시 SimpleEntry keyValue = new SimpleEntry("test", null); System.out.println(keyValue.getValue()); SimpleEntry는 java.util의 key - value를 담을 수 있는 클래스입니다. (HashMap에서 사용하는 그것) 위를 실행하면 어떤 결과가 나올까요? 네. 예상하신것 처럼 "null"입니다. SimpleEntry keyValue = new SimpleEntry("test", null); List list = Arrays.asList(keyValue); Objec..
java8의 optional api 많이들 사용하실텐데요. 어찌보면 당연하지만 햇갈리는 내용에 대해 다뤄보겠습니다. 마무리 연산인 orElse와 orElseGet의 차이입니다. 귀찮으신분들을 위해 요약을 먼저 하자면 orElse는 null이던말던 항상 불립니다. orElseGet은 null일 때만 불립니다. 예시 String username = "이름"; String result1 = Optional.ofNullable(username).orElse("no name"); System.out.println(result1); String result2 = Optional.ofNullable(username).orElseGet(() -> "no name"); System.out.println(result2);..
사내에서 운영중인 웹서비스의 로그에서 아래와 같은 Exception이 다량으로 발견되는 것을 확인하였다. 혹시 서비스에 중요한 영향을 미치지 않을까하는 걱정이 앞서 예외가 발생하는 원인을 살펴보았다. java.lang.Object ㄴ java.lang.Throwable ㄴ java.lang.Exception ㄴ java.io.IOException ㄴ org.apache.catalina.connector.ClientAbortException org.apache.catalina.connector.ClientAbortException ClientAbortException은 애플리케이션에서 발생하는 것이 아닌, Tomcat 컨테이너에서 특정 상황에서 발생하는 예외였는데 특이한 부분은 HTTP Request의 H..
스프링 JDBC 프로그래밍 - JdbcTemplate Spring Framework는 JDBC 프로그래밍을 위해 JdbcTemplate 클래스를 제공하며 JdbcTemplate 클래스는 손쉽게 DB와 연동할 수 있도록 구현되어 있다. 이 글에서는 Oracle DB 11g를 사용한다고 가정한다. 다른 DB를 사용해도 무방하다. 의존성 추가 Spring JDBC, Oracle JDBC 드라이버, Apache Commons DBCP 라이브러리 의존성을 추가한다. org.springframework spring-jdbc 5.1.9.RELEASE com.oracle ojdbc6 11.2.0.3 org.apache.commons commons-dbcp2 2.7.0 Oracle JDBC 드라이버를 관리하는 레파지토리..
1. GC (Garbage Collection) GC란 간략히 정의 하자면 Heap 메모리를 재활용 하기 위해 Root Set에서 참조 되지 않는 Object(Unreachable Object)들을 해제해 가용한 공간을 만드는 작업을 의미 합니다. Java에서 이런 메모리 해제 작업을 Garbage Collector가 담당하며, 메모리 해제하는 작업을 Garbage Collection이라고 합니다. java8의 은 아래 와 같이 메모리를 관리 합니다. (Java8에서는 기존의 Permanent Generation 이 Metaspace로 대체 됩니다.) Heap 은 Young Generation과 Old Generation 나뉩니다. Young Generation은 Eden, Survivor space 0..
1. 개요 final 키워드를 떠올릴 때면 그냥 상수로만 생각할 때가 종종 있습니다. final을 클래스, 메서드, 변수에 선언하면 조금씩 할 수 있는 부분들이 제안됩니다. 너무 당연한 내용이지만, 시간이 지니니까 기억에서 사라져버려서 이번에 다시 한번 상기하기 위해 정리를 해보았습니다. 자바에서 final 키워드는 여러 컨텍스트에서 단 한 번만 할당될 수 있는 entity를 정의할 때 사용됩니다. (위키피니아) final 키워드는 총 3가지에 적용할 수 있습니다. 각각에 대해서 세부적으로 알아보죠. final 변수 원시 타입 객체 타입 클래스 필드 메서드 인자 final 메서드 final 클래스 2. Final 변수 2.1 원시 타입 로컬 원시 변수에 final로 선언하면 한번 초기화된 변수는 변경할 ..
자바에서 제공하는 this 키워드는 인스턴스 자기 자신를 가리키는 키워드입니다. 이 this 키워드를 통해 클래스 메서드 및 생성자에서 자기 자신의 데이터를 업데이트하거나 조작할 수 있습니다. 여기서 중요한 것은 this 키워드는 이 클래스를 기반으로 생성된 인스턴스를 가리키는 참조라는 사실입니다. 인스턴스를 가르키는 참조와 인스턴스 자체는 다르다는 것을 알아두셨으면 좋겠습니다. public class ThisExample { private String name; private Integer age; private String address; public ThisExample() { this.name = "KBS"; this.age = 19; this.address = "Seoul"; } public S..
| Java Optional( 자바 옵셔널 ) Java Optional 클래스는 Java 8에서 추가되었으며 자바의 고질적인 문제인 NullpointerException 문제를 해결할 수 있는 방법을 제공합니다. import java.util.Optional; | of, ofNullable로 객체 감싸기 자바에서 제공하는 객체를 Optional 객체로 감싸기 위해서는 Optional 에서 제공하는 of 와 ofNullable 매서드를 사용합니다. 둘의 차이점은 of는 인자로서 null값을 받지 않는다는 것이고 ofNullable은 null값을 허용한다는 것입니다. @Test public void givenNonNull_whenCreatesNonNullable() { String name = "saelob..