자바(JAVA) 80

Java 기초 또 다시 공부하기 20일차(마지막) - 입출력 스트림(보조 스트림, 입출력 관련 API)

1. 보조 스트림 (Filter Streams)기본 스트림을 감싸서 기능을 확장하는 역할입력 스트림: BufferedInputStream, DataInputStream출력 스트림: BufferedOutputStream, DataOutputStream, PrintStream단독 사용 불가 → 반드시 기본 스트림을 감싸야 함1) BufferedInputStream / BufferedOutputStream 기본 스트림(InputStream/OutputStream)을 감싸서 버퍼(buffer) 메모리를 활용하여 입출력 효율을 높이는 보조 스트림데이터가 1바이트씩 처리되는 기본 스트림의 단점(느림)을 보완하기 위해 한 번에 블록 단위로 처리-> 디스크 I/O 최소화 → 성능 향상BufferedInputStream..

Java 기초 또 다시 공부하기 19일차 - 컬렉션 프레임워크2(LIFO와 FIFO 컬렉션), 입출력 스트림(I/O 스트림)

1. 컬렉션 프레임워크2(LIFO와 FIFO 컬렉션)자바 컬렉션의 스택(Stack) 클래스과 큐(Queue) 인터페이스는 순서 기반 로직에서 자주 사용1) Stack 클래스 (1) 기본 개념 Stack의 구조 LIFO(Last In First Out): 마지막에 들어온 요소가 먼저 나감 주요 메서드리턴 타입메서드설명Epush(E item)주어진 객체를 스택에 추가Epeek()스택의 맨 마지막 객체를 가져옴(스택에서 객체 제거 x)Epop()스택의 맨 마지막 객체를 가져옴(스택에서 객체 제거 o) 객체 생성 방법: 저장할 객체 타입을 E 타입 파라미터 자리에 표기하고 기본 생성자를 호출Stack stack = new Stack();Stack stack = new Stack(); // E타입 파라미터를 ..

Java 기초 또 다시 공부하기 18일차 - 스레드(스레드 제어), 컬렉션 프레임워크

