본문 바로가기

분류 전체보기

(1196)
Thread Thread-하나의 프로세스 내의 작업의 단위 Thread 만들기 위해서 extends Thread 해야 하는데 다른 객체를 상속받고 있다면 implements Runnable 해서 인터페이스 구현 Thread 는 run이라는 함수를 구현해야함. 그 안에 하고자 하는 작업을 지시 Thread실행 방법은 thread 객체 만들고 그 객체를 start()함수로 실행시킴 메인 함수에 두 개의 thread를 만들었다면 총 thread는 메인포함 3개 따라서 메인은 두개의 thread를 띄우고 종료된 후에 각 thread는 run에 접근하여 실행함 두 개의 thread는 순서가 지정되지 않았으므로 임계영역에 대해 마구잡이 접근임. class mythread extends Thread{ public void run..
데코레이터 패턴 보호되어 있는 글입니다.
RandomAcessFile RandomAccessFile c의 fopen같은 느낌 읽고쓰기 전부 가능 RandomAccessFile rf = new RandomAccessFile(“rf.txt”,”rw”); rf.writeInt(1); System.out.println(rf.getFilePointer()); 하면 Int 4바이트 이므로 4위치로 이동되었음. rf.writeDouble(3.14); rf.writeUTF(“안녕”); rf.seek(0); 파일 포인터가 가장 끝으로 이동되어 있으므로 읽기 위에서 첫위치로 지정. int i = rf.readInt(); double d = rf.readDouble(); String s = rf.readUTF(); 각각 변수에 들어옴
직렬화 직렬화 인스턴스 상태를 그대로 저장 or 네트워크로 전송 후에 복원 직렬화 사용을 위해 마크인터페이스 해야 함 implements Serializable 이를테면 파일에 한글자씩 혹은 문자열로 정보를 저장시키는 것이 아니고 인스턴스 자체를 파일에 저장하였다가 인스턴스 채로 뽑아오는 작업 class Person implements Serializable{ String name; Person(String s) { this.name = s; } } Person lee = new Person(“김유신”); Person kim = new Person(“강감찬”); FileOutputStream fos =new FileOutputStream(“serial.dat”); 한뒤에 바로 Object를 쓸수는 없으므로 보조..
2112. [모의 SW 역량테스트] 보호 필름 출처 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5V1SYKAaUDFAWu 역대급 레전드 문제.... 구현도 구현인데 그보다 시간줄이기가 가장 힘들었다. DFS에서 가장 핵심은 재귀하면서 재귀로 또 나아가지 않아도 될 조건들을 찾아서 해당 조건에서 진행을 무시하도록 하는 것인데 ,,, 여러 아이디어가 있다. 검사 함수를 하드코딩으로 하는 것, 그리고 필요없는 count에 대한 무시, 검사시에 끝까지 진행하기 전에 탈출 하기. 등등 그리고 DFS에서 나는 카운트를 인자로 넘겨서 그 카운트부터 인덱스가 진행되게 했는데 같은 카운트에 대해 다른 인덱스가 존재 할 수 있고 이를 통해 더 빨리 결과값을 찾아 낼 수 ..
FileInputStream && FileOutputStream FileInputStream FileOutputStream 파일에 한 바이트씩 자료 읽고 쓰는데 사용. 입력스트림은 파일 없을 때 예외 출력스트림은 파일 없을 때 생성 & 출력 try{ FileInputStream fls = new FileInputStream("input.txt'); int i; //파일 끝에서 -1 출력 while( (i = fls.read()) != -1){ System.out.println((char)i); } } catch (Exception e) { System.out.println(e); }finally{ try{ fls.cloes(); } catch(Exception e) { System.out.println(e); } } try{ FileInputStream fls = n..
입출력 스트림 입출력 스트림 다양한 입출력 장치에서 독립적인 입출력 방식 제공 기존의 자료 계산을 위한 스트림과 다름 기반 스트림 : 읽고 쓰는 기능을 하는 스트림 보조 스트림 : 기반 스트림의 추가적인 기능 제공 모든 입출력은 예외처리 해야함. try{ int i = System.in.read(); System.out.println(i); System.out.println((char)i); a를 입력시에 97 a 출력 while( (i = System.in.read()) != '끝') { System.out.println((char)i); } 하면 무한 반복되는데 끝이 2바이트 이므로 read()는 1바이트만 읽기 때문에 무한 반복됨. InputStreamReader isr = new InputStreamReader..
Throws throws는 예외가 발생한 메소드에서 예외처리를 하지 않고 이 메소드가 호출된 곳에서 예외처리를 함. class Test { 파일 open 코드 //파일이 없는 예외 클래스 find 코드 //클래스가 없는 예외 } 여기서 바로 예외처리를 할 수 도 있지만, public class Main { class Test throws 파일예외,클래스 예외 { 파일 open 코드 //파일이 없는 예외 클래스 find 코드 //클래스가 없는 예외 위 두 예외는 반드시 처리 해줘야함 } public static void main(String[] args) { Test test = new Test(); //여기서 Test의 예외들에 대한 try catch } } 이렇게 사용하는 쪽에서 해 줄 수도 있음.