Java IO / NIO
·
Java
ref :1.https://www.baeldung.com/linux/kernel-system-call-implementation2.https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscall_64.tbl3. https://www.baeldung.com/linux/kernel-system-call-implementation4. https://stackoverflow.com/questions/54878237/is-there-a-separate-kernel-level-thread-for-handling-system-calls-by-user-proces5. https://0xax.gitbooks.io/linux-insides/cont..
[Java] Optional 클래스 살펴보기 (2)
·
Java
이전에 다뤘듯이, Optional 의 핵심은 메소드가 null을 리턴하는 상황을 없애는데 있습니다. 따라서 메소드가 null을 직접적으로 리턴하는 대신, 반환하는 값이 null일 가능성이 있음을 나타내는 Optional 클래스를 이용해 이를 표현합니다. [Java] Optional 클래스의 등장 (1) 이번 포스팅에서는 이에 나아가, Optional 클래스가 null 대신 어떻게 값이 없는 상황을 어떻게 모델링하는지에 대해 살펴보도록 하겠습니다. 1. Optional 객체 생성 2. Optional 객체 API 3. Optional과 스트림 4. 예제 Optional 클래스는 선택형 값을 캡슐화 하는 클래스입니다. 값이 있으면 Optional 클래스는 그 값을 감싸고, 없다면 Optional.empty(..
[Java] Optional 클래스의 등장 (1)
·
Java
개발을 하다보면 가장 흔히 맞닦드리는 예외로 NullPointerException이 있습니다. 컴파일 과정에서는 잡기 힘듦과 동시에, 런타임 중 불시에 발생하여 프로그램을 강제 종료시킬 수 있는 이 위협적인 예외는 자바를 사용하는 모든 개발자들이 골머리를 앓는 문제입니다. 이번 포스팅에서는 NullPointerException을 방지하기 위한 방안인 Optional 클래스의 등장 배경과 그 효과에 대해 알아보도록 하겠습니다. Optional 클래스는 참조되는 객체가 Null인지를 컴파일 타임에 확인하도록 개발자에게 의무를 부여합니다. 평화롭던 주말, 당신이 배포한 프로그램이 에러를 일으켜, 잠옷 차림으로 회사에 출근합니다. 책상에 앉아 골똘히 고민하던 당신은 다음과 같은 코드에서 NullPointerEx..
[Java] 제네릭 - 와일드 카드
·
Java
이전의 포스팅에서 자바 제네릭의 기초와 간단한 사용방법에 대해 알아 봤습니다. 이번 포스팅에서는, 자바5에 제네릭과 함께 추가된 와일드 카드에 대해 다뤄 보겠습니다. 제네릭의 등장 이전, 자바는 컬렉션에서 내부적으로 객체들을 Object로 관리하고 있었습니다. Object를 사용함으로써 하나의 컬렉션 안에 여러 객체들을 저장할 수 있는 유연성이 있었지만, 이와 동시에 타입 안정성을 떨어뜨려 런타임 에러가 빈번히 발생하는 문제가 있었습니다. 제네릭이 등장하며 이런 런타임 에러를 미연에 방지할 수 있었지만, 이와 동시에 컬렉션에는 연관된 타입만 삽입할 수 있게 되었습니다. 즉, 제네릭은 자바의 타입 안전성은 높였지만, 유연성은 떨어뜨렸습니다. 문제 제기 Java5 이전의 컬렉션은 모두 동일하게 Object를..
[Java] Collection Framework
·
Java
이번 포스팅에서는 자바의 핵심 중 하나인 Collection Framework에 대해 알아보는 시간을 가지겠습니다. Collection Framework란 무엇인지, 그 구성은 어떻게 이루어져 있는지에 대해 알아보겠습니다. Collection이란? Collection은 여러 객체(데이터)들을 그룹화 하여 관리하는 하나의 객체입니다. 여러 개별적인 객체들을 구조화하여 저장, 검색, 조직하는데 사용되며, 각각의 Collection은 자신만의 구조를 가집니다. 예를들면 Set, List, Queue 와 같은 자료구조가 있습니다. Collection Framework란? Collection Framework는 Collection들을 표현하고 조작하기 위한 하나의 아키텍쳐 입니다. 주요 구성으로 인터페이스, 구현..
[Java] 제네릭의 기초
·
Java
본 포스팅에서 제네릭이란 무엇인지, 왜 필요한지에 대해 다루며, 이를 활용하는 기초적인 방법에 대해서 다루겠습니다. 제네릭의 고급 내용인 와일드 카드 및, Upper Bound, LoweBound에 대한 설명은 다음 포스팅을 참조해주시기 바랍니다 :) Generic 이란? 제네릭이란 타입의 일반화를 말합니다. " 타입의 일반화 " 란 어떤 클래스를 작성할때, 클래스 내부에서 타입을 지정하는것이 아닌, 클래스를 사용하는 외부에서 타입을 지정할 수 있게끔 한다는 것입니다. " 외부에서의 지정 " 란 사용자가 정의된 클래스를 사용할때, 즉 인스턴스를 생성하거나 클래스의 제네릭 메소드를 사용 할때 타입을 지정한다는 의미입니다. 이번 포스팅에서는 한가지 질문과 함께 제네릭의 필요성과 이점에 대해 설명드리겠습니다...