본문 바로가기

Programming/Java27

I/O 스트림 I/O 스트림스트림과 I/O 스트림의 차이스트림은 데이터를 어떤 형태로 걸러내고 가공하는 것인지 즉 데이터를 목적에 맞게 걸러내거나 가공하는데 있습니다.하지만 I/O스트림은 데이터의 입력과 출력입니다.  I/O 스트림파일키보드와 모니터그래픽카드, 사운드카드프린터, 팩스 등 출력장치서버 또는 클라이언트입출력 대상은 다양하여 코드상의 입출력도 다양해지는 것이 일반적입니다. 하지만 자바에서는 동일한 방법으로 입출력이 가능합니다.  자바 스트림에는 두 가지가 있습니다.입력 스트림(Input Stream) : 실행 중인 자바 프로그램으로 데이터를 읽어오는 스트림출력 스트림(Output Stream) : 실행 중인 자바 프로그램으로 데이터를 내보내는 스트림자바 I/O스트림에는 두 가지 카테고리가 존재합니다.바이트 .. 2024. 8. 14.
스트림 스트림(Stream)스트림은 데이터의 흐름을 표현하는 것으로, 데이터를 필터링, 매핑, 정렬, 집계하는 등의 다양한 연산을 선언적으로 수행할 수 있습니다. 스트림은 데이터 소스를 통해 생성되며, 연산을 통해 처리됩니다. 스트림 생성하기 컬렉션에서 생성 import java.util.*;import java.util.stream.*;class Main { public static void main(String[] args) { List list = Arrays.asList("a", "b", "c"); Stream stream = list.stream(); }} 배열에서 생성 import java.util.*;import java.util.stream.*;class Mai.. 2024. 8. 13.
람다 람다(Lambda)interface Print { void print(String s);}class Printer implements Print { @Override public void print(String s) { System.out.println(s); }}class Main { public static void main(String[] args) { Print p = new Printer(); p.print("Hello World"); }}지금껏 공부한 내용을 바탕으로 print() 함수를 제작하였습니다. 익명클래스를 사용하면 위에 코드를 줄일 수 있습니다.interface Print { void print(String .. 2024. 8. 11.
중첩 클래스 중첩(Nested) 클래스public class OuterClass { private String outerField = "Outer Field"; class InnerClass { void accessOuter() { System.out.println("Accessing: " + outerField); // 바깥 클래스의 멤버에 접근 } } public static void main(String[] args) { OuterClass outer = new OuterClass(); OuterClass.InnerClass inner = outer.new InnerClass(); inner.accessOut.. 2024. 8. 11.
열거형, 가변인자, 어노테이션 열거형public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}public class Main { public static void main(String[] args) { Day today = Day.MONDAY; if (today == Day.MONDAY) { System.out.println("Today is Monday."); } }}열거형이 등장하기 이전에는 자바는 열거형을 표현하기 위해서 상수에 이름을 붙여 사용하였습니다. 하지만 이러한 방식에는 예를 들어 남성은 1이고 고양이도 1이라는 상수로 만들었는데 switch문에서.. 2024. 8. 11.
컬렉션 프레임워크 컬렉션 프레임워크(Collection Framework)프레임워크란?프로그래머들이 쓸 수 있도록 정의된 클래스들의 모임입니다. 즉 자바 프레임워크는 개발자가 자바로 응용 프로그램을 쉽게 구축할 수 있도록 돕는 소프트웨어 플랫폼입니다.하지만 이것이 전부라면 라이브러리라고 불리게 됩니다. 컬렉션이란?데이터를 효율적으로 저장하고 조작하기 위한 자료구조와 알고리즘의 집합을 제공합니다. 자바 컬렉션은 다양한 자료구조를 지원하며, 각 자료구조는 특정 상황에서 효율적인 데이터 처리 방법을 제공합니다. 컬렉션 프레임워크란?즉 컬렉션 프레임워크란 자료구조와 알고리즘을 제네릭 기반의 클래스와 메소드로 미리 구현한 결과물입니다.  인터페이스 주요 메소드: add(), remove(), contains(), size(), i.. 2024. 8. 10.
제네릭 제네릭(Generics)// 제네릭 클래스 정의class Notepad { private T memo; public void setMemo(T memo) { this.memo = memo; } public T getMemo() { return memo; }}// 제네릭 클래스 사용public class Main { public static void main(String[] args) { Notepad stringBox = new Notepad(); stringBox.setMemo("Hello"); System.out.println(stringBox.getMemo()); // Hello .. 2024. 8. 10.
Arrays 클래스 Arrays 클래스import java.util.Arrays;class Main { public static void main(String[] args) { int[] number = new int[] {2, 1, 4, 3, 6, 5}; // 정렬 Arrays.sort(number); // 1, 2, 3, 4, 5, 6 // 검색 int index = Arrays.binarySearch(number, 4); // 3 // 배열 복사 int[] newNumber = Arrays.copyOf(number, 7); // [2, 1, 4, 3, 6, 5, 0] .. 2024. 8. 9.
StringTokenizer 클래스 StringTokenizer 클래스import java.util.StringTokenizer;public class Main { public static void main(String[] args) { // 기본 구분자 (공백) String str1 = "Java is fun to learn"; StringTokenizer st1 = new StringTokenizer(str1); String str2 = "1 + 2 - 3 * 4 / 5 ="; StringTokenizer st2 = new StringTokenizer(str2, "+-*/="); while (st1.hasMoreTokens()) { .. 2024. 8. 9.