목록Computer Engineering/JAVA (15)
재훈재훈
어댑터 패턴 (Adapter Pattern) 그림의 설명을 보면"한 클래스의 인터페이스를 클라이언트에서 사용하려 하는 다른 인터페이스로 변환한다. 어댑터 패턴은 인터페이스가 호환이 되지 않아서 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있게 한다."라고 되어 있다. 너무 말이 어렵고 추상적이다.어댑터 패턴은 쉽게 생각해서 돼지코를 떠올리면 된다. 한국에서 사용하는 전자기기(220V)를 일본에서는 사용하지 못한다.110V짜리 일자 모양의 소켓이기 때문이다.이를 해결하기 위해 우리는 동그란 모양 플러그를 일자 모양으로 바꿔주는 돼지코를 끼워주어야 한다. 어댑터도 이와 마찬가지이다.한 클래스의 인터페이스(220V)를 사용하고자 하는 다른 인터페이스(110V)로 변환해준다.원래대로라면 호환성이 없어서 함께 사..
JAVA thread 프로세스?프로그램을 실행하면 os로부터 메모리를 할당 받아 프로세스가 됨 - 실행 중인 프로그램!프로그램 실행에 필요한 데이터, 메모리 등의 자원, 그리고 스레드로 구성되어 있다.스레드?프로세스의 자원을 할당 받아 실제로 작업을 수행함 ex. 멀티 프로세스 그리고 멀티 쓰레드멀티 프로세스 - 컴퓨터에서 유튜브로 영상도 보고 카톡도 하면서 워드프로그램 사용멀티 쓰레드 - 카카오톡에서 채팅도 하면서 동시에 파일도 전송하는 것 쓰레드를 구현하는 방법은 크게 2가지이다. 1. Runnable 인터페이스를 구현한 쓰레드public interface Runnable { // Runnable 인터페이스public abstract void run(); // 쓰레드로 작업하고자 하는 내용을 run ..
Java I/O API Stream - 프로그램과 파일 사이의 다리 역할을 함 1. InputStream (입력)InputStream 클래스를 이용해서 객체를 만든다 or 다른 클래스의 메소드에서 반환되는 객체를 얻는다read() 메소드를 이용하여 데이터를 읽는다 - read(), read(byte[])2. OutputStream (출력)OutputStream 클래스를 이용해서 객체를 만든다 or 다른 클래스의 메소드에서 반환되는 객체를 얻는다write() 메소드를 이용하여 데이터를 쓴다 - write(), write(byte[]), write(byte[], int idx1, int idx2)* write(byte[], int idx1, int idx2) - byte[] 크기 만큼 idx1부터 idx2까..
자료 출처 - 서울 위즈 김명호 강사, 실전 자바 강좌 JAVA Collections 컬렉션은 일종의 자료구조이다. 자바에서는 자료구조를 구현한 클래스를사용자에게 제공하는데 그 클래스가 바로 자바 컬렉션이다.자바가 제공하는 자료구조는 그 종류가 다양한데, 데이터의 성질에 따라서데이터 관리 방식이 다르기 때문이다. 자바 컬렉션에서 한 가지 중요한 것은 자료구조 안에서는 객체의 주소값만을 관리한다! 자바에서 사용되는 대표적인 자료구조에는 List, Set, Map 등이 있다. List- ArrayList // 배열과 비슷하나 크기를 지정해주지 않아도 됨. 인덱스를 사용하여 탐색이 빠름 - LinkedList // ArrayList와 비슷하나 각 노드 안에 다음 데이터의 정보가 있어 추가 삭제가 빠름 - Ve..
Strategy Pattern (스트래티지 패턴)알고리즘 군을 정의하고 각각을 캡슐화하고 교환해서 사용할 수 있도록 만든다.스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 어떤 객체를 만들 때 객체가 가지는 기능들이 다양하게 존재할 것이다.이러한 기능들을 추상화(부품화)하여 언제든지 적용할 수 있게 구조를 만드는 것이 Strategy 패턴이다.부품화된 기능들은 서로 교체가 가능하다. 예를 들어서 자동차에 들어가는 기어 모델이 3개가 있으면 옵션에 따라 기어 교체가 가능하다. 예제) 로봇 제조 프로그램 시나리오1.로봇 모양은 팔, 다리, 머리, 몸통으로 이루어져 있습니다.2.모든 로봇은 기본적으로 걷고, 달릴 수 있어야 합니다.3.Super로봇은 날수 있고, ..
Singleton Pattern 싱글턴 패턴이란, 어떤 클래스의 인스턴스의 갯수를 하나로만 제한하는 디자인 패턴이다. 그리고 싱글턴은 이 하나뿐인 인스턴스에 접근할 수 있는 전역적인 접촉점(getInstance 메소드)를 제공하여 모든 곳에서 이 단 하나의 객체에 접근할 수 있도록 한다. SingletonClass - 싱글턴 패턴을 적용한 클래스 pivate static SingletonClass SINGLETON_CLASS_INSTANCE = new SingletonClass(); // 클래스 자신이 자기를 호출함 private SingletonClass() {} // 생성자의 제어자가 private! SingletonClass 객체 생성은 오직 SingletonClass를 통해서! getSinglet..
제네릭(Generic) 제네릭은 클래스를 정의 내릴 때, 그 클래스에서 사용할 데이터타입을 미리 지정하지 않는 기법이다.객체를 생성하는 시점에 가상의 타입을 실제하는 타입으로 지정해준다.데이터 타입에 의존하지 않는다. Parameterized Class이다. 소스 출처 - 부경대 권오흠 교수님, 강의 예시 1) public class Box { // T라는 가상의 타입에 의해서 parameterized된 클래스 private T t; public void set(T t) {this.t = t;}public T get() {return t;} } … Box integerBox = new Box(); // 객체를 생성할 때 가상의 타입 T를 실제하는 타입으로 지정integerBox.set( new Integ..
파라미터의 다형성- 파라미터가 참조형일 경우, 메서드 호출 시 자신과 같은 타입, 또는 자손 타입의 인스턴스를 넘겨줄 수 있다. 소스 출처 - 부경대 권오흠 교수님, 강의 예제)public interface Comparable { ← 인터페이스 Comparableint compareTo(Object o );} public abstract class Shape implements Comparable {... ← Comparable를 구현한 추상클래스 Shapepublic int compareTo(Object obj) {double mine = this.computeArea();double yours = ((Shape)obj).computeArea();if (mine < yours)return -1;else..
자료 출처 - 부경대 권오흠 교수님, 강의 추상 클래스- 추상(abstract) 메서드는 선언만 있고 구현이 없는 메서드- 추상 메서드를 포함한 클래스는 추상 클래스 -> 구체화된 메서드도 가질 수 있음- 추상 메서드와 추상 클래스는 키워드 abstract로 표시- 추상 클래스는 객체를 만들 수 없음. 따라서 서브 클래스를 만드는 용도로만 사용됨. 예시) public abstract class Event { // 추상 클래스 public String title;public Event(String title) {this.title;} public abstract boolean isRelevant(MyDate date); // 추상 메서드} 인터페이스- 추상 메서드만을 가진 순수한 추상 클래스 -> 일종의 ..