Language/Java 184

TCP Socket프로그래밍

import java.net.*; import java.io.*; import java.util.*; import java.text.SimpleDateFormat; public class Ex16_6 { public static void main(String[] args) { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(7777); // 서버소켓을 생성하여 7777번 포트와 결합시킨다. System.out.println(getTime()+"서버가 준비되었습니다."); // getTime 현재시간 } catch (IOException e) { e.printStackTrace(); } while (true) { // 무한반복..

Language/Java 2021.04.05

TCP UDP

TCP 연결기반 연결 후 통신. 정확성을 목표, 복잡, 느림 다운로드, 송금, 파일전송, 채팅 UDP 비 연결기반 연결없이 통신 (소포) : 니가 받든말든 상관없음, 집앞에 두고감 빠름을 목표, 단순, 빠름 스트리밍 3WayHandshake DDos 공격 방식 : 그림과 같이 #1을 하고 #2가 오는데 클라이언트에서 #3을 전송하지 않으면 서버에서는 #3을 받지못하면 대기해야하는데, 그게 10만개, 100만개가 연결되면 서버는 먹통이 된다. 한날 한시에 100만대군 인해전술 총 공격.

Language/Java 2021.04.05

교착상태

sleep() 처럼 쓰레드를 멈추게 만드는 suspend() : 쓰레드를 멈추게 만듬 resume() : 다시 실행대기 상태로 만듬 stop() : 쓰레드를 멈추게 만듬 suspend, stop : 는 교착상태를 만들기 때문에 사용을 권장하지 않는다. public class Ex13_10 { public static void main(String[] args) { RunImplEx10 r = new RunImplEx10(); Thread th1 = new Thread(r, "*"); Thread th2 = new Thread(r, "**"); Thread th3 = new Thread(r, "***"); th1.start(); th2.start(); th3.start(); try { Thread.slee..

Language/Java 2021.04.02

interrupt

void interrupt() : Thread의 interrupted 상태를 false에서 true로 변경 boolean interrupted() : Thread interrupted 상태를 반환 static boolean interrupted():Thread interrupted 상태를 반환후,false로변경 import javax.swing.JOptionPane; public class Ex13_9 { public static void main(String[] args) { ThreadEx9_1 th1 = new ThreadEx9_1(); th1.start(); String input = JOptionPane.showInputDialog("아무값이나 입력하세요"); System.out.println(..

Language/Java 2021.04.02

Thread

Thread 동시실행 // Thread 는 동시 실행하는것. // 여기서의 Thread는 총 3개가 돌아가고 있다. // public class Ex13_1 { public static void main(String[] args) { ThreadEx1_1 t1 = new ThreadEx1_1(); Runnable r = new ThreadEx1_1(); Thread t2 = new Thread(r); // Runnable을 만들고 Thread를 실행시켜달라고 하는 것. // 여기까지가 쓰레드를 만든것. System.out.println("Thread 시작점"); t1.start(); // 실행방법 t2.start(); // 실행방법 이걸 입력해줘야 실행된다. // 시작을 돌려놓고 메인은 지 할거 하러감 ..

Language/Java 2021.04.01

네트워크 3

import java.io.*; // *처리로 모든걸 처리할 수 있도로 만들었다. import java.net.*; public class Test003 { public static void main(String[] args) { ServerSocket aServerSocket; Socket aClientSocket; System.out.println("서버를 시작합니다..."); try { aServerSocket = new ServerSocket(2000); System.out.println("클라이언트 접속을 기다립니다..."); aClientSocket = aServerSocket.accept(); System.out.println("클라이언트가 접속하였습니다."); System.out.print..

Language/Java 2021.04.01

네트워크2

import java.io.*; // *처리로 모든걸 처리할 수 있도로 만들었다. import java.net.*; public class Test002 { public static void main(String[] args) { ServerSocket aServerSocket; Socket aClientSocket; System.out.println("서버를 시작합니다..."); try { aServerSocket = new ServerSocket(2000); System.out.println("클라이언트 접속을 기다립니다..."); aClientSocket = aServerSocket.accept(); System.out.println("클라이언트가 접속하였습니다."); System.out.print..

Language/Java 2021.04.01

네트워크

import java.io.IOException; import java.net.*; //ServerSocket // 서버(고정)와 클라이언트(유동)를 합쳐서 소켓으로 부르고 // 서버쪽을 서버 소켓이라고 하고 클라이언트쪽을 클라이언트 소켓이라고 한다. // NextLine 도 블로킹 public class Test001 { public static void main(String[] args) { ServerSocket aServerSocket; System.out.println("서버를 시작합니다..."); try { aServerSocket = new ServerSocket(23); // 1024 < 포트번호 < 65536 System.out.println("클라이언트 접속을 기다립니다..."); So..

Language/Java 2021.04.01

열거형

여러 상수를 선언해야 할 때, 편리하게 선언할 수 있는 방법. 선언 : enum Springa { } 시작. public class Test006 { //???? class TEST { // 일반적인 상수 static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; } // 하드코딩 enum SpringA { // enum 열거형 타입 스타일 상수 : enum SpringA 으로 시작 CLOVER, HEART, DIAMOND, SPADE } public static void main(String[] args) { /*System.out.println("["+TE..

Language/Java 2021.03.31

Set set을 이용한 로또 번호만들기

여기서는 정렬방식을 따로 설정 해야한다. import java.util.*; public class Ex11_9 { public static void main(String[] args) { Object[] objArr = {"1", new Integer(1),"2","2","3","3","4","4","4" }; // 결과 창에서 1이 두번 출력되는데, 하나는 String 1, 나머지는 Integer 1 이라서 다른 객체다. Set set = new HashSet(); // HashSet(); 이 있어서 중복 값은 저장되지 않는다. for (int i = 0; i < objArr.length; i++) { set.add(objArr[i]); // HashSet에 objArr의 요소들을 저장한다. } Sy..

Language/Java 2021.03.31

알고리즘

medium.com/quantum-ant/%ED%8A%B8%EB%A6%AC-tree-cec69cfddb14 트리(Tree) 이번 학기 알고리즘 수업 때 배운 내용을 정리하기 위해 포스팅을 준비했다. 기존에 C언어로 쉽게 풀어쓴 자료구조로 공부하여 정리된 포스팅이 있으나, 필자는 해당 책(개정2판)과 알고리즘(로 medium.com blog.hexabrain.net/246 알고리즘 2-2강. 탐색 알고리즘 - 이진 탐색(Binary Search) [탐색 알고리즘 강좌] 데이터를 찾아보자! 이진 탐색(Binary Search) 이번에는 순차 탐색에 이어 이진 탐색(Binary Search)에 대해 알아보도록 할텐데, 이 '이진 탐색(Binary Search)'이 왜 이진인지 짐작이 가 blog.hexabra..

Language/Java 2021.03.31

HashSet 예제1

Set set = new HashSet(); 을 만드는 이유 위의 ojbArr은 그냥 단순 배열일 뿐이고 그걸 hashset으로 중복없이 값을 저장하는것 for문은 그냥 출력문. import java.util.*; public class Ex11_9 { public static void main(String[] args) { Object[] objArr = {"1", new Integer(1),"2","2","3","3","4","4","4" }; // 결과 창에서 1이 두번 출력되는데, 하나는 String 1, 나머지는 Integer 1 이라서 다른 객체다. Set set = new HashSet(); // HashSet(); 이 있어서 중복 값은 저장되지 않는다. for (int i = 0; i < ..

Language/Java 2021.03.31

HashSet

HashSet은 Set인터페이스를 구현한 가장 대표적인 컬렉션, HashSet은 중복된 요소를 저장하지 않음. hash 자체가 중복 요소를 갖지 않는다. 중복 값은 false를 출력한다. import java.util.HashSet; public class Test004 { public static void main(String[] args) { HashSet aHashSet = new HashSet(); System.out.println(aHashSet.size()); System.out.println(aHashSet.add(1)); // boolean 참 거짓. ture System.out.println(aHashSet.add(2)); System.out.println(aHashSet.add(3));..

Language/Java 2021.03.31

HashMap 예제1

import java.util.*; // HashMap // 사과 : Apple 1 : 1 String : String // 사랑 : Love // 아기 : Baby /////////////////////// // 면허증 번호 String : Integer // 부산 : 12 // 서울 : 11 // 경기 : 13 // 서울 : 11 // 서울 : 11 public class Test003 { public static void main(String[] args) { HashMap aHashMap = new HashMap(); aHashMap.put("사과", "Apple"); aHashMap.put("사랑", "Love"); aHashMap.put("아기", "Baby"); aHashMap.put("진로..

Language/Java 2021.03.31

HashMap

은 제너릭 import java.util.*; // HashMap // 2개의 값으로 이뤄짐 (key ,data)앞의 값은 키, 뒤의 값은 데이터 // 키는 중복될 수 없다 (중복으로 삽입하면 이전 값은 삭제) // 장점 : 삽입/ 삭제가 매우 빠름 | 검색은 더욱 빠름 // 사과 : Apple 1 : 1 String : String // 사랑 : Love // 아기 : Baby /////////////////////// // 면허증 번호 String : Integer // 부산 : 12 // 서울 : 11 // 경기 : 13 public class Test003 { public static void main(String[] args) { HashMap aHashMap = new HashMap(); aH..

Language/Java 2021.03.31

aVector의 객체 추가, 변경, 삭제

import java.util.Vector; public class Test002 { /* * Vector의 단점 * Vector는 항상 동기화되는 장점이자 단점을 가진다 * 스레드가 1개일 때도 동기화를 하기 때문에 어레이리스트보다 성능이 떨어진다. * 어레이리스트는 기본적인 기능은 Vector와 동일 * 자동 동기화 기능이 빠져있고, 동기화 옵션이 조네 * Vector에 비해 속도가 더 빠르기 때문에 Vector비해 많이 쓴다. */ public static void main(String[] args) { Vector aVector = new Vector(); // 최대는 5개지만 초과하면 5개씩 늘어난다. aVector.add(1); aVector.add(5); aVector.add(200); aV..

Language/Java 2021.03.31

숫자의 기본정렬과 역순정렬

import java.util.*; public class Ex11_8 { public static void main(String[] args) { Integer[] arr = {30, 50, 10, 40, 20}; Arrays.sort(arr); // 기본정렬 System.out.println(Arrays.toString(arr)); Arrays.sort(arr, new DescComp()); // 역순정렬 System.out.println(Arrays.toString(arr)); } } //class Sort_Test implements Comparator {} 이렇게 적고나면 자동으로 오버라이드 시켜주는 빨간줄이 생성된다. class DescComp implements Comparator { pub..

Language/Java 2021.03.31

Vector

import java.util.Vector; public class Test002 { /* * Vector의 단점 * Vector는 항상 동기화되는 장점이자 단점을 가진다 * 스레드가 1개일 때도 동기화를 하기 때문에 어레이리스트보다 성능이 떨어진다. * 어레이리스트는 기본적인 기능은 Vector와 동일 * 자동 동기화 기능이 빠져있고, 동기화 옵션이 조네 * Vector에 비해 속도가 더 빠르기 때문에 Vector비해 많이 쓴다. */ public static void main(String[] args) { Vector aVector = new Vector(); // 최대는 5개지만 초과하면 5개씩 늘어난다. //aVector.add(1); System.out.println(aVector.capacit..

Language/Java 2021.03.31

Comparator와 Comparable

// Comparable : 기본 정렬기준을 구현하는데 사용 // Comparator : 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용. // compareTo : 비교 한다는 목적으로 고안됨. 비교 객체의 값이 같으면 0, 작으면 음수, 크면 양수 // a 문자열과 b 문자열을 비교할 때 첫번째자리에서 비교 , a열의 첫 글자 - b 열의 첫 글자 = ? // if 첫글자가 같다면 두번째 자리를 비교, 같다? 세번째 ....이런식. // 유니코드의 순서가 작은 값에서부터 큰 값으로 정렬됨. // 배열을 기본정렬 : 숫자가 작은것 부터 순서대로 정렬됨. : A 의 아스키 코드가 a의 아스키 코드보다 작다. import java.util.*; public class Ex11_7 { public ..

Language/Java 2021.03.31

컬렉션의 정리 , A와a의 순서 비교법 기본

import java.util.Comparator; class BookOne implements Comparator { private String name; private String autho; private String pub; public String getName() { return name; } public void setName(String name) { this.name = name; } // private 이기 때문에 get set을 호출. name만 생성했기 때문에 name만 출력된다. BookOne (String name, String autho, String pub) { this. name = name; this. autho = autho; this. pub = pub; } @Over..

Language/Java 2021.03.31