??xml version="1.0" encoding="utf-8" standalone="yes"?>67194成人在线观看,男人久久天堂,亚洲美女在线视频http://www.aygfsteel.com/jbrg2008/Z铜ؓ(f)?可以正衣?以古为镜,可以见兴?以h为镜,可以知得?zh-cnThu, 19 Jun 2025 15:14:02 GMTThu, 19 Jun 2025 15:14:02 GMT60String中三U加法的区别http://www.aygfsteel.com/jbrg2008/archive/2008/01/09/173862.htmlWed, 09 Jan 2008 00:19:00 GMThttp://www.aygfsteel.com/jbrg2008/archive/2008/01/09/173862.htmlhttp://www.aygfsteel.com/jbrg2008/comments/173862.htmlhttp://www.aygfsteel.com/jbrg2008/archive/2008/01/09/173862.html#Feedback0http://www.aygfsteel.com/jbrg2008/comments/commentRss/173862.htmlhttp://www.aygfsteel.com/jbrg2008/services/trackbacks/173862.html

JAVA的确是一Uo(h)E序员陷入两隑֢地的语言, 切的说是思想. 它提供了如此丰富的library,让程序员能够很容易的写出功能强大的程? 同时它也装了如此多的细? 让程序员能够L的写出很拙略的程? 它所代表的object指向思想设计之初是ؓ(f)了把E序员从UL(fng)复杂的编E细节中解放出来,来达到对已有E序的利? 但是在编E?nbsp;实际上又要求E序员了解其实现的细节而避免写出因调用已有library不正引v的performance慢的,耗费pȝ资源多的E序.通常成ؓ(f)一个优U的JAVAE序员需要较长时间的l验U篏,包括从程序的tuning?或从其他有经验的E序员口?才知道一定功能需要怎样实现,在程序中需要避免那些问?但这往往是比较片面的,知其然而不知其所以然.我想大多数程序员都有cM的经?举一个简单的例子,下面有三U对String的篏加操? 
?nbsp;String tmp = "a" + "b" + "c"; 
?nbsp;String tmp = null; 
         tmp+= "a"; 
         tmp+= "b"; 
         tmp+= "c"; 
?nbsp;String tmp = null; 
         StringBuffer buf = new StringBuffer(); 
         buf.append("a"); 
         buf.append("b"); 
         buf.append("c"); 
         tmp = buf.toString(); 
有些JAVAE序员在L的用q三U方法的MU?无视它们的区??nbsp;些程序员知道W三U方法好一直在用而不知其Z么好,以至于作?nbsp;
l验教条的传授给JAVA新手.真正的答案是什么呢?让我们揭开JAVA String Class和StringBuffer Class的封装面Uq看它的内部实?在JAVA中的String Class是一个不可变c?所有对一个Sting Object的改变都?x)导致一个新的String Object的生?那么对tmp+=a?W号的实现呢?如果你注意一下StringBuffer的Javadoc?x)发?JDK对它的实现是tmp=(new StringBuffer().append(tmp).append("a")).toSting(); q样我们发现②这U方法在隐性生成了一个StringBuffer Object和一个String Object 再乘3是六个object 的资源耗费.(q不包括String Class 和StringBuffer Class内部使用的Char[])而方法③只用了两?也许有些E序员会(x)对这些耗费不以为然,的确也是,不过在一些场景下它会(x)成ؓ(f)perfamence的瓶?再回头看看①q种Ҏ(gu),它会(x)被JAVA~译器编译ؓ(f)tmp=(new StringBuffer().append("a").append("b").append("c")).to String();我们发现做的和③Ҏ(gu)是同L(fng)?

