본문 바로가기

Java9

[Java] 입출력 ̱ 입출력 I/O 는 Input 과 Ouput 의 약자로 입력과 출력, 간단히 줄여서 입출력이라고 부릅니다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 의미합니다. 키보드로부터 데이터를 입력하거나 System.out.println() 을 이용해서 화면에 출력하는 것이 가장 기본적인 입출력의 예라고 할 수 있습니다. ̱ 스트림(stream) 자바에서 입출력을 수행하려면, 즉 어느 한쪽에서 다른 쪽으로 데이터를 전달하려면, 두 대상을 연결하고 데이터를 전송 할 수 있는 무언가가 필요한데 이것을 스트림이라고 정의했습니다. 여기서 말하는 스트림은 데이터 소스를 연산하고 처리하는 스트림이 아닙니다. 데이터를 입출력하는데 사용되는 연결통로를 의미합니다. 스트림은 연속적인 데이터의 .. 2023. 2. 4.
[Java] 스트림(Stream) 스트림 스트림은 JDK 1.8 버전부터 추가된 기능입니다. 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았습니다. 데이터를 추상화하였다는 것은, 데이터 소스가 배열이든 List 이든 Map 이든 상관없이 같은 방식으로 작업할 수 있는 것과 코드의 재사용성이 높아진다는 것을 의미합니다 스트림을 이용하면 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 작업할 수 있습니다. 스트림 특징 1. 스트림은 데이터 소스를 변경하지 않습니다. 스트림은 데이터 소스로부터 데이터를 읽기만할 뿐, 데이터 소스를 변경하지 않습니다. 필요하다면, 정렬된 결과를 컬렉션이나 배열에 담아서 반환할 수도 있습니다 2. 스트림은 일회용이다. 스트림은 Iterator 처럼 .. 2022. 11. 28.
[Java] 람다식(Lamda) 람다식 람다는 JDK 1.8버전부터 추가된 기능입니다. 람다가 추가되면서 자바는 객체지향언어인 동시에 함수형 언어가 되었습니다. 람다식은 메서드를 하나의 식으로 표현한 것입니다. 메서드에서 생략할 수 있는 부분을 최대한 생략하여 간략하고 명확한 식으로 표현한 것이죠. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지면서, 람다식을 익명 함수라고도 합니다. 모든 메서드는 클래스에 포함되어야 하므로 클래스도 새로 만들어야 하고, 객체 또한 생성해야지 메서드를 호출할 수 있습니다. 하지만 람다식은 이런 과정들이 필요하지 않고 오직 람다식 자체만으로도 이 메서드의 역할을 할 수 있습니다. 이 뿐만 아니라 람다식은 메서드의 파라미터로 전달되어지는 것이 가능하고, 메서드의 결과로 반환될 수 있습니다. 람.. 2022. 11. 25.
[Java] JVM 메모리 구조 JVM 메모리 구조를 알아보기 전에 JVM 에 대해 먼저 알아보겠습니다. JVM(Java Virtual Machine) 자바를 실행하기 위한 가상 기계라고 할 수 있습니다. 여기서 기계 대신 컴퓨터를 사용해서 자바를 실행하기 위한 컴퓨터 라고 이해하면 좋을거 같습니다. 자바로 작성된 어플리케이션은 모두 이 가상 컴퓨터에서만 실행되기 때문에 자바 어플리케이션이 실행되기 위해서는 반드시 JVM 이 필요합니다. JVM 은 JDK(Java Developement kit) 를 설치하면 함께 설치됩니다. 일반 어플리케이션의 코드는 OS(운영체제) 만 거치고 하드웨어로 전달되는데 비해 Java 어플리케이션은 중간에 JVM 을 한 번 더 거치게 됩니다. 그래서 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 .. 2022. 10. 25.