Java
-
Java - Stop, InterruptJava 2018. 1. 31. 12:07
public class StopFlag extends Thread { boolean stop = false; @Override public void run() { while(!stop) { System.out.println("Thread Running..."); } System.out.println("종료"); } } public class Main { public static void main(String[] args) throws InterruptedException { StopFlag stop = new StopFlag(); stop.start(); Thread.sleep(1000); stop.stop = true; } } // InterruptedException을 발동 ..
-
Java - Wait, NotifyJava 2018. 1. 31. 10:38
public class CommonData { private String data; //synchronized 는 차후 다수의 스레드가 접근할 여지가 있는지 확인 해 볼것 public synchronized void getData() { try { //1. 데이터가 있는지 확인 if(data != null) { //2. 있으면 가져오고 없으면 가져오지 않는다. System.out.println("가져 온 값 : "+data); data = null;//가져온 후 값을 비워 준다. } //3. 상대를 깨우고 나는 쉰다. notify(); wait(); } catch (InterruptedException e) { e.printStackTrace(); } } public synchronized void se..
-
Java - ThreadJava 2018. 1. 30. 14:57
// Thread는 어떤 program을 실행 하게 해주는 원동력이다// 대표적으로 main(String[] args)로 실행 한다. // process는 1개 이상의 thread로 구성되어 있다.// process는 thread로 구성 된다.// 메모리 공유 부분에서 process는 메모리 공유가 안되지만,// Thread는 메모리 공유가 된다. // main method는 main thread를 생성 한다.// 처리가 버거우면 work thread를 생성할 수 있다.// 이것을 multi thread라 한다. // Runnable Interface, Thread Class 상속으로 생성할 수 있다. public class Main { public static void main(..
-
Java - 정규표현식Java 2018. 1. 26. 01:21
문자열이 정해져 있는 형식(정규 표현식)으로 구성되어 있는지 검증해야 하는 경우가 있다. 예를 들어 이메일 등이다. 그것을 검증 하는 방법이 있다. 정규 표현식 작성 방법 기호 설명 [ ] 한 개의 문자 [abc] a,b,c중 하나의 문자 [^abc] a,b,c 이외의 하나의 문자 [a-zA-Z] a~z, A~Z중 하나의 문자 \d 한 개의 숫자,[0-9]와 동일 \s 공백 \w 한 개의 알파벳 또는 한 개의 숫자, [a-zA-Z_0-9]와 동일 ? 없음 또는 한 개 * 없음 또는 한 개 이상 + 한 개 이상 {n} 정확히 n개 {n,} 최소한 n개 {n, m} n개에서부터 m개까지 ( ) 그룹핑 ^ 시작 $ 끝 이 표를 가지고 실습을 해보자 다음은 02-123-1234 또는 010-1234-5678과 ..
-
Java - Stack, QueueJava 2018. 1. 25. 13:12
// Stack - LIFO// 마지막에 들어온 최신 것을 이용할 때 유용 // Queue - FIFO// 순차적으로 작업 처리할 때 유용 import java.util.Stack; public class TowelBox { public static void main(String[] args) { // Stack -> LIFO Stack box = new Stack(); // push box.push(new Towel("red")); box.push(new Towel("orange")); box.push(new Towel("yellow")); box.push(new Towel("green")); box.push(new Towel("blue")); box.push(new Towel("na..
-
Java - MapJava 2018. 1. 25. 12:19
// HashMap은 Map Interface로 구현한 대표적 Map Collection이다// Key와 Value Type은 Class 및 Interface만 가능하다(int -> Integer)// Collection Interface를 구현하지 않기때문에 기존과는 조금 다른 method를// 사용한다. Key: value store는 순서가 없다 Type은 Key,Value 2개를 쓴다 // 단일 값을 검색 할 경우 Key를 통해 Value를 찾는다// 모든 값을 가져 올 경우는 두가지 방법을 사용 한다.// 1. 모든 Key를 Set으로 가져와 key를 Itrator하는 방법// 2. Map(key,value)을 Set으로 가져와 key/value 단위로 iterator하는 방법 /..
-
Java - CollectionJava 2018. 1. 25. 10:42
// 같은 Interface라 메소드는 비슷하다. // Array List는 index로 객체를 관리한다는 점에서 Array와 유사하다// 차이점은 Array와 달리 index가 유연하다는 점이다// Array List는 객체 삭제/추가 시 inedx가 1씩 당겨지거나 미뤄지게 된다// 때문에 빈번한 객체의 추가, 삭제가 일어날 때 다소 무리가 된다.// Collection Framework에서 가장 많이 쓰인다.// ArrayList 사용, Generic 가능// 선언시 크기 지정을 할 수 있지만 안해도 상관없다. ex) ArrayList list = new ArrayList(3); // 크기 지정 ArrayList list = new ArrayLis..
-
Java - Generic MethodJava 2018. 1. 24. 10:47
// Generic은 Type의 자유 public class Box { private T t; public T getT() { return t; } public void setT(T t) { this.t = t; } } public class Gmethod { // 매개변수 사용 public void method01(T t) { System.out.println("입력 값 : "+t); } // 매개변수, 반환타입 사용 public T method2(T t) { return t; } // 활용 public Box method3(T t){ // 반환 값이 Box 타입이기 때문에 메소드 타입에 Box 사용 Box box = new Box(); box.setT(t); retu..