??xml version="1.0" encoding="utf-8" standalone="yes"?>成人激情电影在线看,青青色在线视频,亚洲国产成人精品一区二区http://www.aygfsteel.com/adapterofcoms/category/43830.htmlzh-cnSat, 06 Mar 2010 02:26:48 GMTSat, 06 Mar 2010 02:26:48 GMT60Singleton设计模式,需要双重检查吗?http://www.aygfsteel.com/adapterofcoms/archive/2010/03/03/314440.htmladapterofcomsadapterofcomsWed, 03 Mar 2010 13:13:00 GMThttp://www.aygfsteel.com/adapterofcoms/archive/2010/03/03/314440.htmlhttp://www.aygfsteel.com/adapterofcoms/comments/314440.htmlhttp://www.aygfsteel.com/adapterofcoms/archive/2010/03/03/314440.html#Feedback0http://www.aygfsteel.com/adapterofcoms/comments/commentRss/314440.htmlhttp://www.aygfsteel.com/adapterofcoms/services/trackbacks/314440.htmlSingleton设计模式,双重查样列如?

  • public class Singleton   
  • {   
  •     private static final Singleton singleton = null;   
  •   
  •     private Singleton()   
  •     {   
  •     }   
  •     public static Singleton getInstance()   
  •     {   
  •         if (singleton== null)   
  •         {   
  •             synchronized (Singleton.class)   
  •             {   
  •                 if (singleton== null)   
  •                 {   
  •                     singleton= new Singleton();   
  •                 }   
  •             }   
  •         }   
  •         return singleton;   
  •     }   
  • }  
  •  

    单样?:

    public class Singleton { 
     private final static Singleton instance=new Singleton();
     private Singleton(){}
     public static Singleton getInstance(){ 
      return instance; 
     }
    }

     

    双重查很通用,但是它引以ؓ傲的是性能的优?在getInstance被很多很多次调用的情况下).

    呵呵,我就直接说结Z:在性能上最优的?单样? [当然也是在getInstance被很多很多次调用的情况下].

    单样??strong>非惰性加?/strong>,所以有反驳?如果我不用到Singleton 的实例岂不是白占了内?

    所以你选择 单样? q是 双重?/strong> 是要Ҏ你的实际情况?如果在程序中对单列类引用的频率是很高?那么应该选择 单样?,反之 双重?

     

     

     



    adapterofcoms 2010-03-03 21:13 发表评论
    ]]>
    你能通过下面?道java面试题吗?http://www.aygfsteel.com/adapterofcoms/archive/2010/03/03/314393.htmladapterofcomsadapterofcomsWed, 03 Mar 2010 03:28:00 GMThttp://www.aygfsteel.com/adapterofcoms/archive/2010/03/03/314393.htmlhttp://www.aygfsteel.com/adapterofcoms/comments/314393.htmlhttp://www.aygfsteel.com/adapterofcoms/archive/2010/03/03/314393.html#Feedback0http://www.aygfsteel.com/adapterofcoms/comments/commentRss/314393.htmlhttp://www.aygfsteel.com/adapterofcoms/services/trackbacks/314393.html1.java static inner class ?non-static inner class的区?  

    2.请写Z个singleton模式的class.

    你如果写Z面的2U样?我会问你:请问你如何在同一个jvm中ƈ且在同一个classLoader中得到它的多个实?(请不要奇?

    样列1:

    public class Singleton {  
     private final static Singleton instance=new Singleton();
     private Singleton(){} 
     public static Singleton newInstance(){  
      return instance;  
     } 
    }

    样列2:

    public class Singleton { 
     private static volatile int instanceCounter=0; 
     private Singleton(){
      if(instanceCounter>0)
       throw new RuntimeException("can't create multi instances!");
      instanceCounter++;
     }
     
     private final static Singleton instance=new Singleton();
     public static Singleton newInstance(){  
      return instance;  
     }

    3.java 的exception 分checked,unchecked.像RuntimeException,Error都不用显式try-catch,直接可以throw,

    但是一般的exception是必catch?

    throw new Exception("..."),如果q句不在try-catch体内,或者方法的声明没有throws,那么~译是通不q的.

    ok,L如下的代?

    public class TestClass { 
     
     public void  testMethod()/*q里没有throws ?*/{  

              ......
               throw new Exception("force throw the exception...");
              ......
     }
    }

    很明显上面的Ҏ如果q样的话是通不q编译的,但是如果非得要你在testMethod体中在运行时throw一个很一般的Exception,请问你有办法? 

    q?道题可不是sun出的考题?不信你搜?.....



    adapterofcoms 2010-03-03 11:28 发表评论
    ]]>
    java nio在多U程环境下的恶梦之终l?/title><link>http://www.aygfsteel.com/adapterofcoms/archive/2010/03/02/314242.html</link><dc:creator>adapterofcoms</dc:creator><author>adapterofcoms</author><pubDate>Tue, 02 Mar 2010 02:12:00 GMT</pubDate><guid>http://www.aygfsteel.com/adapterofcoms/archive/2010/03/02/314242.html</guid><wfw:comment>http://www.aygfsteel.com/adapterofcoms/comments/314242.html</wfw:comment><comments>http://www.aygfsteel.com/adapterofcoms/archive/2010/03/02/314242.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/adapterofcoms/comments/commentRss/314242.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/adapterofcoms/services/trackbacks/314242.html</trackback:ping><description><![CDATA[<p>有h说java nio在多U程环境下编E简直就是个恶梦,其实你如果能把握住java nio API的要?你就可以之N. </p> <p>0. 一?channal 对应一个SelectionKey in the same selector.<br /> e.g: <br /> SelectionKey sk=sc.register(selector, SelectionKey.OP_READ, handler);<br /> sk==sc.register(selector, SelectionKey.OP_WRITE, handler) true?<br /> selector.select() 每次q回的对同一channal的sk是否相同? </p> <p>1.channel.register(...) may <strong>block</strong> if invoked concurrently with another registration[another.register(...)] or selection operation[selector.select(...)] involving *****<strong>the same selector</strong>*****.<br /> q个是registerҎjdk src上的原文,<br /> e.g:<br /> 如果一个selection thread已经在selectҎ上等待ing,那么q个时候如果有另一条线E调用channal.registerҎ的话,那么它将被blocking.<br /> <br /> 2.selectionKey.cancel() : The key will be <strong>removed</strong> from all of the selector's key sets <strong>during</strong> *****<strong>the next selection operation[selector.select(...)]</strong>*****.<br /> may <strong>block</strong> briefly if invoked concurrently with a cancellation[cancel()] or selection operation[select(...)] involving ***<strong>the same selector</strong>***.<br /> q个也是cancelҎjdk src上的原文,<br /> e.g:<br /> 你先一个selectionKey.cancel(),然后随即再channel.register to <strong>the same selector</strong>,<br /> 在cancel和register之间,如果没有U程(包括当前U程)q行select操作的话,<br /> 那么 throws java.nio.channels.CancelledKeyException.<br /> 所?nbsp;cancel-->select-->re-register.  </p> <p>3.if <strong>don't remove</strong> the current selectedKey from selector.selectedKeys()[Set] 导?selector.select(...) <strong>not</strong> <strong>block</strong> [may be cpu 100%,specially when client cut the current channel(connection)].<br /> e.g:<br /> Iterator<SelectionKey> it=selector.selectedKeys().iterator();<br /> ...for/while it.hasNext()...<br /> it.remove();<strong><------*****must do it. or Keys' Set.clear() finally;</strong> </p> <p>if remove the current selectedKey from selector.selectedKeys()[Set] <strong>but don't</strong> <strong>sk.interestOps(sk.interestOps()& (~sk.readyOps()))</strong>;导?selector.select(...) <strong>not block</strong> [select() not block several times, or excepted exception] </p> <p>4.op_write should not be registered to the selector.   [may be cpu100%] </p> <p>5. if involving  wakeup() <strong>before</strong> select() [wakeup called several times >=1],the <strong>next</strong> select() <strong>not block</strong> [not block just once]. </p> <p>管以前有些人分析了nio的wakeup性能及not block in linux的bug,但是java nio依然是高效的,那些c/c++的牛Zȝ看jre/bin目录下的nio.dll/nio.so?java nio是基于select模型(q个是c/c++中常用网l编E模型之一)?</p> <p>Zjava nio的服务器:mina,girzzly[glassfish],jetty(Zgirzzly),tomcat6[可以配置Http11NioProtocol]...</p> <p>其中从本人对girzzly,tomcat6的源码分析来?它们都还没有真正发挥出nio异步处理h的优?它们的读写还都是blocking的虽然用了selectorPool,此外tomcat6要剥dsocket通信q要p一定的功夫.?strong>mina</strong>却是<strong>?font class="" style="font-family: " color="#ff0000">?/font>W其?/strong>,q有<strong>bug</strong>?</p> <img src ="http://www.aygfsteel.com/adapterofcoms/aggbug/314242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/adapterofcoms/" target="_blank">adapterofcoms</a> 2010-03-02 10:12 <a href="http://www.aygfsteel.com/adapterofcoms/archive/2010/03/02/314242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java?q是 c快[c++快],似是而非的谈http://www.aygfsteel.com/adapterofcoms/archive/2010/02/01/311552.htmladapterofcomsadapterofcomsMon, 01 Feb 2010 12:45:00 GMThttp://www.aygfsteel.com/adapterofcoms/archive/2010/02/01/311552.htmlhttp://www.aygfsteel.com/adapterofcoms/comments/311552.htmlhttp://www.aygfsteel.com/adapterofcoms/archive/2010/02/01/311552.html#Feedback0http://www.aygfsteel.com/adapterofcoms/comments/commentRss/311552.htmlhttp://www.aygfsteel.com/adapterofcoms/services/trackbacks/311552.html     首先说明一下这?#8221;?#8221;的含?我想以前那些讨论q个话题的h当然认ؓq个快是指程序的q行速度,至于”软g开发速度”恐怕想也没?或许认ؓ软g开发速度和这个话题扯不上一点关p?那么q个问题在网上搜?搜的一大堆,那些c/c++阵营的列了很多例子来说明c/c++? java阵营的也是如?q提供一些机构的数据来说明javaq不?可是仍然没有让大安信服的理由或者结?从这些讨Z我们应该得到一些启C?那就是讨个话题的前提是讨论的人必L对java有很q了解q要对c/c++有很深入的接?否则都是偏面?
        另外从网上的l果看大安谈到了一个共同点,~译的方式或机制是对速度是有影响?在这里提Cjava的动态编译的问题JIT(just in time).很明昑־多c/c++E序员他不了解java的运行机?java的动态编译是q样描述?首先写完一个helloworld.java的源文g交由java compiler得到helloworld .class文g,java.exe会启动Java Virtual Machine,q加载这个class文g通过JIT~译为本机的机器代码.特别要强调的是这个class文g,它是~译原理中所谓的中间代码,它ƈ不是目标代码.也正因ؓ有了q个中间代码才动态编译得以实?而c/c++是直接到二进制的机器代码,也不需要中间代码多ơ一?不过不要认ؓjava的class文g是多余的?它的真正目的是整个java语言的承诺write once, run anywhere,也就是说不管你是在windows osq_q是在linux osq_,class都是一L,只是Java Virtual Machine是不一L,所以有不同os版本的jdk(要想q行java一般只要Java Runtime Environments够?.同理.NET也是q样?所谓的.net framework是承担了JVM的角?说到q有必要提醒一下各位javaZ么要搞个JVM,.NETN是仅仅ؓ了和java竞争才搞.net framework?呵呵,原因也许很多,但一定会有Y件开发周?人力成本,q很重要?呵呵,快要扯到软g开发速度上来?
        在这里我要提醒各位的是关于编译器?用java完全可以写出一个c/c++~译?当然更可以写Z个java~译?不要奇怪哦,如果你懂~译原理的话,你一定会赞同我的观点? 鸡和鸡蛋的问?!!
        如果那种语言慢的令h无法忍受的话,那它早就推出历史舞台?可是java退Z?我们先不谈现在java软g的全球市Z?q看TIOBE世界~程语言排行?排在?位的是java,c,c++.Java的用h数现在每q在幅下降,不是因ؓ它运行慢,而是相对有些软g.net的开发速度更快?注意?是开发速度,不是q行速度?!!
        计算a充其量不q是个工?c语言在宿ȝ环境 (例如装有操作pȝ的环? 中如果离开(操作)pȝ提供的API(Application Programming Interfaces)或者系l调用接口的?那它除了做做数D什么也做不??Z提一下那些stdio , stdlib{这些标准库它们的实C是调用了(操作)pȝ的API,例如:malloc它的windows实现会调用windows api HeapAlloc来分配堆.所以你所在的pȝ不同,stdio,stdlib{这些标准库的实C不一?当然函数接口功能是一致的,要不然就不标准了?在学校的时?g无h不说c语言?我要说的是难的不是c语言,隄是c所应用的领域的业务理论,逻辑,程.例如:使用cq行数D?隄是法,如果法一旦给?你只需用c来表?如果c语言本n很难的话,它还会在TIOBE世界~程语言排行榜中占第Q位?java语言也是如此,d了那些java,javax packages那它q能q什么呢?
        每种语言有它擅长的领?也就是说它的发明出现是有目的?q且伴随着软g开发理论的发展,W合软g工程的要?在学每一U语a的开头都会介l该语言的历?展示它比以前的语a是如何如何进步的一?他们都会该语a是如何如何符合Y件工E的要求,如何如何提高了开发速度,而有不会大幅度降低运行速度.所以学习过c++,java的h都会发现在学习这些语a的时候居然要同步学习面向对象的编E思想,甚至q会附带更多看上d像和语言无关的东?其实是q些开发思想,理念,原则,理论{等一大堆东东都体现在了这些语a?所以学习一门语a不仅仅是语言本n的特?更重要的是它所体现包含的Y件开发思想.
        下面的这句话是摘之孟岩写?#8220;Java替代C语言的可能?#8221;,他在文中说到:"Java在意识Ş态上是要面向企业应用软g的开发,所以特别强调架构,设计模式Q强调标准,规规矩矩Q强调高姿态,一U华늚宫h气质。在C 中,你吃饭就是吃饭,捧v来喝酒Q放下筷子骂娘,甩开膀子抓肉,撸v袖子Ҏa。而在Java中,你经ؓ了要q某件事Q先new一个对象,然后以这个对象ؓ参数new另一个对象,如此q般重复n遍,得到真正需要的对象Q最后就是ؓ了调用那个对象的一个方法,好比吃饭时焚香z面Q漱口净手,战战兢兢Q毕恭毕敬。在C中,遇到问题要像亡命徒,像流氓版E咬金,你三七二十一Q冲上去是三板斧,q怕劈不死你丫的。在Java里,遇到问题要像宋襄公,要张榜檄文,要名正言,要礼仪之邦,要把架子拉开了,把谱儿摆了。Java的口hQ不劈不劈的死Q先把你子感动了再说。这套繁琐的东西Q对于基软g开发来_既不必要Q也很难习惯。需要说明的是,q不是Java语言的问题,其实Java本n不必如此复杂、如此巴z克?针对q句话我惌的是其中的java,java之所以像他说的那h谓的J琐,q恰CCjavaq种语言所要表辄软g工程思想,java是面向对象的,面向对象的原则之一是面向接口编E?所以ؓ了要q某件事q不像孟岩上面说的那?应该q样,先定义一个接口类,再写一个实现类,再写一个工厂类用来产生前面的接口类的实?而不是简单的new,你是不是已经觉得更繁?呵呵,q有所谓更J的?我不用工厂类?我用了个抽象的工厂类,l它定义一个生这个工厂类的实例的静态方?得到q个工厂cȝ实例再用它来产生前面的接口类的实?为啥q么做啊?因ؓjavaW合了面向企业应用Y件的开发要?因ؓ企业需求变化很?所以要接口,要通过工厂模式来create?如果q样,当需求变化后我只需修改或添加新的实现类,再修改一下工厂类的createҎ,而对该接口引用的外部或外层代码则不需作Q何改?你看接口引用,实现,创徏各部分都分的清清楚楚,以后代码l护自然Ҏ,又能适应需求的变化.另外对于E序员而言可不要以为写的代码多了哦,恰恰相反,你利用设计工L几个cd它就会帮你自动生成接?工厂cM,你只需在IDE中写实现cdok?
        机器指o׃说了,汇编到c,c到c++,c++到java,脚本语言(lua,php,python,ruby)…从左到右E序q行速度是递减?而Y件开发速度是递增?ME序员写的更?更快,但编译器做的更多(附加插入的机器指令也会更?, 设计和开发工具IDE也会做的更多,附加的标准库,标准模板库等{封装的更多,q有涉及Ҏ面面的开源的库简直不计其?好像E序员轻松了,其实更篏?整个软g业对E序员的要求更高?但又不一?因ؓ大量的框架提供了开发的便携?使得E序员只需到达会应用的水^,而不必知其所以然.所以大部分E序员又廉hh? 软g蓝领出现?人力成本便宜?q又是Y件规模开发所期望的结?早期MDA的架构理狂吹MDA的代码自动生成能力会让Y件蓝领失?
        其实在这?#8221;java快还是c?#8221;话题中最”?#8221;的是java,因ؓ有太多的?证据来说java是如何的比c?如何的耗内?之所以这h因ؓ有太多的Z了解java,甚至有太多的javaE序员都不了解java,会写javaE序与对java的理解是两码?
        Eclipse是一个用来开发java软g的IDE,是IBM开源的,悲哀的事情来?有很多javaE序员都不知到eclipse是用java写成?他们一看到eclipse.exe他们q马否定了它是用java写的,所以有q种x的h请你把本机的JRE(JDK)删除,看你的eclipseq能否启? 如果你还有疑?那你一定不知道JNI(java native interface),JVM可是c/c++写成?呵呵,说到q是不是有点”同根?#8221;的味?现在却要”怺何太?#8221;.请用反汇编工具看看eclipse.exe都干了些什?最好也看看JDK中的java.exe又干了些什?其实它们的功能大同小?它们都会加蝲jvm.dll/jvm.so(在JRE的bin目录?,创徏JVM实例,通过JNI加蝲main class,q调用它的mainҎ.但是疑问也来?不管是java,c/c++E序员可能都不相信eclipseq种用java写的H口E序怎么会运行的如此之快,完全可以和vb,Delphi,c/c++写的H口E序媲美.因ؓ在他们的印象中java的GUIE序慢的要死,其实也正因ؓjava的GUI慢给java一下扣上了q顶慢帽?
        在这个世界上JVM(jdk,jre)不是sun公司的专有物,IBM也有?只是我们常用的是sun提供?很可惜它支持GUI的awt, swing包在最初的设计上过于抽?使得速度不尽如h?当然现在一直有改观.而IBM它提供了swt包来支持java的GUI~程,eclipse是基于swt?eclipse plugin插g~程出现?eclipse的插件体pd在GUI斚w的积累和框架已经很成熟了,也很?可惜知道的h很少,去www.eclipse.org看看?Myeclipse也是同理?它不仅集成了eclipse,q内|了jdk.有h说java做不了系lY?是啊,我前面就说过? 每种语言有它擅长的领?
        但是有必要提一下嵌入式~程,不要以ؓ嵌入式Y仉是系lY?java在这个市Z的䆾额可是很高的?要不Microsoft怎么会眼U呢.J2ME,J2EE,J2SE是sun针对不同的应用领域提出的Q套规范和API,其中J2SE是指jdk,J2ME是专门用于微型设备开发的,它是J2SE的一个很的子集,轻量了很?J2EE是一套面向企业应用的规范,以J2SE为基.呵呵,看看java的发展史?它天生就是ؓ电视、控制烤面包机等家用电器(消费性电子?的交互操作而开发的.
        最后提一下JNI,它是java可扩展能力的backbone, JNI是以c/c++的语a形式提供的接?c/c++通过它可以和JVM通信,也就是可以和java交互了哦.我前面也说了JVM本n是用c/c++写成?都在jvm.dll/jvm.so?
        再说java的耗内?q个如果在苛ȝg条g下确实是个问?不过现在的趋势是g一直在降h,g的性能在提?以前的c/c++E序员在g条g的限制下Z辑ֈ性能上的最?写的代码是不太可ȝ,q是与Y件工E理论相q背?我们现在ZE序以后的可l护,降低l护成本,我们可以牺牲一定的性能也要l护E序的可L?不仅如此我们Z目的开发周期能在规定的旉内达到最大的完成?在选择技?框架的时候我们首先考虑的是开发速度,其次才是q行速度.在性能调优斚w我们来看?lt;<c和指?gt;>怎么说吧, ”改进法胜于优化代码”page403,q里的算法完全可以g展ؓ设计,所以不要迷信某U语a或技术的快慢性能,如果设计本n很p糕,那么再优的技?再快的语a也无于? ”实际?在大多数情况?若要提高pȝ的运行性能,增加RAM比提高CPU的速度所产生的效果更?”摘之<<windows 核心~程>>中的W? 3章Windows的内存结构的page305.我想java的设计者不会傻的连q个都不知道?
        性能优化无非是内存和CPU,I间和时间的博弈.
        昨天又听到这样一句话”http比tcp?#8221;……哪位有空的仁兄也来谈谈网l吧, 呵呵!



    adapterofcoms 2010-02-01 20:45 发表评论
    ]]>
    վ֩ģ壺 ̩˳| α| | | °| | | ɽ| ֺ| | ÷| | ˮ| | | | Ҷ| ݳ| | | ƽ| | ɽ| | | ˮ| ԭ| ָ| | пѷ| | ɽ| | ԭ| ɽ| ǧ| | | ˫| Ƽ| |