프로 그래 밍 지식 포인트 범례 - 2

http://tianya23.blog.51cto.com/1081650/591809
 
【 비고 】
windows 는 환경 변 수 를 설정 합 니 다. 예 를 들 어 jdk 를 1.7.0 버 전 으로 설정 합 니 다 (% path% 를 추가 해 야 합 니 다).
set path="D:\ProgramFiles\Java\jdk1.7.0\bin";%path%
 
1. 현재 프로 세 스 의 모든 스 레 드 가 져 오기

  
  
  
  
  1. public static String[] getThreadNames() { 
  2.         ThreadGroup group = Thread.currentThread().getThreadGroup(); 
  3.         ThreadGroup parent = null
  4.         while ((parent = group.getParent()) != null) { 
  5.             group = parent; 
  6.         } 
  7.         Thread[] threads = new Thread[group.activeCount()]; 
  8.         group.enumerate(threads); 
  9.         java.util.HashSet<String> set = new java.util.HashSet<String>(); 
  10.         for (int i = 0; i < threads.length; ++i) { 
  11.             if (threads[i] != null && threads[i].isAlive()) { 
  12.                 try { 
  13.                     set.add(threads[i].getThreadGroup().getName() + "," 
  14.                             + threads[i].getName() + "," 
  15.                             + threads[i].getPriority()); 
  16.                 } catch (Throwable e) { 
  17.                     e.printStackTrace(); 
  18.                 } 
  19.             } 
  20.         } 
  21.         String[] result = (String[]) set.toArray(new String[0]); 
  22.         java.util.Arrays.sort(result); 
  23.         return result; 
  24.     } 

 2. 자바 다 중 스 레 드 - 모든 하위 스 레 드 가 실 행 될 때 까지 주 스 레 드 를 기다 리 게 합 니 다.
