Arrays 함수

sort 배열을 오름차순으로 정렬 예) 1 2 3 4 5 6 7 String [] strArray  =  { "a" ,  "c" ,  "b" }; Arrays.sort(strArray); System . out . println (Arrays. toString (strArray));   int [] intArray  =  { 1 , 3 , 2 }; Arrays.sort(intArray); System . out . println (Arrays. toString (intArray)); 결과 1 2 [a, b, c] [ 1 ,  2 ,  3 ]    equals 두개의 배열이 같은지 비 교. 같으면 true, 다르면 false 리턴 예) 1 2 3 4 5 6 7 String [] strArray1  =  { "a" ,  "b" ,  "c" }; String [] strArray2  =  { "a" ,  "b" ,  "c" }; System . out . println (Arrays. equals (strArray1, strArray2));   String [] strArray3  =  { "a" ,  "b" ,  "c" }; String [] strArray4  =  { "a" ,  "b" ,  "d" }; System . out . println (Arrays. equals (strArray3, strArray4)); ...

Dequeue로 계산기 만들기

package com.lgcns.test.calculator; import java.util.ArrayDeque; import java.util.Deque; import java.util.Stack; import java.util.StringTokenizer; /**  * Calculator (30분 ~ 40분)  *  * 사칙연산 계산기 만들기  * 1*8+3+6+5/2*5-9 와 같이 사칙연산의 답을 구하는 문제  *  * *, /은 +, -보다 우선순위가 높다.  * 각 숫자는 한자리 자연수로 이루어지고   * 나누셈의 경우 소수점은 버리고(5/2=2)  * 0으로 나누는 경우는 없다고 가정한다.  *  * -----------  * Pseudocode  * -----------  * String 을 분해해서 1번 Deque 에 담는다. (순서를 보존해야 한다.)  * 보조 2번 Deque을 하나 준비한다.  *  * 1번 Deque에 대해 * / 연산을 수행한다.  * 연산은 항상 숫자 연산자 숫자 로 이루어 지므로 3개씩 꺼낸다.  * 1번 Deque이 1만 남을때 까지 looping {  * 3개를 꺼낸다. (pop)  * 2번째가 * 이거나 / 면 연산을 수행하고 다시 Deque 에 담는다. (push)  *  2번째가 * /이 아니라면 2번째 Deque 1,2를 담고 (add) 3은 Deque1에 담는다. (push)  * }  *  * 2번 Deque이 1만 남으때 까지 looping {  * 3개를 꺼낸다.  * 2번째가 + 이거나 -면  연산을 수행하고 다시 Deque 에 담는다.  * } ...

쓰레드와 sleep 메서드

쓰레드와 sleep 메서드 50밀리세컨드마다 쓰레드 이름을 출력하게 만들어 보자. 쓰레드와 sleep 메서드의 사용법을 배운다. Thread.sleep 메서드를 사용하고 예외처리를 해준다. ? public class   SleepThread extends Thread{      public SleepThread(String name){          setName(name);      }      public void run(){show();}      public void show(){          for ( int i= 0 ;i< 50 ;i++){              print();              try {                  Thread.sleep( 50 ); //50/1000 초              } catch (InterruptedException ite){}          }    ...

쓰레드 사용하기

쓰레드 사용하기 쓰레드(Thread) 두 개를 만들어 실행시켜 보자 두 가지 쓰레드 작성법을 배운다. 인터페이스 Runable을 구현하거나 쓰레드 클래스를 상속한다. ? public class   MyRun implements Runnable {      public void run(){          show();      }      public void show(){          for ( int i= 0 ;i< 100 ;i++){              System.out.print( "S" );          }      } } ? public class MyThread extends Thread {      public void run(){          for ( int i= 0 ;i< 100 ;i++){              System.out.print( "T" );          }      } } ...

Thread 간단하게 사용하기

이미지
간단한 Thread 사용 ? Runnable runnable = new Runnable() {      try {          String threadName = Thread.currentThread().getName();          [[처리 로직]]      } catch (InterruptedException e) {          e.printStackTrace();      } };   Thread thread = new Thread(runnable); thread.start(); Thread 주요 함수 정해진 수의 Thread만 사용하는 ThreadPool ? ExecutorService threadPool = Executors.newFixedThreadPool(          // CPU 코어의 수만큼 최대 스레드를 사용하는 스레드풀을 생성          Runtime.getRuntime().availableProcessors()          );   Future future = threadPool.submit( new Runnable() {      @Override      public ...

Echo Server/Multi Client

1. Echo Server ? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;   public class EchoServer implements Runnable {             private Socket socket;             public EchoServer(Socket socket) {          this .socket = socket;      }             @Override      public void run() {          PrintWriter out = null ;          BufferedReader in = null ;          try {   ...

Echo Server/Client

1. Echo Server ? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket;   public class EchoServer {        public static void main(String[] args) throws IOException {          int portNumber = 30000 ;            ServerSocket serverSocket = new ServerSocket(portNumber);          Socket socket = serverSocket.accept();          PrintWriter out = new PrintWriter(socket.getOutputStream(), true );          BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream()));            String echo;    ...

TCP/IP socket (간단한 server/client)

이미지
간단한 TCP/IP Server  종료 처리 하기 전까지 무한 반복하는 방식임 ? ServerSocket server = new ServerSocket([[서버 포트]]);   while ( true ) {      Socket socket = server.accept();        //----[ 데이터 받아서 처리하기 ]----------------------------------------        InputStream       inputStream       = socket.getInputStream();      InputStreamReader inputStreamReader = new InputStreamReader(inputStream);      BufferedReader    bufferedReader    = new BufferedReader(inputStreamReader);        String data   = "" ;      char [] chars  = new char [ 256 ];      int     length;      while ((length = bufferedReader.read(chars)) != - 1 ) {     ...