[JAVA] JVM
·
Programming Language/JAVA
JVM(Java Virtual Machine) 자바 가상 머신 운영체제에 종속적이다. 자바와 운영체제 사이에서 중개자 역할을 수행하며, 자바가 운영체제에 구애받지 않고 프로그램을 실행할 수 있도록 도와줌 가비지 컬렉터를 사용한 메모리 관리도 자동으로 수행하며, 다른 하드웨어와 다르게 레지스터 기반이 아닌 스택 기반으로 동작 자바 프로그램의 실행 단계 자바 컴파일러에 의해 자바 소스 파일은 바이트 코드로 변환됨 바이트 코드를 JVM에서 읽어 들인 다음에, 복잡한 과정을 거쳐 어떤 운영체제 간에 프로그램을 실행할 수 있도록 만드는 것 ⇒ 만약, 자바 소스 파일은 리눅스에서 만들었고 윈도우에서 이 파일을 실행하고 싶다면, 윈도우용 JVM을 설치만 하면 됨 JVM 메모리 구조 자바 프로그램의 실행 단계 Garb..
[JAVA] Stream(스트림)
·
Programming Language/JAVA
Stream(스트림) 다양한 데이터 소스(컬렉션, 배열 등)를 표준화된 방법으로 다루기 위한 것 데이터 소스를 스트림으로 변환 후 여러 번의 중간 연산과 마지막의 최종 연산을 통해 다를 수 있음 배열, 컬렉션을 대상으로 연산 수행 한 번 생성하고 사용한 스트림 재사용 불가 중간 연산은 여러 개의 연산 적용 가능, 최종 연산은 마지막에 한 번 적용 최종 연산이 호출되어야 중간 연산에 대한 수행이 이루어지고 그 결과가 만들어짐 따라서 중간 연산에 대한 결과를 연산 중에 알 수 없음 → 이를 ‘지연 연산’이라 함 스트림 만들기 중간연산(반복 적용 가능, 연산 결과가 스트림) 최종연산(스트림의 요소를 소모) → 결과 리턴 list.stream() // 스트림 만들기 .distinct() // 중간연산 .limi..
[JAVA] 람다식
·
Programming Language/JAVA
람다함수란? 익명 함수를 지칭하는 용어 함수를 단순하게 표현하는 방법 람다의 장단점 장점 코드의 간결성 지연연산 수행 병렬처리 가능 단점 람다식의 호출이 까다로움 람다 스트림 사용 시 반복문 사용 시 성능이 떨어짐 가독성이 떨어질 수 있음 람다식 표현 1. 메서드의 이름과 반환 타입을 제거하고 ‘→’ 를 블록 {} 앞에 추가 2. 반환값이 있는 경우 식이나 값만 적고 return문 생략 가능( ; 생략) 3. 매개변수의 타입이 추론이 가능하면 생략 가능 주의사항 매개변수가 하나인 경우 괄호() 생략 가능(타입이 없는 경우) 블록 안의 문장이 하나뿐일 때 괄호{} 생략 가능(끝에 ; 생략) 하나뿐인 문장이 return문이면 괄호{} 생략 불가 return문과 중괄호를 같이 생략 가능 @Functionall..