Java (34) 썸네일형 리스트형 자바의 신 ch1 & ch2 cmd를 사용해서 자바를 실행해보았다. javac을 사용하면 java 파일을 컴파일하여 java 파일과 이름이 동일한 class 파일을 만들어준다. 그 후 java class파일명을 입력하면, 내가 입력했던 내용들이 실행된다. 이클립스나 인텔리제이를 사용할 땐 매우 편리했는데, acroedit과 cmd를 사용해서 하니 매우 불편했다. acroedit엔 자동완성 기능이 없었고, cmd를 사용하니 내가 java파일의 내용을 변경할 때마다 javac을 사용해서 class파일을 업데이트 해야해서 엄청 귀찮았다. LinkedList import java.util.*; public class bucky { public static void main(String[] args) { String[] things = {"apples", "noobs", "eggs", "bacon", "goATS"}; List list1 = new LinkedList(); for(String thing : things) { list1.add(thing); } String[] things2 = {"sausage", "bacon", "goats", "harrypotter"}; List list2 = new LinkedList(); for(String thing : things2) { list2.add(thing); } list1.addAll(list2); list.. ArrayList import java.util.*; public class bucky { public static void main(String[] args) { String [] things = {"eggs", "lasers", "hats", "pie"}; List list1 = new ArrayList(); //add array items to list for(String thing : things) { list1.add(thing); } for(int i=0;i 자바의 신 ch.28 네트워크 1. TCP와 UDP의 가장 큰 차이는 데이터를 반드시 받아야 하는지, 받지 않아도 되는지 여부가 다르다. TCP는 반드시 수신하는 쪽에서 데이터를 받아야하며, UDP는 데이터를 받지 않더라도 해당 통신은 끝난다. 따라서, UDP가 TCP 보다 가벼운 통신이 가능하다. 2. 통신시 Port가 지정되지 않는 것은 주소를 알려줄 때 아파트 이름이나 동네 이름만 알려주는 것과 같다. Port는 이와 같이 서버 내에서 여러가지 프로그램에서 서로 다른 데이터를 처리해 주기 위해서 사용한다. 3. ServerSocket 클래스는 TCP로 데이터를 통신하기 위해서 사용된다. 4. ServerSocket 클래스의 accept() 메소드는 데이터를 받아 전달해 줄 Socket 객체를 생성하기 위해서 사용된다. 만약 다른.. 자바의 신 ch.27 NIO 1. java.io 패키지에 있는 Serializable 인터페이스는 선언되어 있는 메소드가 없다. 클래스를 파일에 읽거나 쓸 수 있도록 하거나, 다른 서버로 보내거나 받을 수 있도록 하려면 반드시 이 인터페이스를 구현(implements) 해야만 한다. 2. serialVersionUID 라는 변수는 지정하지 않을 경우 컴파일러에서 자동으로 생성해준다. 저장되거나 전송되는 클래스의 버전을 관리해 주기 때문에 이 값이 다르면 다른 클래스로 인식된다. 따라서, 클래스가 변경되었을 경우에는 이 값을 변경해 주는 것이 좋다. 3. 객체를 저장할 때에는 FileOutputStream 클래스를, 읽을 때에는 FileInputStream 클래스를 사용한다. 4. transient 로 선언된 변수는 Serializa.. Recursion 재귀함수(Factorial) public class bucky { public static void main(String[] args) { System.out.println(bucky.fact(8l)); } // Recursion public static long fact(long n) { if(n 1){ // fac *= n; // n--; // } // return fac; else return n * fact(n-1); // n =5 // 5 * f(4) //f(4) = 4* f(3) //f(3) = 3 * f(2) //f(2) = 2* f(1) //f(1) = 1 // 5 * 4 * 3 * 2 * 1 } } 자바의 신 ch.26 i/o 1. I/O는 Input과 Output을 의미한다. 2. java.io 패키지의 File 클래스는 파일과 경로(path)를 나타낼 수 있다. 3. File 클래스에 선언되어 있는 separator 상수는 현재 JVM이 사용중인 OS의 경로 구분자를 의미한다. 4. mkdir() 메소드는 현재 존재하는 경로의 하위 폴더만 생성 가능하며, mkdirs() 메소드는 지정된 경로에 존재하지 않는 모든 폴더를 생성한다. 5. 두 메소드 모두 현재 디렉터리의 하위에 있는 목록을 나타내는데, list() 메소드는 String[] 타입으로, listFiles() 메소드는 File[] 타입으로 리턴한다. 6. 두 Filter 인터페이스는 모두 넘어온 File과 관련된 정보를 이용하여 파일을 필터링할 목적으로 사용된다. .. 자바의 신 ch.25 Thread 1. Process와 Thread의 가장 큰 차이는 사용하는 자원의 차이다. Process하나가 실행하기 위해서는 많은 메모리를 필요로 하지만, Thread는 상대적으로 적은 메모리를 필요로한다. 일반적인 프로그램은 Process하나에 하나 이상의 Thread가 수행된다. 2. 쓰레드를 구현하기 위해서 java.lang.Runnable 인터페이스를 구현하면 된다. 3. Runnable 인터페이스에는 public void run() 메소드만이 선언되어 있다. 4. 만약 별도로 확장하는 클래스가 없어 확장이 가능하다면, java.lang.Thread 클래스를 확장하여 사용해도 된다. 5. 쓰레드가 시작되는 메소드는 run() 메소드이다. 6. 쓰레드를 시작하려면 run() 메소드가 아닌 start() 메소드.. 이전 1 2 3 4 5 다음