본문 바로가기

Java36

java.io 패키지와 스트림 1. Java I/O 패키지 개요Java에서 데이터를 입력받고 출력하는 기능을 제공스트림(Stream) 사용 → 데이터를 연속적인 흐름으로 처리파일, 네트워크, 콘솔 등 다양한 입출력 소스를 지원대부분 예외 처리 필수 (try-catch or throws IOException)처리 단위 \ 처리 방향입력 스트림출력 스트림기본 스트림바이트 스트림InputStream (파일이나 네트워크에서 바이트 데이터를 읽음)FileInputStreamByteArrayInputStreamOutputStream (파일이나 네트워크로 바이트 데이터를 씀)FileOutputStreamByteArrayOutputStream문자 스트림Reader (문자 단위로 데이터를 읽음)FileReaderCharArrayReaderString.. 2025. 3. 19.
java.lang 패키지 java.lang 패키지java.lang 패키지에 존재하는 클래스를 사용할 때는 import문이 필요 없음Object, String, StringBuffer, Process, Thread, Exception, Throwable, Error, System, Package, Class, Math, 포장클래스(Number, Integer, Duble ...) object 클래스자동으로 모든 클래스의 조상이 되는 클래스주요메서드: clone(), equal(), hashcode(), toString() toString()객체를 문자열로 표현하여 반환(클래스이름@16진수해시코드)문자열의 + 연산 또는 System.out.print() 등에서 필요자식 클래스에서 재정의할 수 있음(String, Integer 클래스.. 2025. 3. 19.
패키지와 예외처리 1. 패키지(Package)패키지란?관련 있는 클래스와 인터페이스의 묶음.클래스 이름 충돌 방지, 접근 제어, 코드 관리 효율성 증가.Java 프로그램은 계층적 패키지 구조를 가짐.1️⃣ 패키지 선언 및 사용패키지 선언 방법package 패키지명; 를 소스 코드의 최상단에 작성.package com.example.utils; // 패키지 선언public class MyClass { public void sayHello() { System.out.println("Hello from MyClass!"); }}패키지 내 클래스 사용1. 패키지명 포함하여 사용com.example.utils.MyClass obj = new com.example.utils.MyClass();2. impor.. 2025. 3. 18.
제네릭과 람다식 제네릭(Generic)1. 제네릭(Generic)이란?클래스, 인터페이스, 메소드를 정의할 때 **타입 매개변수(타입 파라미터)**를 선언하여 사용.자료형을 한정하여 컴파일 시 타입 검사를 수행 → 오류 방지 & 형변환 불필요.원시 타입(Primitive Type, ex. int, double) 사용 불가 → 대신 Wrapper Class(Integer, Double 등) 사용.제네릭의 장점✔ 여러 유형에 걸쳐 동작하는 일반화된 클래스/메서드 정의 가능✔ 자료형 검사 가능 (컴파일 시 오류 방지)✔ 형변환(Casting) 불필요2. 제네릭 클래스 (Generic Class)클래스 정의에서 타입 파라미터 선언 가능.T는 타입 매개변수(참조형만 가능).class Box { // T 타입 매개변수 p.. 2025. 3. 18.
인터페이스와 다형성 인터페이스와 다형성추상 클래스abstract 포함, 객체 생성 불가, 상속 필수인터페이스100% 추상, implements 필요, 다중 상속 가능다형성부모 타입 = 자식 객체 참조 가능열거형 (Enum)미리 정의된 상수값 집합익명 클래스1회성 클래스중첩 클래스내부 클래스, static / non-static1. 추상 메소드abstract 키워드를 사용몸체 없이 형식만 존재 (반환형, 이름, 매개변수 목록만 선언)자식 클래스가 반드시 구현final과 함께 사용할 수 없음추상 클래스 또는 인터페이스에서 선언예제abstract class Animal { abstract void sound(); // 추상 메서드}class Dog extends Animal { void sound() { System... 2025. 3. 18.
클래스와 상속 1. 클래스 정의클래스는 데이터 필드(멤버 변수)와 메소드로 구성되며, 부모 클래스 상속, 인터페이스 구현, 추상 클래스, final 클래스 여부 등을 정의할 수 있습니다.1.1 클래스 정의 문법[접근제어자] class 클래스이름 [extends 부모클래스], [implements 인터페이스] { ; ; ;}1.2 클래스 예제public class Person { // 데이터 필드 (멤버 변수) private String name; private int age; // 생성자 public Person(String name, int age) { this.name = name; this.age = age; } // 메소드 pu.. 2025. 3. 5.
Java 기본 문법 Java 프로그램의 기본 사항1. Java 프로그램의 구조Java 프로그램은 **클래스(Class)와 메소드(Method)**로 구성된다.일반적으로 main() 메소드와 기타 클래스는 분리하여 작성하는 것이 좋다.1.1 예제 코드아래 코드는 학생의 성적을 관리하는 프로그램이다.// Grade 클래스 정의class Grade { int e; // 영어 점수 int m; // 수학 점수 // 점수 입력 메소드 void input_grade(int a, int b) { e = a; m = b; } // 총점 출력 메소드 void output_grade() { System.out.println("총점: " + (e + m)); }}.. 2025. 3. 5.
Java 프로그래밍 개요 Java 언어의 특징Java는 범용 프로그래밍 언어로, 다양한 플랫폼에서 실행 가능하고 객체 지향적 특성을 강조하는 언어이다.1. Java의 주요 특징운영체제와 무관 & 하드웨어 플랫폼 독립적"Write Once, Run Anywhere" (한 번 작성하면 어디서든 실행 가능)Java 소스 코드가 **바이트코드(.class)**로 변환된 후, JVM(Java Virtual Machine)에서 실행됨Windows, macOS, Linux 등 다양한 운영체제에서 실행 가능완전한 객체 지향 프로그래밍 언어모든 코드가 **클래스(Class)와 객체(Object)**로 구성캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism) 등의 객체 지향 원칙 지원웹 및 네트워크 프.. 2025. 3. 5.
[restartedMain] i.n.r.d.DnsServerAddressStreamProviders : Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. ERROR 56522 --- [backend] [restartedMain] i.n.r.d.DnsServerAddressStreamProviders : Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLi.. 2025. 1. 30.