Java23 7. JVM(Java Virtual Machine) 📌 JVM(Java Virtual Machine) JVM(Java Virtual Machine)이란 자바로 작성한 소스 코드를 해석해 실행하하기 위한 컴파일러 프로그램이다. 프로그램이 실행되기 위해서는 CPU, 메모리, 각종 입출력 장치 등과 같은 컴퓨터 자원을 프로그램이 할당받아야 한다. 프로그램이 자신이 필요한 컴퓨터 자원을 운영체제에게 주문하면, 운영체제는 가용한 자원을 확인한 다음, 프로그램이 실행되는 데에 필요한 컴퓨터 자원을 프로그램에게 할당해준다. 이 때, 프로그램이 운영체제에게 필요한 컴퓨터 자원을 요청하는 방식이 운영체제마다 다르다. 이것이 바로 프로그래밍 언어가 운영체제에 대해 종속성을 가지게 되는 이유다. 자바는 JVM을 매개해서 운영체제와 소통한다. JVM이 자바 프로그램과 운영체제.. 2022. 7. 20. 6. 스레드(Thread) 📌 프로세스(Process)와 스레드(Thread) 프로세스에서 스레드는 하나의 코드 실행 흐름을 말한다. 프로세스는 실행 중인 애플리케이션을 의미한다. 프로세스는 데이터, 컴퓨터 자원, 스레드로 구성되는데, 스레드는 데이터와 애플리캐이션이 확보된 자원을 활용하여 소스 코드를 실행한다. 스레드는 프로세스 안에서 하나의 코드 실행 흐름을 의미한다. ✔️ 메인 스레드(Main Thread) 자바 애플리케이션에서는 메인 스레드가 메인 메서드를 실행한다. 메인 메서드의 코드를 처음부터 끝까지 순차적으로 실행시키며, 코드의 끝은 만나거나 return문을 만나면 실행을 종료한다. 만약, 어떤 자바 애플리케이션의 소스 코드가 싱글 스레드로 작성되었다면, 그 애플리케이션이 실행되어 프로세스가 실행될 때 오로지 메인 스.. 2022. 7. 20. 5. 파일입출력(I/O) 📌 InputStream / OutputStream 자바에서 제공하는 입출력 스트림으로, 입력과 출력을 동시에 처리하기 위한 스트림이다. 입출력 스트림은 어떤 대상을 다루느냐에 따라 종류가 나뉜다. 예를 들면, File을 다룰 때에는 FileInputStream / FileOutputStream을 사용하고, 프로세스를 다룰 때는 PipedInputStream / PipedOutputStream을 사용한다. ※ Stream이란? 개별 바이트나 문자열인 데이터의 원천 파일을 읽거나 쓸 때, 네트워크 소켓을 거쳐 통신할 때 쓰이는 추상적인 개념 ✔️ InputStream 메서드 종류 메서드명 리턴 타입 기능 available() int 현재 읽을 수 있는 바이트의 수를 반환한다. close() void 입력 .. 2022. 7. 20. 4. 스트림(Stream) - Java 8 📌 스트림(Stream) 스트림(Stream)은 배열, 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. 스트림을 사용하면 List, Set, Map, 배열 등 다양한 데이터 소스로부터 스트림을 만들 수 있고, 이를 표준화된 방법으로 다룰 수 있다. 또한 데이터 소스를 다루는 풍부한 메서드를 제공한다. 이를 활용하면 다량의 데이터에 복잡한 연산을 수행하면서도, 가독성과 재사용성이 높은 코드를 작성할 수 있다. ✔️ 선언형으로 데이터 소스를 처리한다. 스트림을 이용하면 선언형으로 데이터 소스를 처리할 수 있다. ※ 선언형 프로그래밍이란? 프로그램을 “어떻게" 수행하는지보다는 “무엇을" 수행하는 지에 관심을 두는 프로그래밍 패러다임을 말한다. 명령형 방식에서는 하나하나의 .. 2022. 7. 18. 이전 1 2 3 4 ··· 6 다음