Java
-
자바 리플렉션Java 2023. 6. 29. 11:22
학습 순서 1. 리플렉션이란 무엇일까? 2. 리플렉션에 주요 클래스와 인터페이스 살펴보기 3. 리플렉션을 이해하기 위한 선행 어노테이션 학습 하기 4. 리플렉션을 이해하기 위한 시나리오 코드 3단계 1. 리플렉션이란 무엇일까? 리플렉션(Reflection)은 자바의 핵심 기능 중 하나로, 프로그램 실행 중에 클래스의 정보를 분석하고 조작할 수 있는 부분을 의미합니다. 즉, 리플렉션을 사용하면 컴파일 시점에 클래스의 구조를 미리 알 필요 없이, 실행 시점에 동적으로 클래스의 메서드, 필드, 생성자 등에 접근하고 호출할 수 있습니다 이는 일부 프레임워크나 라이브러리에서 매우 유용하게 사용되고 있습니다. 2. 주요 클래스와 인터페이스 살펴보기 자바에서 리플렉션을 사용하려면 java.lang.reflect 패키..
-
StreamJava 2023. 4. 6. 12:40
자바에서 제공하는 다양한 기능들 주의! 여기서는 java.io 패키지에 있는 stream 이 아닙니다. java.util.stream 을 이야기 해봅시다. java 8에서 추가된 java.util.stream 패키지는 자바 8의 기능 중 하나로, 컬렉션(Collection)과 배열(Array)에서 데이터를 처리하는 기능을 제공합니다. 이를 스트림(Stream)이라고 합니다. 스트림 이란? 자료의 대상과 관계없이 동일한 연산을 수행 배열, 컬렉션을 대상으로 연산을 수행 함 일관성 있는 연산으로 자료의 처리를 쉽고 간단하게 함 자료 처리에 대한 추상화가 구현되었다고 함 한번 생성하고 사용한 스트림은 재사용 할 수 없음 자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모됨 다른 연산을 수행하기 위해서..
-
버퍼 스트림Java 2023. 3. 14. 03:08
앞서까지 배운 스트림은 입출력 스트림이였다. read나 write 요청은 운영 체제에 의하여 요청되는 즉시 처리되는데 이와 같은 방법은 매우 비효율적이다. 디스크 접근이나 네트워크 접근과 같은 매우 시간이 많이 걸리는 동작을 요구하기 때문이다. 이러한 오버헤드를 줄이기 위하여 자바에서는 버퍼링된 스트림(buffered I/O)을 제공한다. BufferedOutputStream 예제 package ch05; import java.io.BufferedOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class MainTest1 { public s..
-
자바의 I/O 스트림Java 2023. 3. 2. 16:47
입출력 스트림 네트워크에서 자료의 흐름이 물의 흐름과 같다고 해서 입출력 스트림으로 불린다. 입출력이 구현되는 곳 : 파일 디스크,키보드,마우스,네트워크(통신),메모리 (System.in 과 System.out도 각각 키보드와 모니터를 나타내는 스트림으로 입력 스트림과 출력 스트림으로 불린다) 입출력 스트림의 구분 대상 기준 : 입력 스트림 / 출력 스트림 자료의 종류 : 바이트 스트림/ 문자 스트림 바이트 스트림 : 8비트의 바이트 단위로 입출력을 수행하는 스트림 문자 스트림 : 입출력 단위가 문자인 스트림 입출력 스트림 예제 package ch01; import java.io.IOException; public class SystemInTest1 { public static void main(Stri..
-
자료구조 연습문제Java 2023. 2. 21. 14:03
학습목표 .을 이용해 연결구조를 알아보자 package ch06; public class Course { private int courseId; private String name; private String description; public Course(int courseId, String name, String description) { this.courseId = courseId; this.name = name; this.description = description; } public int getCourseId() { return courseId; } public void setCourseId(int courseId) { this.courseId = courseId; } public String..
-
자료구조Java 2023. 2. 21. 12:49
학습목표 자료구조에 대한 개념 자료구조란? 프로그램에서 사용할 많은 데이터를 메모리 상에서 관리하는 여러 구현방법들 효율적인 자료구조가 성능 좋은 알고리즘의 기반이 된다. 자료의 효율적인 관리는 프로그램의 수행속도와 밀접한 관련이 있다. 자바에서 제공되는 자료구조 구현 클래스 set 계열 순서없고 중복 못함(주머니에 순서없이 마구잡이로 집어넣은거랑 같음) 아이디, 주민번호, 사번등을 관리하는데 유용하다. List 계열 객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스 순서있고 중복 가능 자료구조 리스트 (배열, 연결리스트)의 구현을 위한 인터페이스 Map계열 쌍으로 이루어진 객체를 관리하는데 사용하는 메서드들이 선언된 인터페이스 key와 Value가 한쌍 HashMap은 가장 많이..
-
쓰레드(Thread)Java 2023. 2. 19. 13:35
학습 목표 프로세스의 용어에 대한 이해 thread 의 개념 thread를 만드는 방법 학습 thread를 사용하는 방법 학습 thread의 수행 순서는 개발자가 완전히 제어할 수 없는 부분 이다. thread 란? 하나의 프로세스 안에 실제 작업을 수행하는 단위이다. 하나의 프로세스는 하나 이상의 thread를 가지게 되고, 실제 작업을 수행하는 단위는 thread이다. process 프로그램이 실행되면 OS로 부터 메모리를 할당 받아서 프로세스 상태가 된다. 프로세서 안에는 하나의 작업에 단위인 여러 Thread를 가질 수 있다. multi threading 여러 thread가 수행되는 프로그래밍, 마치 여러 작업이 동시에 실행되는 효과를 얻을 수 있다. (하나의 작업만 하는데 너무 빨리 작업되서 여..
-
제네릭Java 2023. 2. 19. 13:12
학습목표 제네릭 프로그래밍 개념 type paramater 개념 제네릭 프로그래밍이란? 다양한 자료형이 적용될 수 있는 클래스와 메소드를 작성하는 기법이다. 제네릭 자료형 클래스에서 사용하는 변수의 자료형이 여러개 일수 있고, 그 기능(메서드)은 동일한 경우 클래스의 자료형을 특정하지 않고 추후 해당 클래스를 사용할 때 지정 할 수 있도록 선언하는 것 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식 컬렉션 프레임워크에서 많이 사용되고 있다. 제네릭 프로그래밍을 사용하는 이유 우리가 변수를 사용한다고 하면 변수에 항상 자료형을 지정하게 되어있다. 하지만 같은 변수 이름이고 데이터 타입만 달라지는 경우를 만난다면 제네릭을 사용하면 좋다. 제네릭을 이용한 방법 자료형을 표시하..