2008-01-09 08:19 发表评论
]]>
Class.forName的含?/title><link>http://www.aygfsteel.com/jbrg2008/archive/2008/01/08/173505.html</link><dc:creator>林</dc:creator><author>林</author><pubDate>Tue, 08 Jan 2008 00:25:00 GMT</pubDate><guid>http://www.aygfsteel.com/jbrg2008/archive/2008/01/08/173505.html</guid><wfw:comment>http://www.aygfsteel.com/jbrg2008/comments/173505.html</wfw:comment><comments>http://www.aygfsteel.com/jbrg2008/archive/2008/01/08/173505.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jbrg2008/comments/commentRss/173505.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jbrg2008/services/trackbacks/173505.html</trackback:ping><description><![CDATA[       <font color="red">Class.forName(xxx.xx.xx) q回的是一个类, .newInstance() 后才创徏一个对?Class.forName(xxx.xx.xx);的作用是要求JVM查找q加载指定的c,也就是说JVM?x)执行该cȝ静态代码段<img src="/CuteSoft_Client/CuteEditor/images/emmessag.gif" align="absMiddle" border="0" alt="" /></font><br /> <p>Class aClass = Class.forName(xxx.xx.xx);<br /> Object anInstance = aClass.newInstance();<br /> q其中Class.forName("").newInstance()q回的是object<br /> <br /> 例:(x)<br /> Class Driver{<br /> protected static Driver current;<br /> public static Driver getDriver(){<br /> return current;<br /> }<br /> }<br /> <br /> Class MyDriver extends Driver{<br /> static{<br /> Driver.current=new MyDriver();<br /> }<br /> MyDriver(){}<br /> }<br /> <br /> 用时:<br /> Class.forName("MyDriver");<br /> Driver d=Driver.getDriver();<br /> <br /> 有的jdbcq接数据库的写法里是Class.forName(xxx.xx.xx);而有一些:(x)Class.forName(xxx.xx.xx).newInstance()Qؓ(f)什么会(x)有这两种写法呢?<br /> <br /> 在JDBC规范中明要求这个DrivercddDriverManager注册自己Q即M一个JDBC Driver的Drivercȝ代码都必ȝ似如下:(x)<br /> public class MyJDBCDriver implements Driver {<br /> static {<br /> DriverManager.registerDriver(new MyJDBCDriver());<br /> }<br /> }<br /> <br /> 所以我们在使用JDBC时只需要Class.forName(XXX.XXX);可以了Q在JDBC驱动中,有一块静态代码,也叫静态初始化块,它执行的旉是当class调入到内存中执行(你可以想像成Q当c调用到内存后就执行一个方法)。所以很多h把jdbc driver调入到内存中Q再实例化对象是没有意义的?/p> <img src ="http://www.aygfsteel.com/jbrg2008/aggbug/173505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jbrg2008/" target="_blank">林</a> 2008-01-08 08:25 <a href="http://www.aygfsteel.com/jbrg2008/archive/2008/01/08/173505.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>比较jsp中forword和sendRedirect的区?/title><link>http://www.aygfsteel.com/jbrg2008/archive/2008/01/04/172634.html</link><dc:creator>林</dc:creator><author>林</author><pubDate>Fri, 04 Jan 2008 00:49:00 GMT</pubDate><guid>http://www.aygfsteel.com/jbrg2008/archive/2008/01/04/172634.html</guid><wfw:comment>http://www.aygfsteel.com/jbrg2008/comments/172634.html</wfw:comment><comments>http://www.aygfsteel.com/jbrg2008/archive/2008/01/04/172634.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jbrg2008/comments/commentRss/172634.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jbrg2008/services/trackbacks/172634.html</trackback:ping><description><![CDATA[<p>1.RequestDispatcher.forward()</p> <p>是在服务器端起作?当用forward()?Servlet engine传递HTTPh从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文g,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获?参数自动传?但forward ()无法重定向至有frame的jsp文g,可以重定向至有frame的html文g,同时forward()无法在后面带参数传?比如 servlet?name=frank,q样不行,可以E序内通过response.setAttribute("name",name)来传至下一个页?重定向后览器地址栏URL不变.<img height="20" src="http://www.aygfsteel.com/Emoticons/QQ/lucky.gif" width="19" border="0" alt="" /></p> <p>?servlet文g中重定向<br /> public void doPost(HttpServletRequest request,HttpServletResponse response)<br />        throws ServletException,IOException<br /> {<br />        response.setContentType("text/html; charset=gb2312");<br />        ServletContext sc = getServletContext();<br />        RequestDispatcher rd = null;<br />        rd = sc.getRequestDispatcher("/index.jsp");<br />        rd.forward(request, response);<br /> }</p> <p>2.response.sendRedirect()</p> <p>是在用户的浏览器端工?sendRedirect()可以带参C?比如servlet?name=frank传至下个面,同时它可以重定向至不同的L?且在览器地址栏上?x)出现重定向面的URL.sendRedirect()可以重定向有frame的jsp文g.<img src="/CuteSoft_Client/CuteEditor/images/emfist.gif" align="absMiddle" border="0" alt="" /><br /> <br /> ?servlet文g中重定向</p> <p>public void doPost(HttpServletRequest request,HttpServletResponse response)<br />        throws ServletException,IOException<br /> {<br />        response.setContentType("text/html; charset=gb2312");<br />        response.sendRedirect("/index.jsp");<br /> }</p> <img src ="http://www.aygfsteel.com/jbrg2008/aggbug/172634.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jbrg2008/" target="_blank">林</a> 2008-01-04 08:49 <a href="http://www.aygfsteel.com/jbrg2008/archive/2008/01/04/172634.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>析final,abstract修饰W?/title><link>http://www.aygfsteel.com/jbrg2008/archive/2008/01/04/172632.html</link><dc:creator>林</dc:creator><author>林</author><pubDate>Fri, 04 Jan 2008 00:35:00 GMT</pubDate><guid>http://www.aygfsteel.com/jbrg2008/archive/2008/01/04/172632.html</guid><wfw:comment>http://www.aygfsteel.com/jbrg2008/comments/172632.html</wfw:comment><comments>http://www.aygfsteel.com/jbrg2008/archive/2008/01/04/172632.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jbrg2008/comments/commentRss/172632.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jbrg2008/services/trackbacks/172632.html</trackback:ping><description><![CDATA[<p>1Qfinal修饰W?img src="/CuteSoft_Client/CuteEditor/images/emmessag.gif" align="absMiddle" border="0" alt="" /></p> <p>        有时候,你不希望别h坐n其成Q通过l承你写的类得到他自己所需要的c,怎么办呢Q这个时候你可以在你的class之前加上finalq个修饰府,例如public final class test{……}Q加上了q个修饰W之后,别h在承这个类的话׃(x)~译出错Q提CZq个cM能构建子cR从q我们可以看出,final修饰W和abstract修饰W是不能同时使用的,因ؓ(f)abstractcd以说是专门用来承的Q而finalcd不能用于l承。那么如果是在方法的前面加上final修饰W有什么作用呢Q比如说AcM有个声明为final的方法a(){….}Q那么Bl承A的时候,B׃能覆盖方法a(){….}Q否则编译出错,提示Cannot override the final method from A。此外,如果一个类声明为finalcȝ话,它里面所有的Ҏ(gu)都自动成为finalcd的。自然的Q你肯定?x)问Q如果一个域x为final的时候有什么作用?一个属性声明ؓ(f)final之后Q你不能在对它重新进行赋|否则~译报错QThe final field ×× cannot be assigned。另外,h意,cd明ؓ(f)final的时候,仅仅它的Ҏ(gu)自动变ؓ(f)finalQ而属性则不会(x)?br /> <br /> 2Q抽象类<img src="/CuteSoft_Client/CuteEditor/images/emwink.gif" align="absMiddle" border="0" alt="" /></p> <p>抽象cȝ用处是十分大的,特别是对于OOP而言Q关于抽象类Qȝ几点Q?br /> aQ?nbsp; 抽象cM能实例化Q即不能对其用newq算W;<br /> bQ?nbsp; cM如果有一个或多个abstractҎ(gu)Q则该类必须声明为abstractQ?br /> cQ?nbsp; 抽象cM的方法不一定都是abstractҎ(gu)Q它q可以包含一个或者多个具体的Ҏ(gu)Q?br /> dQ?nbsp; 即一个类中不含抽象方法,它也可以声明为抽象类Q?/p> <img src ="http://www.aygfsteel.com/jbrg2008/aggbug/172632.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jbrg2008/" target="_blank">林</a> 2008-01-04 08:35 <a href="http://www.aygfsteel.com/jbrg2008/archive/2008/01/04/172632.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DaocM的方法是写成static?q是实例Ҏ(gu)?http://www.aygfsteel.com/jbrg2008/archive/2008/01/03/172354.htmlThu, 03 Jan 2008 00:31:00 GMThttp://www.aygfsteel.com/jbrg2008/archive/2008/01/03/172354.htmlhttp://www.aygfsteel.com/jbrg2008/comments/172354.htmlhttp://www.aygfsteel.com/jbrg2008/archive/2008/01/03/172354.html#Feedback5http://www.aygfsteel.com/jbrg2008/comments/commentRss/172354.htmlhttp://www.aygfsteel.com/jbrg2008/services/trackbacks/172354.html
        要是写成静态的Ҏ(gu),?x)不会(x)在多线E中产生异常?而写成实例的,得要每次都new 一个新的实?img src="http://www.aygfsteel.com/CuteSoft_Client/CuteEditor/images/emquestion.gif" align="absMiddle" border="0" alt="" />
        看了q个文章的朋友写下自己想?谢谢!!

