Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

java²¢·¢±à³Ìʵ¼ù ±Ê¼Ç£¨1£©

Ḭ̈߳²È« ʲôÊÇḬ̈߳²È«(thread-safe)£¿ Ò»¸öÀ࣬Èç¹ûÄܹ»ÔÚ¶àÏ̲߳¢·¢·ÃÎʵĻ·¾³Ï£¨²»¹ÜÏ̷߳ÃÎʵÄ˳Ðò£©ÕýÈ·±íÏÖ×Ô¼ºµÄÐÐΪ£¬²¢ÇÒÎÞÐèÍⲿµ÷ÓÃÌí¼ÓÈκÎͬ²½Ö®ÀàµÄ²Ù×÷£¬Õâ¸öÀà¾ÍÊÇḬ̈߳²È«µÄ¡£
Õâ¸öÕýÈ·ÐÔ¿ÉÒÔÕâôÀí½â£¬¾ÍÊÇ˵¶àÏ̷߳ÃÎʵĽá¹û²»»á²»Í¬ÓÚµ¥Ï̵߳ķÃÎÊ¡£
Ḭ̈߳²È«µÄÀ಻ÐèÒªÍⲿµ÷ÓÃÌṩÈκθ½¼ÓµÄͬ²½¡£ ÎÞ״̬(stateless)µÄÀàÓÀÔ¶ÊÇḬ̈߳²È«µÄ¡£
ʲôÊÇÎÞ״̬µÄÀࣿûÓÐʵÀý±äÁ¿(field)£¬Ò²Ã»ÓÐÒýÓÃÆäËüÀàµÄfield¡£ Ô­×ÓÐÔ A race condition occurs when the correctness of a computation depends on the relative timing or interleaving of multiple threads by the runtime; in other words, when getting the right answer relies on lucky timing. ×î³£¼ûµÄrace conditionÊÇcheck-and-act¡£Òª·ÀÖ¹ÕâÖÖrace condition£¬ÎÒÃÇÐèÒªÔ­×ÓÐԵIJÙ×÷¡£Ê²Ã´ÊÇÔ­×ÓÐÔÄØ£¬¾ÍÊÇ˵£¬ÄãÕâ¸ö²Ù×÷ÔÚÖ´ÐеĹý³ÌÖУ¬¶ÔÓÚÄã²Ù×÷µÄ״̬ÉÏÆäËüµÄ²Ù×÷£¨°üÀ¨Äã×Ô¼º£©ÒªÃ´È«¶¼Ö´ÐÐÍêÁË£¬ÒªÃ´»¹Ã»¿ªÊ¼¡£
Ïë˵¾äͨ˳µÄÖйú»°ÔõôÕâôÄѰ¡£¬»¹ÊǸø³öÔ­Îİɣº Operations A and B are atomic with respect to each other if, from the perspective of a thread executing A, when another thread executes B, either all of B has executed or none of it has. An atomic operation is one that is atomic with respect to all operations, including itself, that operate on the same state. À´¸öÀý×Ó @NotThreadSafe
public class UnsafeCountingFactorizer implements Servlet {
private long count = 0;
public long getCount() { return count; }
public void service(ServletRequest req, ServletResponse resp) {
BigInteger i = extractfromRequest(req);
BigInteger[] factors = factor(i);
++count;
encodeIntoResponse(resp, factors);
}
}
@ThreadSafe
public class CountingFactorizer implements Servlet {
private final AtomicLong count = new AtomicLong(0);
public long getCount() { return count.get(); }
public void service(ServletRequest req, ServletResponse resp) {
BigInteger i = extractfromRequest(req);
BigInteger[] factors = factor(i);
count.incrementAndGet();


Ïà¹ØÎĵµ£º

java±Ê¼Ç(1)


public class Parent {
    private String name;
    public String getName() {
return name;
    }
    public void setName(String name) {
this.name = name;
    }
    public void ppublicMethod(){
  ......

´«ÖDz¥¿ÍJavaÅàѵ HTML»ù´¡

½ñÌìÊÇдµÚһƪ´«ÖDz¥¿Í½Ì³ÌÈÕÖ¾£¬Ò²ÊÇÎÒ¿´
JavaScript
ÊÓÆµµÄµÚÒ»Ìì¡£
ÏÈ˵ԵÓɰɡ£´óÈý»¹ÓÐÈý¸öÔ¾ÍÒª½áÊøÁË£¬¿ÉÎÒ»¹Ã»Óиоõµ½×Ô¼ºÄܹ»ÓÐ×ã¹»µÄÄÜÁ¦ÕÒµ½·ÝºÃ¹¤×÷£¬´óѧÆÚ¼äѧµ½µÄ¶¼ÊÇЩƤëºÍÀíÂÛ£¬ÎÒ²»Ïëµ½ÁËÕÒ¹¤×÷µÄʱºò£¬ÃæÊÔ¹ÙÎÊÎÒ»á
XXX
Âð£¿ÎÒ˵²»»á¡£Òò´ËÎÒÏëͨ¹ýÅàѵÔö¼Ó×Ô¼ºµÄ¾ºÕùÁ¦¡£ÎÒ±¨Á˱¾µØµÄÒ»¼Ò
I ......

java´íÌ⼯


Õý¶à±ßÐÎÖÐ×µÄ¶Ô½ÇÏß¾ÍÊÇÖ÷¶Ô½ÇÏߣ¬ÆäÓàµÄ¶Ô½ÇÏß¾ÍÊǸ±¶Ô½ÇÏß
lang ÊÇ language£¨ÓïÑÔ£© µÄ¼òд
ÊÇjavaÖг£Ó÷½·¨×î¶àµÄ°ü
°üº¬³£ÓÃÀà
 
 
 
Runnable½Ó¿Ú£¬Ö»ÓÐÒ»¸ö·½·¨run()
exit(int status)
          ÖÕÖ¹µ±Ç°ÕýÔÚÔËÐÐµÄ Jav ......

java ´íÎó´úÂëÌáʾ

 //=============================Êä³öÆæÊý
public class OddTest {
public static boolean isOdd(int i){
return i % 2 != 0; //±È½Ï i % 2 == 0;×¢£º -1%2 = -1
}
public static void main(String[] args) {
for(int i = -10; i <= 10; i++) {
System.out.println(isOdd(i));
}
}
}
// ......

JavaÄÚ´æ¹ÜÀí»úÖÆÓëGC

 
JavaÊÇÈçºÎ¹ÜÀíÄÚ´æ
ΪÁËÅжÏJavaÖÐÊÇ·ñÓÐÄÚ´æÐ¹Â¶£¬ÎÒÃÇÊ×ÏȱØÐëÁ˽âJavaÊÇÈçºÎ¹ÜÀíÄÚ´æµÄ¡£JavaµÄÄÚ´æ¹ÜÀí¾ÍÊǶÔÏóµÄ·ÖÅäºÍÊÍ·ÅÎÊÌâ¡£ÔÚJavaÖУ¬³ÌÐòÔ±ÐèҪͨ¹ý¹Ø¼ü×ÖnewΪÿ¸ö¶ÔÏóÉêÇëÄÚ´æ¿Õ¼ä (»ù±¾ÀàÐͳýÍâ)£¬ËùÓеĶÔÏó¶¼ÔÚ¶Ñ (Heap)ÖзÖÅä¿Õ¼ä¡£ÁíÍ⣬¶ÔÏóµÄÊÍ·ÅÊÇÓÉGC¾ö¶¨ºÍÖ´Ðеġ£ÔÚJavaÖУ¬ÄÚ´æµÄ·ÖÅäÊ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