일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 항해99
- 자바스터디
- 프리미티브 타입
- docker
- 람다식
- 제네릭 타입
- 접근지시자
- 브릿지 메소드
- Study Halle
- 로컬 클래스
- System.in
- yield
- auto.create.topics.enable
- throwable
- System.err
- 스파르타코딩클럽
- 자바할래
- github api
- 정렬
- Switch Expressions
- 합병 정렬
- 바운디드 타입
- junit 5
- 함수형 인터페이스
- 익명 클래스
- raw 타입
- System.out
- 상속
- 제네릭 와일드 카드
- annotation processor
- Today
- Total
목록분류 전체보기 (253)
코딩하는 털보
STUDY HALLE 5주차 : 클래스 목표 자바의 Class에 대해 학습하세요. 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 과제 int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. 클래스 정의하기 먼저 객체지향 프로그래밍의 용어에 대해 알게된 것. 객체(Object)란? 사전적으로는 의사나 행위가 미치..
과제 2. LinkedList를 구현하세요. LinkedList에 대해 공부하세요. 정수를 저장하는 ListNode 클래스를 구현하세요. ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현하세요. ListNode remove(ListNode head, int positionToRemove)를 구현하세요. boolean contains(ListNode head, ListNode nodeTocheck)를 구현하세요. 과제 3. Stack을 구현하세요. int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요. void push(int data)를 구현하세요. int pop()을 구현하세요. 과제 4. 앞서 만든 ListNode를 사용해서..
객체 지향 프로그래밍 77. Multi-thread 프로그래밍 임계 영역(critical section) 두 개 이상의 thread가 동시에 접근하게 되는 리소스 critical section에 동시에 thread가 접근하게 되면 실행 결과를 보장할 수 없음 thread간의 순서를 맞추는 동기화(synchronization)가 필요 동기화 임계 영역에 여러 thread가 접근하는 경우, 한 thread가 수행하는 동안 공유 자원을 lock하여 다른 thread의 접근을 막음 동기화를 잘못 구현하면 deadlock에 빠질 수 있음 자바에서 동기화 구현 synchronized 수행문과 synchronized 메서드를 이용 synchronized 수행문 synchronized(참조형 수식) { } //참조형 ..
객체 지향 프로그래밍 74. Thread 구현하기 쓰레드를 구현할 일이 많지는 않지만 안드로이드 개발에서 쓰임 쓰레드 프로그래밍에서는 공유 자원이 중요 Process 실행중인 프로그램, OS로부터 메모리를 할당 받음 Thread 실제 프로그램이 수행되는 작업의 최소 단위 하나의 프로세스는 하나 이상의 Thread를 가지게 됨 Thread 구현하기 자바 Thread 클래스로부터 상속받아 구현 Runnable 인터페이스 구현 상속 방식 package thread; class MyThread extends Thread { public void run() { int i; for (i=0;i
객체 지향 프로그래밍 72. 그 외 입출력 클래스와 데코레이터 패턴 File 클래스 파일 개념을 추상화한 클래스 입출력 기능은 없고 파일의 속성, 경로, 이름 등을 알 수 있음 RandomAccessFile 클래스 입출력 클래스 중 유일하게 파일 입출력을 동시에 할 수 있는 클래스 파일 포인터가 있어서 읽고 쓰는 위치의 이동이 가능함 다양한 자료형에 대한 메서드가 제공됨 package stream.others; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileTest { public static void main(String[] args) throws IOException { RandomAcc..
객체 지향 프로그래밍 71. 직렬화 인스턴스의 상태를 그대로 저장하거나 네트웍으로 전송하고 이를 다시 복원하는 방식 ObjectInputStream, ObjectOutputStream 보조스트림 사용 Serializable 인터페이스 직렬화는 인스턴스의 내용이 외부로 유출되는 것이므로 프로그래머가 객체의 직렬화 가능 여부를 명시함 구현 코드가 없는 마크 인터페이스 package stream.serialization; import java.io.*; // class Person implements Externalizable { //직렬화가능하며 구현해야할 기능이 있음 class Person implements Serializable { //직렬화가능하다는 마크 인터페이스 String name; transi..
객체 지향 프로그래밍 70. 보조 스트림 실제 읽고 쓰는 스트림이 아닌 보조적인 기능을 추가하는 스트림 데코레이터라고도 불린다 상위 클래스 FilterInputStream, FilterOutputStream 생성자의 매개변수로 다른 스트림을 가진다 데코레이터 패턴(Decorator Pattern) 기반 스트림 > 보조 스트림1 > 보조 스트림2 Buffered 스트림 : 내부에 8192바이트 배열을 가지고 있음, 읽거나 쓸때 속도가 빠름 private static int DEFAULT_BUFFER_SIZE = 8192; Buffered 스트림을 이용하여 파일 복사 package stream.decorator; import java.io.*; //import java.net.Socket; //import ..
객체 지향 프로그래밍 68. 바이트 단위, 문자 단위 입출력 스트림 바이트 단위 스트림 InputStream : 바이트 단위 입력 스트림 최상위 클래스 OutputStrem : 바이트 단위 출력 스트림 최상위 클래스 추상 메서드를 포함한 추상클래스로 하위 클래스가 구현하여 사용 주요 하위 클래스 FileInputStream, ByteArrayInputStream, FilterInputStream, etc FileOutputStream, ByteArrayOutputStream, FilterOutputStream, etc FileInputStream, FileOutputStream 사용하기 파일에 한 바이트 씩 자료를 읽고 쓰는데 사용 입력 스트림은 파일이 없을 때 예외 발생 출력 스트림은 파일이 없는 경우..
객체 지향 프로그래밍 66. 자바 입출력 스트림 입출력 스트림 이란 네트웍에서 자료의 흐름이 물과 같다는 의미에서 유래 다양한 입출력 장치에 독립적으로 일관성 있는 입출력 방식 제공 입출력이 구현되는 곳에서는 모두 I/O 스트림을 사용 :키보드, 파일, 디스크, 메모리 등 구분 I/O 대상 기준 : 입력 스트림, 출력 스트림 자료의 종류 : 바이트 스트림, 문자 스트림 스트림의 기능 : 기반 스트림, 보조 스트림 입력 or 출력 스트림 입력 스트림 : 대상으로 부터 자료를 읽어 들이는 스트림 ex) FileInputStream(바이트), FileReader(문자), BufferedInputStream(보조), BufferedReader, etc 출력 스트림 : 대상으로 자료를 출력하는 스트림 ex) Fi..
객체 지향 프로그래밍 65. 다양한 예외 처리 예외 처리 미루기 throws를 이용하여 예외처리 미루기 try{} 블록으로 예외처리 하지 않고, 메서드 선언부에 throws를 추가 예외가 발생한 메서드에서 예외처리를 하지 않고 메서드를 호출한 곳에서 예외처리함 main()에서 throws를 사용하면 가상 머신에서 처리 됨 package exception; import java.io.FileInputStream; import java.io.FileNotFoundException; public class ThrowsException { public Class loadClass(String fileName, String className) throws FileNotFoundException, ClassNotF..