2008-01-03 08:31 发表评论
]]>
JAVA法数?/title><link>http://www.aygfsteel.com/jbrg2008/archive/2008/01/01/171997.html</link><dc:creator>林</dc:creator><author>林</author><pubDate>Tue, 01 Jan 2008 08:24:00 GMT</pubDate><guid>http://www.aygfsteel.com/jbrg2008/archive/2008/01/01/171997.html</guid><wfw:comment>http://www.aygfsteel.com/jbrg2008/comments/171997.html</wfw:comment><comments>http://www.aygfsteel.com/jbrg2008/archive/2008/01/01/171997.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/jbrg2008/comments/commentRss/171997.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/jbrg2008/services/trackbacks/171997.html</trackback:ping><description><![CDATA[说明Q所谓魔法数|是指在代码中直接出现的数|只有在这个数Dq的那部分代码中才能明确了解其含义?br /> <br />   法数g代码的可L大大下降。而且Q如果同L(fng)数值多ơ出现时Q到底这些数值是不是带有同样的含义呢Q谁也说不清楚。另一斚wQ如果本来应该用相同数值的地方Q一旦用错了Q也很难发现。因此,需要注意以下几点,极力避免使用法数倹{?br /> <br />   ?不用魔法数|代之以有名字的Static final或者enum?br /> <br />   在Java语言中,Ҏ(gu)名字的值的定义Q可以用用Static final或者enum来声明的?br /> <br />   注意(命名Ҏ(gu))Q在取名时一定要注意增加名字的信息量。比如,?6命名为SIXTEEN是没有意义的?br /> <br />   如果16表示的是h表的一个元素,则应该命名ؓ(f)PRICE_TABLE_MAX。关于命名规则,q要参照本小册子的第6条?br /> <br />   ?原则上,数值就是魔法数?br /> <br />   但是Q?Q作为数l的最下标是l常使用的?br /> <br />   例:(x)for( int i = 0; I < table.leERRORth(); i++ )<br /> <br />   dq里Q读者都?x)认里?是数l的最下标,所以在q里不认?是魔法数倹{?br /> <br />   另外Q?l常被作为变量初始化的缺省|q时候一般也不认?是魔法数倹{?br /> <br />   通过使用有名字的|一斚w可以提高代码的可L,另一斚wQ也可以把变更的地方局部化Q从而提高可l护性?br /> <br />   例子Q?br /> <br />   法数字的例?br /> <br />   int priceTable[] = new int[16]; //ERRORQ这?6I竟有何含义?<br /> <br />   使用了带名字的数值的例子<br /> <br />   static final int PRICE_TABLE_MAX = 16; //OKQ带名字<br /> <br />   int price Table[] = new int [PRICE_TABLE_MAX]; //OKQ名字的含义是很清楚? <img src ="http://www.aygfsteel.com/jbrg2008/aggbug/171997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/jbrg2008/" target="_blank">林</a> 2008-01-01 16:24 <a href="http://www.aygfsteel.com/jbrg2008/archive/2008/01/01/171997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¸</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">质</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">޵</a>| <a href="http://" target="_blank">пѷ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">ڰ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">书</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">տ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>