본문 바로가기

이것이자바다

(10)
[이것이 자바다] 18.7.5 스레드 병렬처리 스레드 병렬처리 블로킹 (대기 상태) 가 되는 메소드 ServerSocket의 accept( ) Socket 생성자 또는 connect( ) Socket의 read( ), write( ) 병렬처리의 필요성 스레드가 블로킹되면 다른 작업을 수행하지 못한다. ⇒ 입출력 할 동안 다른 클라이언트의 연결 요청을 수락하지 못한다. ⇒ 입출력 할 동안 다른 클라이언트의 입출력을 하지 못한다. UI생성/변경 스레드에서 블로킹 메소드를 호출하지 않도록 한다. ⇒ UI 생성 및 변경이 안 되고 이벤트 처리가 안 된다. Uploaded by Notion2Tistory v1.1.0 Notion2Tistory boltlessengineer.github.io 이것이 자바다 (신용권의 Java 프로그래밍 정복) 이것이 자바다 『..
[이것이 자바다] 18.4 파일 입출력, Java Swing으로 채팅 구현 18.4.1 File 클래스 File 클래스를 이용한 파일 및 디렉토리 정보 출력 package k_io; import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.text.SimpleDateFormat; public class FileExam { public static void main(String[] args) throws URISyntaxException, IOException { File dir = new File("c:/Temp/Dir"); File file1 = new File("c:/Temp/file1.txt"); File file2 = ..
[이것이 자바다] 18 IO 기반 입출력 및 네트워킹 18.1 IO 패키지 소개 Stream : 자바에서 데이터는 스트림을 통해 입출력. 단일 방향으로 연속적으로 흘러가는 것을 말함. 데이터는 출발지에서 나와 도착지로 들어간다는 개념 18.2 입력 스트림과 출력 스트림 입력 스트림 (InputStream) : 프로그램이 데이터를 입력받을 때 (키보드, 파일, 네트워크상의 프로그램) 출력 스트림 (OutputStream) : 프로그램이 데이터를 내보낼 때 (모니터, 파일, 네트워크상의 프로그램) java.io 패키지의 주요 클래스 File : 파일 시스템의 파일 정보를 얻기 위한 클래스 Console : 콘솔로 문자출력 InputStream/OutputStream : 바이트단위 입출력을 위한 최상위 입출력 스트림 클래스 FileInputStream/FileO..
[이것이 자바다] 15 컬렉션 프레임워크 - 기타 컬렉션 기타컬렉션 1. Properties 2. TreeSet 3. TreeMap 4. Stack 5. Queue Properties reader 문자단위로 데이터를 처리하는 stream의 일종 inputStream : 바이트 단위로 데이터 읽어들임 Reader : 캐릭터 단위로 데이터 읽어들임 (한글을 바이트 단위로 처리하면 깨질 가능성 있음) ⇒ reader로 작업 property 값에 영어만 있을 경우 FileInputStream 으로도 가능 부등호 연산자를 기준으로 왼쪽이 key, 오른쪽 value 결과화면 TreeSet (String tokenizer, ascending, descending) 필드에 넣고 세가지 메소드에서 사용할 scores TreeSet process( ) StringTokenize..
[이것이 자바다] 15 컬렉션 프레임워크 * 본 포스팅은 제가 국비지원교육을 받으며 노션에 정리한 내용을 옮겨놓은 것입니다. 발전을 위한 피드백과 지적은 언제나 환영합니다. 5.1 컬렉션 프레임워크 소개 15.2 List 컬렉션 15.3.1 HashSet 15.4 Map 컬렉션 Map 전체값 조회하기 15.4.2 HashTable // 길이 10인 배열 생성 Product array[] = new Product[100]; // 객체 추가 array[0] = new Product("Model1", "red"); array[1] = new Product("Model2", "blue"); // 객체 검색 Product model1 = array[0]; // HashCode 출력됨 Product model2 = array[1]; // 객체 삭제 Pro..
[이것이 자바다] 11 기본 API 클래스 (2) getProperty, Collection * 본 포스팅은 제가 국비지원교육을 받으며 노션에 정리한 내용을 옮겨놓은 것입니다. 발전을 위한 피드백과 지적은 언제나 환영합니다. (GUI는 Java Swing으로 구현) New - other - JFrame Class명 : GetPropertyExam "프레임을 만들어서 화면에 보이게 해라" Runnable ( ) : 인터페이스 run( ) : Runnable의 추상메소드 (멀티스레드를 실행하기 위해서 필요함) 멀티스레드는 반드시 있어야되는건 아니지만 안정성 측면에서 메인스레드 하나보다 멀티스레드가 더 좋다 EmptyBorder 바꿔보기 여러가지 스타일 해보기 (별로 티는 안남) 북쪽에 JPanel 붙이고 버튼 삽입 ScrollPane 붙이고 TextArea 넣기 공간의 여백을 주기 위해 20, 20..
[이것이 자바다] 10 예외 처리 (Exception) * 본 포스팅은 제가 국비지원교육을 받으며 노션에 정리한 내용을 옮겨놓은 것입니다. 발전을 위한 피드백과 지적은 언제나 환영합니다. NullPointerException null과 ""는 다르다! null은 가르키고 있는 주소값이 아예 없는 것. String 이라는 객체가 만들어지기 전의 상태 null값으로 핸들링 하려고 하니 nullpointexception 발생 널값이 아닌 빈 공백은 오류가 생기지 않는다. toString : 데이터가 가지고 있는 문자를 가져오는 메소드. ArrayIndexOutofBoundsException (첨자오류) 배열이 0,1,2 까지만 있는데 3을 찍어서 오류 i≤3에서 에러 발생 변수 i가 3일때 에러가 발생했다 NumberFormatException 123a는 숫자로 ..
[이것이 자바다] 08 인터페이스 * 본 포스팅은 제가 국비지원교육을 받으며 노션에 정리한 내용을 옮겨놓은 것입니다. 발전을 위한 피드백과 지적은 언제나 환영합니다. 8.1 인터페이스의 역할 ~ 8.3 인터페이스 구현 (p. 344 ~ 3) 인터페이스는 개발코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해서 사용 하나의 객체가 아니라 여러 객체들과 사용이 가능 상수필드 (Constant Field) : 인터페이스에서 필드 선언은 반드시 상수 (초기값 대입해야됨) 추상 메소드 (Abstract Method) : 실제 실행부는 객체(구현 객체)가 가지고 있고 객체가 가지고 있는 메소드를 설명한 것 (매개값과 리턴타입) public interface RemoteControl..
[이것이 자바다] 07 상속 (인터페이스 포함) * 본 포스팅은 제가 국비지원교육을 받으며 노션에 정리한 내용을 옮겨놓은 것입니다. 발전을 위한 피드백과 지적은 언제나 환영합니다. 7.1 상속 개념 상속받으면 부모클래스가 갖는 필드나 메소드를 자식클래스에서도 쓸 수 있다. (부모클래스에서 private 접근 제한을 갖는 필드나 메소드는 제외) 7.2 클래스 상속 class 자식클래스 extends 부모클래스 { //필드 //생성자 //메소드 } 다른 언어와 달리 자바는 다중 상속을 허용하지 않음 (한개의 클래스만 상속받을 수 있다) 👉 상속하는 방법 extends : 상속(확장) - 부모 클래스는 단 1개만 허용(단일상속) - 부모 인터페이스는 한개 이상 implements : 구현(미완성인 기능을 완성) - 1개 이상의 부모 클래스를 허용 1) 부모..
[이것이 자바다] 06 클래스 (Class), 객체지향 * 본 포스팅은 제가 국비지원교육을 받으며 노션에 정리한 내용을 옮겨놓은 것입니다. 발전을 위한 피드백과 지적은 언제나 환영합니다. 6.1 객체지향 프로그래밍 6.1.1 객체란? 객체 → 사물 객체지향 → 사물을 만드는 방법들 ex) 사람 이름, 나이 (속성) → 필드 웃다, 걷다 (동작) → 메소드 자동차 색상, 모델명 (속성) → 필드 달린다, 멈춘다 (동작) → 메소드 6.1.2 객체의 상호작용 객체들은 각각 독립적으로 존재하고, 다른 객체와 서로 상호작용. 이 상호작용 수단이 메소드 객체가 다른 객체의 기능을 이용하고 싶을 때에는? 메소드 호출 int result = Calculator.add(10, 20); // Calculator 클래스의 add 메소드 호출 (매개변수 두개) -> 변수 res..