1. 스레드(스레드 제어)스레드 객체를 생성하고 start() 메서드를 호출하면 언제든 실행할 준비가 되어 있는 '실행 대기 상태'가 됨-> 운영체제에서 실행 대기 상태 스레드 중 하나를 선택하여 '실행 상태'로 만드는 것실행 상태의 스레드는 run() 메서드를 모두 실행하기 전에 다시 실행 대기 상태로 돌아갈 수 있고,실행 대기 상태에 있는 다른 스레드가 선택되어 실행 상태가 되기도 함 run() 메서드의 내용이 모두 실행되면 스레드의 실행이 멈추고 종료 상태가 됨 1) 스레드 상태 (Thread States)자바에서 Thread.State 열거형(Enum)은 총 6가지 상태를 정의상태설명NEW 스레드 객체가 생성됐지만 아직 start()가 호출되지 않음RUNNABLE실행 준비 완료 상태(JVM이 스케..

Java 기초 또 다시 공부하기 17일차 - 기본 API 클래스(java.util 패키지), 스레드(멀티 스레드)

이전 공부글2025.06.20 - [자바(JAVA)/미니 프로젝트 & 기초 공부] - Java 기초 또 다시 공부하기 16일차 - 기본 API 클래스(java.lang 패키지) String 클래스와 System 클래스도 모두 API에 속" data-og-host="keep-programming-study.tistory.com" data-og-source-url="https://keep-programming-study.tistory.com/159" data-og-url="https://keep-programming-study.tistory.com/159" data-og-image="https://blog.kakaocdn.net/dna/mLcrs/hyY8PTp6l8/AAAAAAAAAAAAAAAAAAAAAO5Pk7ESsPk3csxLZQ0dM_sLfp2viKvrj2Oz3o-gNZZr/..?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1767193199&allow_ip=&allow_referer=&signature=Q199%2B7%2Bw5%2BsM7qDNcxPQwwRbDkQ%3D

Java 기초 또 다시 공부하기 16일차 - 기본 API 클래스(java.lang 패키지)

*자바 API 도큐먼트API(Application Programming Interface): 라이브러리(library)라고도 하며, 프로그램 개발에 자주 사용되는 클래스/인터페이스의 모음을 의미-> String 클래스와 System 클래스도 모두 API에 속함API는 굉장히 방대하므로, 필요할 때마다 API Document에서 찾아 써야 함 -> API Document: 방대한 자바 표준 API 중 우리가 원하는 API를 쉽게 찾아 이용할 수 있도록 도와줌 HTML 페이지로 작성되어 있으며, Java 17의 도큐먼트 페이지는 아래와 같음 https://docs.oracle.com/en/java/javase/17/docs/api/index.html Overview (Java SE 17 & JD..

Java 기초 또 다시 공부하기 15일차 - 예외 처리(예외 클래스, 예외 처리)

예외(exception)사용자의 잘못된 조작 또는 개발자의 잘못된 코드로 인해 발생하는 프로그램 오류발생 시 프로그램이 곧바로 종료되는데, 예외 처리(exception handling)를 통해 프로그램을 종료하지 않고 정상 실행 상태를 유지할 수 있음자바에서는 예외가 발생할 가능성이 높은 코드를 컴파일할 때 예외 처리 유무 확인(모든 예외를 확인하는 것은 아님)-> 예외 처리 코드가 없다면 컴파일되지 않음1. 예외 클래스자바에서는 예외를 클래스로 관리-> 프로그램 실행 도중 예외 발생 시, JVM에서 해당 예외 클래스로 객체를 생성해야 예외 처리 코드에서 예외 객체 이용모든 예외 클래스는 java.lang.Exception 클래스를 상속받음1) 예외와 예외 클래스(1) 일반 예외(컴파일러 체크 예외, e..

Java 기초 또 다시 공부하기 14일차 - 중첩 클래스와 중첩 인터페이스(중첩 클래스와 중첩 인터페이스 개요, 익명 객체)

관련 공부글2025.06.04 - [자바(JAVA)/미니 프로젝트 & 기초 공부] - Java 기초 또 다시 공부하기 8일차 - 객체 지향 프로그래밍(객체의 특징, 객체 간의 관계, 클래스와 인스턴스 속성과 동작[필드(Field)와 메서드(Method)]으로 구성되어 있음현실 " data-og-host="keep-programming-study.tistory.com" data-og-source-url="https://keep-programming-study.tistory.com/151" data-og-url="https://keep-programming-study.tistory.com/151" data-og-image="https://scrap.kakaocdn.net/dn/bIndU2/hyY77FSMOC..

Java 기초 또 다시 공부하기 13일차 - 인터페이스, 인터페이스의 타입 변환과 다형성

관련 공부글2025.06.04 - [자바(JAVA)/미니 프로젝트 & 기초 공부] - Java 기초 또 다시 공부하기 8일차 - 객체 지향 프로그래밍(객체의 특징, 객체 간의 관계, 클래스와 인스턴스 속성과 동작[필드(Field)와 메서드(Method)]으로 구성되어 있음현실 " data-og-host="keep-programming-study.tistory.com" data-og-source-url="https://keep-programming-study.tistory.com/151" data-og-url="https://keep-programming-study.tistory.com/151" data-og-image="https://scrap.kakaocdn.net/dn/BisCx/hyY8WKCIiz/..

Java 기초 또 다시 공부하기 12일차 - 상속(추상 클래스와 추상 메서드)

1. 추상 클래스의 정의클래스들의 공통적인 필드와 메서드를 추출해서 선언하는 클래스객체를 직접 생성 가능한 실체 클래스와 상속 관계를 가지고 있음 -> 추상 클래스가 부모, 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성 물려받고 추가 특성을 가짐 (특성: 필드와 메서드들을 말함)2. 추상 클래스의 용도 공통된 필드와 메서드의 이름을 통일하여, 실체 클래스 작성 시 시간 절약실체 클래스를 설계하는 사람이 여러 사람일 경우, 실체 클래스마다 필드와 메서드가 제각기 다른 이름을 가질 수 있음-> 데이터와 기능이 모두 동일해도 이름이 다르니 객체마다 사용 방법이 달라지므로, 추상 클래스에 공통 필드와 메서드를 선언하고, 실체 클래스에서 추상 클래스를 상속하여 필드와 메서드..

Java 기초 또 다시 공부하기 11일차 - 상속(상속, 클래스의 타입 변환과 다형성)

1. 상속 1) 상속의 정의이미 잘 개발된 클래스를 재사용하여 새로운 클래스를 만들기 때문에, 중복되는 코드를 줄여줌-> 부모 클래스의 수정으로 모든 자식 클래스들도 수정되는 효과를 가져오므로, 유지 보수 시간을 줄일 수 있음예시: 부모 클래스 A.java, 자식 클래스 B.java// 클래스 Apublic class A { int field1; void method1() { ... }}// 클래스 A를 상속한 클래스 Bpublic class B extends A { String field2; void method2() { ... }}2) 클래스 상속의 특징 자식 클래스를 선언할 때 어떤 부모 클래스를 상속받을 것인지 결정하고, 선택된 부모 클래스를 extends 뒤에 기술자바에서는 여러 개의 부..