JAVA and C++°æÐźÅÁ¿£¨PV²Ù×÷£©
	
    
    
	import java.util.concurrent.Semaphore;
/**
 * ³éÏóÈÎÎñ£¬¾ßÌåµÄÖ´ÐÐÈÎÎñ£¬¹éʵÏÖÀฺÔð
 * 
 * @author Administrator
 * 
 */
public abstract class Task {
	public abstract void run();
	private Semaphore s;
	private boolean hasExisted = false;
	public void P(final Semaphore s) throws InterruptedException {
		if (s == null) { // ÉêÇë¿ÕµÄÐźÅÁ¿
			throw new InterruptedException("²»ÄÜΪ¿Õ");
		}
		if (hasExisted) {// ÒѾÉêÇëÁËÒ»¸ö×ÊÔ´£¬»¹Ã»ÓÐÊÍ·Å
			throw new InterruptedException("ÒѾռÓÃÒ»¸ö×ÊÔ´");
		}
		s.acquire();// ×èÈû
		this.s = s;
		hasExisted = true;
	}
	public boolean V() {
		if (!hasExisted) {
			return false;// ûմÓÐ×ÊÔ´¾Í²»ÄÜ˵ÊÍ·ÅÁË
		}
		s.release();//ÊÍ·Å×ÊÔ´
		hasExisted = false;
		s = null;
		return true;
	}
}
import java.util.concurrent.Semaphore;
/**
 * ÓÃÐźÅÁ¿ÊµÏÖ»¥³â
 * 
 * @author Administrator
 *
 */
public class Mutex extends Semaphore {
	private static final long serialVersionUID = 1L;
	public Mutex() {
		super(1);//»¥³âÊÇ1
	}
} import java.util.concurrent.Semaphore;
public class Test {
	public static void main(String[] args) {
		// final Semaphore s = new Semaphore(2);//ÐźÅÁ¿£¬Ö´Ðнá¹ûrun the task1 run the
		// task2 run the task3
		final Semaphore s = new Mutex();// »¥³â run the task1 run the task2 run
										// the task3
		new Thread() {
			public void run() {
				Task1 task2 = new Task1();
				try {
					task2.P(s);// ÉêÇë×ÊÔ´
					task2.run();// Ö´ÐÐÈÎÎñ
					task2.V();// ÊÍ·Å×ÊÔ´
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}.start();
		new Thread() {
			public void run() {
				Task2 task2 = new Task2();
				try {
					task2.P(s);
					task2.run();
					task2.V();
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}.start();
		new Thread() {
			public void run() {
				Task3 task2 = new Task3();
				try {
					task2.P(s);
					task2.run();
					task2.V();
				} catch (InterruptedException e)
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
    DateTimeHelper ʱ¼ä×é¼þ
/**
 * 
 */
package com.ibm08001.bbs.utils;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 
 */
public class DateTimeHelper {
        private static SimpleDateFormat FULL_SDF = new SimpleDateFormat ......
	
    
        
    
    ¡¶Java how to program¡· 
¡¶Core java 2¡· 
¡¶Thinking in java¡· 
¡¶³ÌÐòÉè¼ÆÊµ¼ù¡· 
¡¶´úÂë´óÈ«¡· 
¡¶Éè¼ÆÄ£Ê½¡· 
¡¶java ÍøÂç±à³Ì¡·
serverlet jsp javabean spring habernate mysqlµÈ¡£ ......
	
    
        
    
    Ó¦¸Ã¾ÍÊǰÑjava ÀïÃæµÄ×é¼þ¸ãÃ÷°×
Servlet 
ServletÊÇÒ»ÖÖ»ùÓÚwebµÄJava×é¼þ£¬ËüÓÉÈÝÆ÷¹ÜÀí£¬²¢¶¯Ì¬Éú³ÉÆäÄÚÈÝ
ÔòûÓÐͼÐνçÃæ£¬ÔËÐÐÔÚ·þÎñÆ÷¶Ë
ËüÃǶ¼ÓÐÒ»¸öÉú´æÖÜÆÚ£¬°üº¬init()ºÍdestroy()·½·¨ 
 ²»ÊǶÀÁ¢µÄÓ¦ÓóÌÐò£¬Ã»ÓÐmain()·½·¨
Ó봫ͳµÄCGIºÍÐí¶àÆäËûÀàËÆCGIµÄ¼¼ÊõÏà±È£¬Java Servlet¾ßÓиü¸ßµÄЧÂÊ£¬¸ ......
	
    
        
    
    ½ü³õ²½½Ó´¥ÁËÏÂJava¼ÓÃܺÍÊý×ÖÇ©ÃûµÄÏà¹ØÄÚÈÝ£¬ÎÒѧϰµÄ¹ý³Ì´ó¸Å·ÖÎå²½£º 
1£©ÏûÏ¢ÕªÒª 
2£©Ë½Ô¿¼ÓÃÜ 
3£©¹«Ô¿¼ÓÃÜ 
4£©Êý×ÖÇ©Ãû 
5) Êý×ÖÖ¤Êé 
ÏÂÃæµÄ´úÂëÊǵڶþ²¿·Ö£ºË½Ô¿¼ÓÃÜ 
Ï£ÍûÄÜΪ¸Õ¸Õ½Ó´¥Õâ¸öµÄÅóÓÑÃÇÊ¡µãÊ 
package security;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import ......
	
    
        
    
    ×î½ü³õ²½½Ó´¥ÁËÏÂJava¼ÓÃܺÍÊý×ÖÇ©ÃûµÄÏà¹ØÄÚÈÝ£¬ÎÒѧϰµÄ¹ý³Ì´ó¸Å·ÖÎå²½£º 
1£©ÏûÏ¢ÕªÒª 
2£©Ë½Ô¿¼ÓÃÜ 
3£©¹«Ô¿¼ÓÃÜ 
4£©Êý×ÖÇ©Ãû 
5£©Êý×ÖÖ¤Êé 
ÏÂÃæµÄ´úÂëÊǵÚÎ岿·Ö£ºÊý×ÖÖ¤Êé 
±ÈÆðǰËIJ¿·Ö£¬Õⲿ·Ö¾ÍÉÔ΢Âé·³µãÁË£¬ÎÒÏëÎÒÓбØÒª¸ø¸Õ¸Õ½Ó´¥Êý×ÖÖ¤ÊéµÄÅóÓÑÃÇ£¬°ÑÔÚ±¾µØÅÜͨÏÂÃæ´úÂëµÄǰÌá˵һÏ£º 
1´ËÀýÊǶÔ&l ......