JAVA (30) 썸네일형 리스트형 [JAVA] 파일 입출력 (I/O) InputStream, OutputStream 자바에서는 입출력을 다루기 위한 InputStream, OutputStream을 제공합니다. Stream은 단방향으로만 데이터를 전송할 수 있기에, 입력과 출력을 동시에 처리하기 위해서는 각각의 스트림이 필요하게 됩니다. FileInputStream 먼저 새로 생성한 프로젝트의 디렉터리에 아래와 같은 텍스트 파일을 생성하였습니다. 아래 예제 코드를 통해 출력 결과를 확인하여 보았습니다. import java.io.FileInputStream; public class Main { public static void main(String[] args) { try{ FileInputStream fileInputStream = new FileInputStream("p.. [JAVA] 스트림 (Stream) - 최종 연산 스트림(Stream)이란? 스트림은 '데이터의 흐름'입니다. 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있습니다. 또한 이전에 배웠던 람다를 이용하여 코드의 양을 줄여 간결하게 표현할 수 있습니다. 즉, 배열과 컬렉션을 함수형으로 처리할 수 있습니다. 또한 간단하게 병렬처리(multi-threading)가 가능하다는 장점이 있습니다. 이 말은 즉, 스레드를 이용해 많은 요소들을 빠르게 처리할 수 있습니다. 스트림에 대한 내용은 크게 3가지로 나눌 수 있습니다. 생성 중간연산 최종연산 이번 글은 이 세 가지 내용 중 최종 연산에 대한 내용을 다뤄보고자 합니다. 최종 연산 우리는 스트림의 생성과 중간 연산에 대해 공부하였습니다. 이제 마지막으로 가공.. [JAVA] 스트림 (Stream) - 중간 연산 스트림(Stream)이란? 스트림은 '데이터의 흐름'입니다. 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있습니다. 또한 이전에 배웠던 람다를 이용하여 코드의 양을 줄여 간결하게 표현할 수 있습니다. 즉, 배열과 컬렉션을 함수형으로 처리할 수 있습니다. 또한 간단하게 병렬처리(multi-threading)가 가능하다는 장점이 있습니다. 이 말은 즉, 스레드를 이용해 많은 요소들을 빠르게 처리할 수 있습니다. 스트림에 대한 내용은 크게 3가지로 나눌 수 있습니다. 생성 중간연산 최종연산 이번 글은 이 세 가지 내용 중 중간연산에 대한 내용을 다뤄보고자 합니다. 중간연산 전체 요소 중에서 다음과 같은 api를 사용해 내가 원하는 것만 뽑을 수 있습니다.. [JAVA] 스트림 (Stream) - 생성 스트림(Stream)이란? 스트림은 '데이터의 흐름'입니다. 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있습니다. 또한 이전에 배웠던 람다를 이용하여 코드의 양을 줄여 간결하게 표현할 수 있습니다. 즉, 배열과 컬렉션을 함수형으로 처리할 수 있습니다. 또한 간단하게 병렬처리(multi-threading)가 가능하다는 장점이 있습니다. 이 말은 즉, 스레드를 이용해 많은 요소들을 빠르게 처리할 수 있습니다. 스트림에 대한 내용은 크게 3가지로 나눌 수 있습니다. 생성 중간연산 최종연산 이번 글은 이 세 가지 내용 중 생성에 대한 내용을 다뤄보고자 합니다. 생성하기 스트림을 이용하기 위해서는 먼저 생성을 하여야 합니다. 보통 스트림은 배열과 컬렉션을.. [JAVA] 람다 (Lambda) 람다란? 람다식(Lambda Expression)은 함수형 프로그래밍 기법을 지원하는 자바의 문법입니다. 람다식은 코드를 매우 간결하면서도 명확하게 표현할 수 있다는 장점이 있습니다. 람다식의 기본 문법 람다는 간단히 말해 메서드를 하나의 식으로 표현한 것입니다. 아래의 예제 코드를 보도록 하겠습니다 // 메서드 int main(int x, int y) { return x x < y ? x : y; 위의 예제를 보면 메서드를 람다로 표현한 모습을 볼 수 있습니다. 보시는 바와 같이 클래스를 작성하고 객체를 생성하지 않아도 메서드를 사용할 수 있는 모습을 볼 수 있습니다. 그런데 자바에서는 클래스의 선언과 동시에 객체를 생성하므로, 단 하나의 .. [JAVA] 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) 얕은 복사 객체를 복사할 때, 해당 객체만 복사하여 새 객체를 생성한다. 복사된 객체의 인스턴스 변수는 원본 객체의 인스턴스 변수와 같은 메모리 주소를 참조한다. 따라서, 해당 메모리에 저장된 값이 변경되면 원본 객체 및 복사 객체의 인스턴스 변수의 값이 함께 변경된다. (원본 객체로부터 종속적인 객체) class Copy{ private String name; public Copy(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public class Main { public static void main(Strin.. [JAVA] 싱글턴 패턴(Singleton pattern) 싱글턴(Singleton pattern) 이란? 싱글턴(Singleton) 패턴은 하나의 객체만을 생성할 수 있는 클래스를 말합니다. 이를 사용해 객체의 유일성을 보장할 수 있습니다. 그렇다면 객체의 유일성을 어떻게 보장할 수 있을까요? 아래의 코드 예제를 보도록 하겠습니다. public class Singleton { public static final Singleton instance = new Singleton(); } 위의 코드 예제를 보면 정적(static) 변수를 사용한 것을 볼 수 있습니다. 정적 변수는 독립적인 저장 공간을 가지는 인스턴스와 다르게 공통된 저장 공간을 가집니다. 즉, 한 클래스로부터 생성되는 모든 인스턴스들이 값을 공유하게 됩니다. 이는 이전 글인 클래스와 메서드에 자세히 .. [JAVA] 한글 깨짐 & error unmappable character (0xEB) for encoding x-windows-949 에러 해결 build 할 때 한글이 깨지며 unmappable character (0xEC) for encodig x-windows-949 에러가 발생할 때 해결하는 방법에 대해 소개하도록 하겠습니다. 1. Global Encoding 확인 file -> settings -> file encodings -> Global Encodingdl UTF-8로 되어있는지 확인. 2. Dfile.encoding = UTF-8 추가 help -> Edit custom vm option -> -Dfile.encoding=UTF-8 추가 3. Build and run using 확인 setting -> Build, Execution, Deployment -> Build Tools -> Gradle -> build and run u.. 이전 1 2 3 4 다음