ÔÚJavaÖÐËøÎļþµÄÀý×Ó
1.Èç¹ûÔÚÏÂÃæµÄ´úÂëÖУ¬tryLock¸Ä³Élock£¬ÄÇô»áÒ»Ö±µÈ´ý£¬Ö±µ½Äܹ»ËøÉÏÎļþΪֹ£¬µ«tryLock»áÁ¢¼´·µ»Ø¡£
Èç¹ûÒ»¸öµ÷ÓÃÁËtryLock£¬»òlock²¢Çҳɹ¦ËøÉÏÖ¸¶¨ÎļþºóµÄ³ÌÐò£¬ÔÚûÓÐÊÍ·ÅÎļþËøµÄÇé¿öÏ£¨Ã»Óе÷ÓÃrelease£©³ÌÐò¾Í½áÊø£¨°üº¬Ç¿ÖƽáÊøµÄÇé¿ö£©£¬ÄÇôÎļþËø»á×Ô¶¯±»ÊÍ·Å¡£
2.´úÂëÖеÄsleepÊÇΪÁ˱ãÓÚÑéÖ¤³ÌÐòÓõġ£±ÈÈ磬ÔÚsleep½×¶Î£¬Äã¿ÉÒÔÊÔ×ÅÐ޸ıðËø×¡µÄÎļþ²¢±£´æ¸ü¸Ä¡£»òÕßÔٴε÷Óñ¾³ÌÐòÀ´ÑéÖ¤¡£
±¾³ÌÐòÔÚÈçÏÂÆ½Ì¨ÏÂÑé֤ͨ¹ý£º
OS: Windwos XP
java version "1.6.0_20"
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
public class FileLock {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("##################### start. ");
if (args.length != 1) {
System.out.println("parameter is invalid.");
return;
}
RandomAccessFile input = null;
try {
input = new RandomAccessFile(args[0], "rw");
} catch (FileNotFoundException fe) {
System.out.println("file is not found.");
return;
}
FileChannel channel = input.getChannel();
java.nio.channels.FileLock lock = null;
try {
// Lock is existed, tryLock return null.
lock = channel.tryLock();
System.out.println("lock called.");
if (lock == null) {
System.out.println("lock is null");
return;
}
if (lock.isShared()) {
System.out.println("lock isShared.");
} else {
System.out.println("lock not Shared.");
}
if (lock.isValid()) {
System.out.println("lock isValid.");
} else {
System.out.println("lock Valid.");
}
try {
Thread.sleep(10000);
} catch (InterruptedException ie) {
System.out.println("InterruptedException.");
}
} catch (IOException ie) {
System.out.println("lock file failed.");
System.out.println(ie.toString());
} finally {
try {
if (lock != null) {
lock.release();
}
channel.close();
if (input
Ïà¹ØÎĵµ£º
ÆäʵҲ²»ÊÇÅÀÍøÒ³£¬Ö»ÊÇ´ÓÒ»¸öXMLÎļþÈ¡URL£¬È»ºó×¥È¡ÍøÒ³ÄÚÈÝ¡£
Ö÷ÒªÓм¸µã£¬±¸Íü£º
1. È«¾Ö´úÀí£¬ÉèÖÃÖ®ºóËùÓеÄURL¶¼Ê¹Óô˴úÀí£¬ÕâÑù¿ÉÒÔÖ±½Óµ÷ÓÃFileUtils.copyURLToFile£º
private void initProxy(String host, int port,
final String username, final String password) {
Authenticator.setDefault(new Aut ......
×ÓÀà¶ÔÏóµÄ·½·¨²»ÄÜÖ±½Ó·ÃÎʳ¬ÀàµÄ˽ÓÐÓò£¬¾¡¹Üÿ¸ö×ÓÀà¶ÔÏó¶¼ÓµÓÐÕâ¸ö˽ÓÐÓò£¬µ«ÊÇÔÚ×ÓÀàµÄ·½·¨ÖÐÈ´²»ÄÜÖ±½Ó·ÃÎÊÕâ¸öÓò¡£Ö»Óг¬ÀàµÄ·½·¨²ÅÄܹ»·ÃÎÊ˽Óв¿·Ö¡£Èç¹û×ÓÀàÒ»¶¨Òª·ÃÎʸ¸Àà˽ÓÐÓò£¬¾Í±ØÐë½èÖú¹²ÓеĽӿڡ£µ÷Óó¬ÀàµÄ·½·¨£¬Èç¹ûÕâ¸ö·½·¨ÔÚ×ÓÀàÖÐÒ²ÓУ¬ÄǾͱØÐëÓÃsuper¡£×ÓÀàÓÿÉÒÔÔö¼Ó×Ô¼ºµÄ²¿·Ö£¬¸²¸Ç³¬ÀàµÄ²¿·Ö· ......
MySQL£º
String Driver="com.mysql.jdbc.Driver"; //Çý¶¯³ÌÐò
String URL="jdbc:mysql://localhost:3306/db_name"; //Á¬½ÓµÄURL,db_nameΪÊý¾Ý¿âÃû
String Username="username"; //Óû§Ãû
String Password="password"; //ÃÜÂë
Class.forName(Driver).new Instance();
......
1.2 ¹¤³§·½·¨£¨Factory Method£©Ä£Ê½
¹¤³§·½·¨Ä£Ê½ÊÇÀàµÄ´´½¨Ä£Ê½£¬ÓÖ½ÐÐéÄâ¹¹Ôì×Ó£¨Virtual Constructor£©Ä£Ê½»òÕß¶à̬ÐÔ¹¤³§£¨Polymorphic Factory£©Ä£Ê½¡£
¹¤³§·½·¨Ä£Ê½µÄÓÃÒâÊǶ¨ÒåÒ»¸ö´´½¨²úÆ·¶ÔÏóµÄ¹¤³§½Ó¿Ú£¬½«Êµ¼Ê¹¤×÷ÍÆ³Ùµ½×ÓÀàÖС£
1.2.1 ¹¤ ......