(Effective Java) 규칙45. 스트림은 주의해서 사용하라 스트림 API 스트림 API는 다량의 데이터 처리 작업(순차적이든 병렬적이든)을 돕고자 자바 8에 추가되었다. 스트림 API가 제공하는 추상 개념 핵심 스트림(stream)은 데이터 원소의 유한 혹은 무한 시퀀스(sequence)의 개념 스트림 파이프라인(stream pipeline)은 이 원소들로 수행하는 연산단계를 표현하는 개념 스트림의 원소들은 어디로부터든 올 수 있다. 대표적으로는 컬렉션, 배열, 파일, 정규표현식 패턴 매처(matcher), 난수 생성기, 혹은 다른 스트림 스트림 안의 데이터 원소들은 객체 참조나 기본 타입 값임 기본 타입으로는 int, long, double을 지원 스프림 파이프라인 소스 스트림에서 시작하여 종..
JVM 이해하기 자바 JVM, JDK, JRE JVM (Java Virtual Machine) 자바 가상 머신 자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환(인터프리터와 JIT 컴파일러)하여 실행함 JVM 스펙(링크)은 정해져 있고 이에 맞춘 구현체(JVM 밴더)는 다양하게 존재함 (오라클, 아마존, Azul, 등) 플랫폼에 종속적임 실행시 네이티브 코드로 변경을 하게 되는데 이를 OS에 맞추어 실행해야 되기 때문 JRE (Java Runtime Environment) 자바 애플리케이션을 실행하기 위한 최소한의 구성 (JVM + 라이브러리) JVM과 핵심 라이브러리 및 자바 런타임 환경에서 사용하는 프로퍼티 세팅이나 리소스 파일을 가지고 있음 오라클은 자바 11부터는 JDK만 제공하며..
(Effective Java) 규칙15. 클래스와 멤버의 접근 권한을 최소화하라 잘 설계된 컴포넌트란 잘 설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨, 구현과 API를 깔끔히 분리한다. 클래스 내부 데이터와 내부 구현 정보를 외부 컴포넌트로부터 얼마나 잘 숨겼느냐 API를 통해서만 다른 컴포넌트와 소통하며 서로의 내부 동작 방식에는 전혀 개의치 않는다. 정보 은닉, 혹은 캡슐화라고 하는 이 개념은 소프트웨어 설계의 근간이 되는 원리다. 정보은닉의 장점 대부분의 장점은 시스템을 구성하는 컴포넌트들을 서로 독립시켜서 개발, 테스트, 최적화, 적용, 분석, 수정을 개별적으로 할 수 있게 해준다. 1. 시스템의 개발 속도를 높임 여러 컴포넌트를 병렬로 개발할 수 있기 때문이다. 2. 시스템 관리 비용을 낮춤..
(Effective Java) 규칙 60. 정확한 답이 필요하다면 float과 double은 피하라 float과 double의 설계 float과 double 타입을 과학과 공학 계산용으로 설계되었다. 이진 부동소수점 연산에 쓰이며, 넓은 범위의 수를 빠르게 정밀한 '근사치'로 계산하도록 세심하게 설계되었다. 따라서 정확한 결과가 필요할 때는 사용하면 안된다. float와 double 타입은 특히 금융 관련 계산과는 맞지 않는다. 0.1 혹은 10의 음의 거듭 제곱 수(10^-1, 10^-2 등)를 표현할 수 없기 때문임 float과 double 사용의 문제 예) 주머니에 1.03달러가 있었는데 그중 42센트를 썼다면 남은 돈은 얼마인가? //답을 구하는 어설픈 코드 .. System.out.println..
- Total
- Today
- Yesterday
- 이펙티브자바
- effectivejava
- 자전거
- intelij
- 배낭 여행
- 배낭여행
- 자전거 여행
- 일본여행
- 방통대 과제물
- JavaFX Window Close
- JavaFX 테이블뷰
- 자바
- JavaFX
- 텐트
- springboot
- 일본 여행
- effective java
- JavaFX Table View
- windows
- 인텔리제이
- java
- 일본 자전거 여행
- 이펙티브 자바
- JavaFX 종료
- Java UI
- git
- TableView
- 이펙티브
- 스프링부트
- 일본 배낭여행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |