바이트 스트림 예제 package bytestream; import java.io.IOException; public class ByteTest1 {public static void main(String[] args) {byte data[] = new byte[10];System.out.print("10개의 문자 입력 : ");try {System.in.read(data);} catch (IOException e) {e.printStackTrace();}System.out.println("입력된 값 : ");/*for(int i =0; i 파일 복사 */ package bytestream; import java.io.FileNotFoundException;import java.io.FileOutputSt..
package Thread; class ThreadDemo extends Thread{ //실제 작업, 스레드를 상속받아서 스레드가 된다.//private String name;//public ThreadDemo(String name) {//this.name = name;//super(name);//}@Overridepublic void run() { // 자식 스레드가 해야할 일을 적어주는 곳int sum = 0;for(int i=0; i
● Thread(1) Process and ProgramProcess - 실행중인 프로그램 cpu가 사용할수있도록 보조기억장치에서 주기억장치로 프로그램을 이동할때 사용 Program - 실행중이 아닌 프로그램 Multi Process - 시분할 작업, 여러 프로그램을 실행하는 것Multi Processor 스케줄링 해주는 것이 OS Thread : 하나의 프로세스 안에서 실행되는 작업 단위 (2) Multi Thread (3) 자바에서 지원하는 스레드 기법1) Thread클래스 상속2) Runnable인터페이스 상속 (대안) (4) 모든 자바클래스는 반드시 하나의 스레드를 가지고 있다.: main() -> 메인 스레드: run() -> 자식 스레드가 해야할 일을 적어주는 곳 (5) Thread의 Life..
● IO(Input Output) -> NIO(1) java.io.* (2) Stream1) 단방향2) 원칙적으로 순차적 3) 지연 발생4) 어떤 장치를 사용하던간에 사용법은 동일하다. (3) 자바에서 구현된 Stream 객체1) ByteStreamInputStreamOutputStream 2) CharacterStreamReaderWriter 3) Printwriter출력을 간단하고 쉽게 하기 위한 클래스 4) Serializable(직렬화) -> 복잡한 데이터를 단순화 시키는 것, 속도는 조금 느리지만 데이터는 안전함 ※ 래퍼 클래스는 비 객체를 객체로 만들어줌 필터 클래스는 객체를 더 확장시켜서 더 많은 기능을 가진 객체로 만들어준다.
● 예외 처리(1) 예외가 발생했을 때 예외에 대한 제어권을 시스템(JVM)이 아니라 개발자가 가질 수 있게 하는 방법 (2) 왜 쓰는가? Why?1) 예외가 발생했을 때 메시지에 대한 표현 문제2) 프로그램의 비정상적인 종료 (3) 어떻게 쓰는가? How?1) try/catch blocktry{ //모니터링기능 , try로 묶은곳에서 에러가 발생하는지 확인하는 구문...}catch(...){ // 시스템에서 처리하지 않고 개발자가 직접 처리할 수 있도록 하는 구문 ...} - 다중으로 catch를 사용해서 더 넓은 부분의 에러를 잡을수있다. 2) throw - 예외를 던진다, 테스트, 예외 처리 주체를 변경- 블럭 내부(메서드 내부)에서만 던질 수 있다- 단 한 개만 던질 수 있다.- try문에서 사용..
- 조건 1. TV와 Radio클래스는 Power인터페이스를 상속받아 Volume과 마찬가지로 오버라이딩을 한다.2. 소리를 높일 때 50이상 넘지 않도록 한다.3. 소리를 낮출때 0미만으로 줄일 수 없다. (0은 뮤트기능)4. 소리를 켜거나 줄일때 반드시 전원이 켜져있을 때에만 가능하게 한다. *** 실행 예시 ***제품 선택1. TV2. Radio선택 : _TV전원을 켜시겠습니까?(Y/N) : _전원이 켜져있다면1. 소리증가2. 소리 감소선택 : 1값: 20현재.. 볼륨은 20만큼 올렸습니다.현재.. 볼륨은 40입니다. import java.util.Scanner; interface Volume { void volumeUp(int vol); void volumeDown(int vol);} interf..
class HomeWork{/*1. 입력받은 값이 문자이면 "문자"라고 출력하고 그렇지않으면 "기타"라고 출력하라.2. 입력받은 값이 소문자이면 소문자라고 출력하고 대문자이면 대문자라고 출력하고숫자이면 숫자라고 출력하고 그외에는 기타라고 출력3. 간단한 전자계산기 프로그램연산자 : +숫자1 : 10숫자2 : 5결과 : 10+5 = 15*/ public static void main(String[] args)throws java.io.IOException{/* 1번System.out.print("문자를 입력하세요 : ");int word = System.in.read();if((word>=65&&word=97&&word=65&&word=97&&word=48&&word
● Generic(1) 클래스와 인터페이스, 그리고 메소드를 정의할 때 타입을 파라미터로 사용할 수 있도록 한다. (2) 컴파일 시 강한 타입 체크를 할 수 있다. (3) 타입 변환(casting)을 제거한다. ※ Generic을 사용하면 실수하지 않고 안전하게 사용하는 것이 가능하다.package Generic; import java.util.Vector; public class GenericTest1 {public static void main(String[] args) {Vector v = new Vector(); // 제네릭 사용으로 String만 사용할수 있게 한다.// 실시간으로 검사해서 오류체크 가능v.add("hello");v.add("world");v.add("홍길동");//...//v...
● Collection(1) Set 1) 저장 용도2) 중복 제거3) 정렬 순서 없다4) HashSet, LinkedHashSet, TreeSet(중간에 Interface를 상속 받음 / 정렬기능만 추가된 기능), ... - Treeset의 정렬 순서는 알파벳 순으로 정렬된다. - 성능으로 보면 부모 인터페이스가 빠르다 자식은 상대적으로 느리다 - Iterator it = tree.iterator(); // 줄을 세우는 (정렬)기능 - it.hasNext() //데이터를 일괄적으로 한꺼번에 가져오려고 할때 쓰는 용도 package Collection; import java.util.HashSet;import java.util.Iterator;import java.util.TreeSet; public cl..
● 인터페이스(Interface)(1) 클래스를 만들기위한 설계도(2) 표준화를 위한 약속(규칙)(3) 순수(완전) 추상 클래스(4) 다중 상속 지원 Interface는 모든 변수가 static이 숨겨져 있다 , Interface안에 있는 변수는 상수이며 고칠수 없다 (final)=> Interface안에는 public static final이 들어가 있다. Interface에서 상속을 받을때는 Implements를 사용해 상속받을수 있다. extends -> 확장 = 서로 같은 인터페이스나 클래스는 extends로 상속해야된다.implements -> 구현 = 클래스가 인터페이스한테 상속받을때는 Implements로 상속해야함