programming study/B-Java 7

코딩 메모

java ABean abean = Arrays.stream(리스트) .filter(조건) .findAny() .map(m -> { // 조건에 맞게 있으면 Bean 객체로 만들어서 반환 ABean abean = new ABean (); bean.setA(m.getA()); return abean } ).orElse(null); // 조건에 맞는 값 없으면 null stream().findAny() 스트림 병렬 스트림에서 여러 쓰레드가 동시에 작업하므로 먼저 처리된 요소가 반환될 수 있다. 스트림의 요소 순서가 중요하지 않거나 어떤 요소여도 상관 없을 때 사용합니다. 또한 빠르게 결과를 내고 싶을 때 사용합니다. 인터페이스에 중첩 추상클래스? interface A { abstract class Data {..

Hash 자료구조, hashCode()와 equals() 재정의, List/Map/Set, String/StringBuilder/StringBuffer, int/Integer

Hash 자료구조는 key-value 형태로 저장되는 자료구조이고 해시 함수를 이용해서 저장, 검색하기 때문에 해시충돌이 일어나지 않는 경우에 속도가 빠르다는 장점이 있고 메모리를 미리 만들어놓고 메모리를 사용하지 않는 경우가 있기 때문에 공간 효율이 안좋고 해시 함수에 의해 해시 충돌이 많이 일어나는 경우 성능이 안좋아 질 수 있다는 단점이 있습니다. 해시 충돌이란 해시 자료구조에 저장을 할 때 키로 해시함수를 이용해 계산한 해시를 주소로 하는 위치에 값을 저장하는건데, 이 때 서로 다른 키를 해시 함수로 계산했는데 같은 값이 나오는 경우를 말합니다. 그래서 해시 충돌이 일어나느 경우 개방형주소 방벙, 채이닝 방법 같은 걸 사용해서 해결을 합니다. 개방형 주소는 해시충돌이 일어나는 경우 다른 해시값을 ..

java 버전 별 특징

참고 : https://www.youtube.com/watch?v=_6YP2FNTt80 java8부터 람다표현식, 스트림, 인터페이스의 default, optional이 추가됐다는 는 특징이 있습니다. 람다표현식은 함수형으로 프로그래밍 할 수 있게 되었고 스트림을 통해서 반복문을 병렬처리로 좀 더 빠르게 할 수 있게 되었고 인터페이스에서 default 메서드를 추가할 수 있게 돼서 공통 메서드를 인터페이스에서 구현할 수 있게 됐고 null이 될 수 객체를 감싸는 래퍼클래스 Optinal을 통해서 null 처리를 좀 더 잘 할 수 있게 되었습니다. java11에는 String 클래스에 isBlank같은 특정 메서드가 추가되었고 File클래스에 readString, writeString 같은 메서드가 추가 ..

JVM, Garvage collection, Memory leak, Out Of Memory

JVM JVM(Java Virtual Machine)은 자바 어플리케이션을 실행하기 위한 가상 머신입니다. JVM은 자바 코드를 읽어서 실행하고, 메모리 관리, 스레드 관리, 가비지 컬렉션(Garbage Collection) 등의 작업을 수행합니다. GC gc란? Garvage collection은 자바의 메모리 관리 기법 중 하나로 Garvage Collector가 JVM(자바 가상 머신)의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 해제하는 프로세스를 말합니다. gc 장점 java 단에서 Garvage Collector가 메모리 관리를 대신 해주기 때문에 개발자는 메모리 관리를 하지 않아도 돼서 개발하는데 도움이 됩니다. gc 단점 단점..

Enumeration, Iterator

Enumeration Thread에 안전한 구조 / vector, Hashtable에 사용 / 다음 내용이 있는지 확인하는 hasNext(), 그 값을 가져오는 next(), 해당 컬렉션의 값을 삭제하는 remove() 메서드 제공 Iterator은 Thread에 안전하지 않은 구조 / ArrayList, HashSet 에 사용 / 다음 내용이 있는지 확인하는 hasMoreElement(), 그 값을 가져오는 nextElement() 메서드 제공, 해당 컬렉션의 값을 삭제하는 메서드는 없음 장점 Iterator는 모든 컬렉션 프레임워크에 공통으로 사용 가능 컬렉션 프레임워크에서 쉽게 값을 가져오고 제거할 수 있음 2,3개의 메소드만 알면 되어서 사용하기 매우 쉽다 단점은 처음부터 끝까지의 단방향 반복만 ..

Generic, Optional(java8)

https://www.daleseo.com/java8-optional-after/ 자바8 Optional 2부: null을 대하는 새로운 방법 Engineering Blog by Dale Seo www.daleseo.com [Java] Optional 개념 및 사용법 (velog.io) [Java] Optional 개념 및 사용법 java optional velog.io 코딩의 시작, TCP School 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com 코딩의 시작, TCP School 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com..