본문 바로가기

JAVA

(12)
[이것이 자바다] 18.7.5 스레드 병렬처리 스레드 병렬처리 블로킹 (대기 상태) 가 되는 메소드 ServerSocket의 accept( ) Socket 생성자 또는 connect( ) Socket의 read( ), write( ) 병렬처리의 필요성 스레드가 블로킹되면 다른 작업을 수행하지 못한다. ⇒ 입출력 할 동안 다른 클라이언트의 연결 요청을 수락하지 못한다. ⇒ 입출력 할 동안 다른 클라이언트의 입출력을 하지 못한다. UI생성/변경 스레드에서 블로킹 메소드를 호출하지 않도록 한다. ⇒ UI 생성 및 변경이 안 되고 이벤트 처리가 안 된다. Uploaded by Notion2Tistory v1.1.0 Notion2Tistory boltlessengineer.github.io 이것이 자바다 (신용권의 Java 프로그래밍 정복) 이것이 자바다 『..
[이것이 자바다] 18. 6 네트워크 기초, Java Swing으로 채팅 구현 (2) Network Main Frame : terminal 의 입력값 저장, 연산하여 terminal에 다시 전달 Terminal (dummy) : 저장기능 X, 입출력만 가능 ⇒ PC 활성화되면서 (입출력, 저장, 연산 가능) Terminal을 개인 PC로 대체 ⇒ 연산을 PC에서도 처리하면서 Main Frame 역할 축소→ Server라는 개념으로, dummy Terminal → Client 개념으로. IP Port IP - 외부 ip : 전세계에서 단 한개 (외부통신 가능) 내부 ip : 허브 또는 공유기에서 배정한 ip (외부통신 불가) Port : 서비스의 종류나 프로토콜(통신규약)에 따라 서로 다른 번호를 배정한다. (정수형) subnet mask : 하나의 네트워크 망을 논리적으로 여러 개의 망으..
[이것이 자바다] 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..
[이것이 자바다] 11 기본 API 클래스 (1) 객체비교 compare, 오름차순까지 * 본 포스팅은 제가 국비지원교육을 받으며 노션에 정리한 내용을 옮겨놓은 것입니다. 발전을 위한 피드백과 지적은 언제나 환영합니다. 11.2 java.lang과 java.util 패키지 11.2.1 java.lang 패키지 Object System Class String StringBuffer, StringBuilder Math Wrapper (Byte, Short, Charater, Integer, Float, Long, Boolean, Double) 11.2.2 java.util 패키지 Arrays Calender Date Objects StringTokenizer Random 11.3 Object 클래스 11.3.1 객체 비교(equals()) 두 객체 비교하여 논리적으로 동등하면 true, 아니면..
[이것이 자바다] 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..