[JAVA] 부동 소수점 방식(Floating-Point Number Representation)과 정밀도
·
Java
실수 표현 방식 실수를 컴퓨터에서 표현하는 방식으로는 대표적인 고정 소수점 방식과 부동소수점 방식으로 나눌 수 있다. 메모리는 한정적이기 때문에 컴퓨터는 소수를 이진법으로 표현할 떄 고정 소수점 방식이 아닌 부동 소수점 방식을 이용한다. 고정 소수점 방식(Fixed-Point Number Representation) 고정 소수점 방식은 메모리를 정수부와 소수부로 고정으로 나누어 지정하여 처리하는 방식이다. 고정소수점 방식은 소수부의 자릿수를 미리 정하고 고정된 자릿수의 소수를 표현하기 떄문에 직관적이다. 10진수로 표현된 실수를 이진수로 변환하고 결과 값을 각각 정수부, 소수부 메모리 비트에 넣어주기만 하면 표현이 된다. 직관적적으로 메모리에 실수를 표현할 수 있다는 장점이 있지만, 정수부가 큰 실수가 ..
[JAVA] 네트워킹(Networking)
·
Java
네트워킹(Networking) 네트워킹(Networking)이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크(Network)를 구성하는 것을 말한다. 자바에서 제공하는 java.net패키지를 사용하면 이러한 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있다. 클라이언트/서버(client/server) 클라이언트와 서버는 컴퓨터간의 관계를 역할(role)로 구분하는 개념이다. 서비스를 제공하는 쪽이 서버, 제공받는 쪽이 클라이언트가 된다. 서버(server) 서비스를 제공하는 컴퓨터(service provider) 클라이언트(client) 서비스를 사용하는 컴퓨터(service user) 서비스는 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것을 뜻하며 서버가 제..
[JAVA] 스트림(Stream) API(4, Collectors, 그룹화와 분할)
·
Java
collect()와 Collector, Collectors collect()는 Collector(인터페이스)를 매개변수로 하는 스트림의 최종연산이다. Object collect(Collector collector) // Collector를 구현한 클래스의 객체를 매개변수로 Object collect(Supplier supplier, BiConsumer accumulator, BiConsumer combiner) // 잘 안쓰임 reduce()와 collect()은 reduce()이 스트림 요소 전체에 대한 리듀싱을 한다고 하면 collect()는 그룹별 리듀싱이 가능하다는 차이가 있다. 이처럼 스트림을 나눠놓고 작업을 할수 있다는 것이 collect()의 장점이다. Collector 인터페이스는 수집(c..
[JAVA] 스트림(Stream) API(3, 최종 연산)
·
Java
스트림의 최종 연산 최종 연산 설명 void forEach(Consumer
[JAVA] 스트림(Stream) API(2, 중간 연산, Optinal<T>)
·
Java
스트림의 연산 스트림이 제공하는 기능 - 중간 연산과 최종 연산 중간 연산 : 연산결과가 스트림인 연산. 반복적으로 적용가능 최종 연산 : 연산 결과가 스트림이 아닌 연산. 단 한번만 적용 가능(스트림의 요소를 소모) String[] strArr = { "dd","aaa","CC","cc","b" }; Stream stream = Stream.of(strArr); // 문자열 배열이 소스인 스트림 // 중간 연산 Stream filteredStream = stream.filter(); // 걸러내기(중간 연산) Stream distinctedStream = stream.distinct(); // 중복제거(중간 연산) Stream sortedStream = stream.sort(); // 정렬(중간 연산)..
[JAVA] 스트림(Stream) API(1)
·
Java
스트림(Stream) API 기존의 자바에서는 많은 양의 데이터를 저장하기 위해 배열이나 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하기 위해 컬렉션을 정의해 사용하였다. 컬렉션은 데이터를 저장하는 자료 구조에 따라 핵심이 되는 주요 인터페이스List, Map, Set을 정의하였지만 결국 성격이 다른 자료구조는 사용 방법이 달라 결국 반쪽 짜리 표준화라고 볼 수 있고 저장된 데이터에 접근하기 위해서는 반복문이나 반복자(iterator)를 사용하여 매번 새로운 코드를 작성해야 했다. 이렇게 작성된 코드는 가독성도 떨어지며, 코드의 재사용이 거의 불가능하며 데이터마다 다른 방법으로 접근해야했다. 이러한 문제점을 극복하기 위해서 Jdk 1.8부터 스트림(stream) API가 도입되었..
PP_D
'Java' 카테고리의 글 목록