참고:http://3ccoder.iteye.com/blog/581476
  • public class ImportThread extends Thread {  
  • private CountDownLatch threadsSignal;  
  • public ImportThread(CountDownLatch threadsSignal) {  
  • this.threadsSignal = threadsSignal;  
  • }  
  • @Override  
  • public void run() {  
  • System.out.println(Thread.currentThread().getName() + "시작...");  
  • //Do somethings  
  • threadsSignal. countDown (); / / 스 레 드 가 끝 날 때 계수기 1 감소  
  • System.out.println(Thread.currentThread().getName() + "끝.. 그리고 " + threadsSignal.getCount() + " 개 라인 ");  
  • }  
  • }  

  •  
     main:
  • CountDownLatch threadSignal = new CountDownLatch(threadNum);//countDown 초기 화  
  • for (int ii = 0; ii < threadNum; ii++) {/ / threadNum 스 레 드 열기  
  • final Iterator itt = it.get(ii);  
  • Thread t = new ImportThread(itt,sql,threadSignal);  
  • t.start();  
  • }  
  • threadSignal.await();//모든 하위 스 레 드 가 실 행 될 때 까지 기 다 립 니 다.  
  • System.out.println(Thread.currentThread().getName() + "끝."); / /인쇄 끝 표시  

  •  
    3. 생산자 소비자 문제
    
      
      
      
      
    1. public class ProducerTest { 
    2.     public static void main(String[] args) { 
    3.         Queue q = new Queue(); 
    4.         Producer t1 = new Producer(q); 
    5.         Consumer t2 = new Consumer(q); 
    6.         t1.start(); 
    7.         t2.start(); 
    8.     } 
    9.  
    10. class Producer extends Thread { 
    11.     Queue q; 
    12.  
    13.     public Producer(Queue q) { 
    14.         this.q = q; 
    15.     } 
    16.  
    17.     public void run() { 
    18.         for (int i = 0; i < 10; i++) { 
    19.             q.put(i); 
    20.             System.out.println("Producer put:" + i); 
    21.         } 
    22.     } 
    23.  
    24. class Consumer extends Thread { 
    25.     Queue q; 
    26.  
    27.     public Consumer(Queue q) { 
    28.         this.q = q; 
    29.     } 
    30.  
    31.     public void run() { 
    32.         while (true) { 
    33.             System.out.println("Consumer get:" + q.get()); 
    34.         } 
    35.     } 
    36.  
    37. class Queue { 
    38.     int     value; 
    39.     boolean bFull = false
    40.  
    41.     public synchronized void put(int i) { 
    42.         if (!bFull) { 
    43.             value = i; 
    44.             bFull = true
    45.             notify(); 
    46.         } 
    47.         try { 
    48.             wait(); 
    49.         } catch (Exception e) { 
    50.             e.printStackTrace(); 
    51.         } 
    52.     } 
    53.  
    54.     public synchronized int get() { 
    55.         if (!bFull) { 
    56.             try { 
    57.                 wait(); 
    58.             } catch (Exception e) { 
    59.                 e.printStackTrace(); 
    60.             } 
    61.         } 
    62.         bFull = false
    63.         notify(); 
    64.         return value; 
    65.  
    66.     } 

     4. Comparable 인터페이스 사용
    
      
      
      
      
    1. class Student implements Comparable 
    2.     int num; 
    3.     String name; 
    4.     static class StudentComparator implements Comparator 
    5.     { 
    6.         public int compare(Object o1,Object o2) 
    7.         { 
    8.             Student s1=(Student)o1; 
    9.             Student s2=(Student)o2; 
    10.             int result=s1.num > s2.num ? 1 : (s1.num==s2.num ? 0 : -1); 
    11.             if(result==0
    12.             { 
    13.                 result=s1.name.compareTo(s2.name); 
    14.             } 
    15.             return result; 
    16.         } 
    17.     } 
    18.     Student(int num,String name) 
    19.     { 
    20.         this.num=num; 
    21.         this.name=name; 
    22.     } 
    23.      
    24.     public int compareTo(Object o) 
    25.     { 
    26.         Student s=(Student)o; 
    27.         return num > s.num ? 1 : (num==s.num ? 0 : -1); 
    28.     } 
    29.     public String toString() 
    30.     { 
    31.         return num+":"+name; 
    32.     } 

     먼저 name, 후 age 를 요구 하면 다음 과 같이 참고 할 수 있 습 니 다.
    
      
      
      
      
    1. class Student implements Comparable<Object> { 
    2.     private String name; 
    3.     private int age; 
    4.  
    5.     public Student(String name, int age) { 
    6.         super(); 
    7.         this.name = name; 
    8.         this.age = age; 
    9.     } 
    10.  
    11.     @Override 
    12.     public int compareTo(Object o) { 
    13.         Student student = null
    14.         if (o instanceof Student) { 
    15.             student = (Student) o; 
    16.         } 
    17.         int ret1 = this.name.compareTo(student.name); 
    18.         // int ret2 = this.age - student.age; 
    19.         return ret1 != 0 ? ret1 : (this.age > student.age ? 1 
    20.                 : (this.age == student.age ? 0 : -1)); 
    21.  
    22.     } 

     5. 파일 덮어 쓰기 설정 방법
    
      
      
      
      
    1. String requestedFile = System.getProperty(PROPERTIES_FILE); 
    2.         String propFileName = requestedFile != null ? requestedFile 
    3.                 : "quartz.properties"

     6、static final
    static 이자 final 필드 는 변경 할 수 없 는 저장 공간 만 차지 합 니 다. 고정 초기 값 (즉, 컴 파일 시 상수) 을 가 진 static final 기본 형식 은 모두 대문자 로 명명 되 고 글자 와 글자 사 이 를 밑줄 로 구분 합 니 다.java. lang. byte 클래스 에서 byte 형식 에 대한 최소 값 정의:
    public 
    static
     final
     byte
       
    MIN_VALUE
     = -128;
    더 많은 참고:http://blog.csdn.net/tiannet/article/details/2593472
     
     
     
     
     
     
     
     
     
     
     

    좋은 웹페이지 즐겨찾기