일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스파르타코딩클럽
- 바운디드 타입
- public 필드
- 자바할래
- 프리미티브 타입
- Study Halle
- 제네릭 와일드 카드
- 람다식
- 익명 클래스
- 항해99
- Switch Expressions
- System.err
- 접근지시자
- 브릿지 메소드
- 상속
- raw 타입
- Java
- junit 5
- System.in
- 합병 정렬
- 로컬 클래스
- annotation processor
- 제네릭 타입
- github api
- auto.create.topics.enable
- 함수형 인터페이스
- System.out
- 정렬
- Effective JAVA
- 자바스터디
- Today
- Total
목록전체 글 (272)
코딩하는 털보
과제 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..
객체 지향 프로그래밍 63. 예외와 예외 처리 컴파일 오류 : 프로그램 코드 작성 중 발생하는 문법적 오류 실행 오류 : 실행중인 프로그램이 의도치 않은 동작을 하거나(bug) 프로그램이 중단되는 오류(runtime error) 자바는 예외 처리를 통하여 프로그램의 비정상 종료를 막고 log를 남길 수 있음 시스템 오류(error) : 가상 머신에서 발생, 프로그래머가 처리할 수 없음 동적 메모리를 다 사용한 경우, stack over flow 등 예외(Exception) : 프로그램에서 제어할 수 있는 오류 읽으려는 파일이 없는 경우, 네트웍이나 소켓 연결 오류 등 자바 프로그램에서는 예외에 대한 처리를 수행 함 Exception 클레스 : 모든 예외 클래스의 최상위 클래스 IOException, Ru..