🏷 map? key와 value로 이루어지며 key는 중복이 되어서는 안됩니다. 프로필 이름 : 김민수 키 : 178 key : "이름", value : "김민수" key : "키", value : 178 위와 같이 2개의 데이터가 한쌍을 이룰때 사용하면 효과적입니다. 만약 프로필 1개에 이름같이 논리적으로 1개만 있어야하는 key의 중복이 허용되면 데이터의 신뢰성이 떨어집니다. 언어차원에서도 map 자료구조의 구현체들이 중복 key값은 막아두었습니다. Java에서는 HashMap, TreeMap, LinkedTreeMap같은 구현체가 있습니다. 🔢 hash? 데이터를 다루는 기법중 하나로 임의의 데이터를 받아 hashFunction에 넣으면 고정된 길이의 값으로 만드는 것을 의미합니다. 임의의 알고리즘..
람다식은 기본적으로 함수형 인터페이스를 표현합니다. 보통 함수형 인터페이스는 1개의 추상 메서드만 포함하는 인터페이스를 뜻합니다. 람다식은 Java8에 추가되었으며 아래와 같은 기능을 제공합니다. 1. 기능을 인수로 다룰수있으며 코드를 데이터로 처리할 수 있습니다. 2. 클래스에 속하지 않는 메서드를 만들 수 있습니다. 3. 람다식은 객체인 것 처럼 전달될 수 있으며 요청 시 실행될 수 있습니다. 람다 따라해보기 Comparator를 익명 클래스와 람다식을 이용하여 구현한 것의 차이입니다. 익명 클래스 방식에 비해 굉장히 간결해졌습니다. 이제 람다식을 사용하여 1개의 기능을 만들어보겠습니다. interface에 body가 없는 abstract method를 1개 정의합니다. "함수형 인터페이스를 정의한다..
Java 플랫폼에는 컬렉션 프레임워크가 포함되어있습니다. 컬렉션 프레임워크는 컬렉션을 표현하고 조작하기 위한 통합 아키텍처입니다. 그리고 모든 컬렉션 클래스와 인터페이스가 JDK 1.2에 정의되어있습니다. Collection Interface 그리고 Map Interface는 java Collection framework의 기본이 되는 interface입니다. Collection Framework 이점 1. 일관된 API를 가집니다. Collection interface를 상속받는 클래스들은 통일된 기능을 사용하여 효율성을 증대시킵니다. 구현체(Vector, ArrayList)들이 Collection, Set, List, Map과 같은 공통 인터페이스를 사용합니다. 2. 프로그램 속도 및 성능 향상, 유..
타입 파라미터가 없는 제네릭 타입 타입 파라미터를 사용하지 않으면 compile단계에서 막을수 없는 코드가 나올 수 있습니다. 아래의 3가지 경우에는 rawType의 사용으로 런타임시점에 ClassCastException이 발생되는 경우입니다. 에러의 경우 될수있으면 런타임시점에서 컴파일시점으로 끌고오는게정신건강에 좋습니다. 1번째 경우 2번째 경우 3번째 경우 안전하지 못한 방식을 왜 허용해주냐하면 Java5 이전 코드와의 호환성 때문입니다. type parameter가 적용된 코드를 raw type형식의 코드(java5 이전)와 함께 사용하기 위해서입니다. 그래서 generic에서는 type erasure를 통해 컴파일 후 바이트코드에서 제네릭의 존재가 사라집니다.(추측)
Java5부터 버그를 줄이고 유형에 대한 추가 추상화 계층을 추가하기 위해 도입되었습니다. Generic의 필요성 Integer를 넣었으니 당연히 Integer Type을 반환하지 않을까? 하지만 IDE에서 미리 언질을 줍니다. ## 아마 IDE에 "어떤 환경 구성"에서 프로그램을 작성하는지 설정을 해줘야 할 듯합니다. ## Object Type을 제공하는데 Integer Type이 필요하다고 말합니다. 명시적으로 캐스팅하여 해결을 할수는 있지만 안전한 방법은 아닙니다. 해당 List는 Object Type을 넣을 수 있기 때문에 작성자가 Integer Type을 넣을 것이라는 보장이 없습니다. ☠️Runtime 시점에 에러를 발견하는 경우가 생길 수 있습니다. 작성자가 특정 유형을 사용하려는 의도를 표..
Java NIO는 기존 IO API와는 다른 IO 프로그래밍 모델을 제공합니다. Non-Blocking NIO를 사용하면 Non-blocking IO를 수행할 수 있습니다. 하지만 NIO를 사용한다고 해서 완벽하게 Non-blocking방식을 사용이 가능하다고 할 수 없습니다. 스레드가 버퍼로 데이터를 읽어오라고 채널에 요청합니다. 채널이 버퍼로 데이터를 읽는 동안 스레드는 다른작업을 수행할 수 있습니다. Channels and Buffers 표준 IO API는 바이트 스트림, 문자 스트림으로 작업을 하며 NIO API는 채널과 버퍼로 작업합니다. Selectors 연결알림, 데이터 도착등 이벤트에 대해 모니터링 하는 개체입니다. 단일 스레드가 여러 채널의 데이터를 모니터링이 가능해집니다. NIO의 중심..
- Total
- Today
- Yesterday
- 자바
- java8
- JDK
- 백준
- 스택
- 문제
- boot 일대다
- Spring
- jre8
- 스타트업
- 백준 제로 자바
- 알고리즘
- 관계설정
- jvm
- mappedby
- 백준 제로
- 개발자채용
- jre11
- 코딩테스트
- jre
- boot
- 자사서비스
- jdk11
- JPA
- 프로그래머
- JDK8
- springboot
- ㅃ
- 다대일
- 백엔드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |