易截截图软件、单文件、免安装、纯绿色、仅160KB

Java 中String类的终极总结


一、不变模式:
一个字符串对象创建后它的值不能改变。
String str1="hello";//创建一个对象hello,不会变;
System.out.println(str1);
str1+=" world!";//两个字符串对象粘粘,系统其实创建了一个新的对象,把Str1的指向改了,指向新的对象;hello就                     //变成了垃圾;
System.out.println(str1);
//如果一直这样创建会影响系统的效率;要频繁的改变字符串对象的值就用StringBuffer来描述;
StringBuffer sb=new StringBuffer("[");
sb.append("hehe");
sb.append("]");//append();不会制造垃圾,真正在改sb的值;
System.out.println(sb);
二、对象池
首先要明白,Object obj = new Object();
obj是对象的引用,它位于栈中, new Object() 才是对象,它位于堆中。
可以这样理解obj是拴在氢气球上的绳子,new Object() 是氢气球,我们通过对象的引用访问对象,就像我们那着绳子氢气球才不会跑掉。
创建一个Stirng对象,主要就有以下两种方式:
java 代码
String str1 = new String("abc");    
Stirng str2 = "abc";  
     虽然两个语句都是返回一个String对象的引用,但是jvm对两者的处理方式是不一样的。对于第一种,jvm会马上在heap中创建一个String对象,然后将该对象的引用返回给用户。对于第二种,jvm首先会在内部维护的strings pool中通过String的 equels 方法查找是对象池中是否存放有该String对象,如果有,则返回已有的String对象给用户,而不会在heap中重新创建一个新的String对象;如果对象池中没有该String对象,jvm则在heap中创建新的String对象,将其引用返回给用户,同时将该引用添加至strings pool中。注意:使用第一种方法创建对象时,jvm是不会主动把该对象放到strings pool里面的,除非程序调用 String的intern方法。看下面的例子:
java 代码
String str1 = new String("abc"); //jvm 在堆上创建一个String对象   
  
 //jvm 在strings pool中找不到值为“abc”的字符串,因此   
 //在堆上创建一个String对象,并将该对象的引用加入至strings pool中   
 //此时堆上有两个String对象   
Stirng str2 = "ab


相关文档:

四个有用的Java过滤器

一、使浏览器不缓存页面的过滤器     
import javax.servlet.*;    
import javax.servlet.http.HttpServletResponse;    
import java.io.IOException;    
   
/**   
* 用于的使 Browser 不 ......

Java版支付宝接口开发

Java版支付宝接口开发
需求:调用支付宝接口的接口并集成到商城
调用支付宝接口所需要的“支付宝合作伙伴id”和“支付宝安全校验码”公司都给提供好了,支付宝官方那里也有该接口的“实物商品交易服务集成技术文档”及相关的DEMO源码。公司让我用JAVA来写,终于暂时不用再写JS了,嘿嘿&hel ......

【转】Java double 相加的怪事情

(本文转载自:http://hi.baidu.com/edilyxin/blog/item/27dc152aba3e10315343c19c.html)
问题的提出:  
编译运行下面这个程序会看到什么?  
public   class   Test{  
          public   static  ......

Java数据库连接池类源码

来自:http://www.cnblogs.com/shiyangxt/archive/2008/07/30/1256813.html
环境:MyEclipse
 
数据库:mysql
 
首先新建Java项目,然后新建两个类,一个数据库连接池类,一个测试类。
 
分别命名ConnectionPool,ConnectionPoolTest。
 
然后新建一个配置文件,命名:dbpool.properties。
&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号