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

深入了解Java的String

一、从根本上认识java.lang.String类和String池
首先,我建议先看看String类的源码实现,这是从本质上认识String类的根本出发点。从中可以看到:
1、String类是final的,不可被继承。public final class String。
2、String类是的本质是字符数组char[], 并且其值不可改变。private final char value[];
然后打开String类的API文档,可以发现:
3、String类对象有个特殊的创建的方式,就是直接指定比如String x = "abc","abc"就表示一个字符串对象。而x是"abc"对象的地址,也叫做"abc"对象的引用。
4、String对象可以通过“+”串联。串联后会生成新的字符串。也可以通过concat()来串联,这个后面会讲述。
 
5、创建字符串的方式很多,归纳起来有三类:
其一,使用new关键字创建字符串,比如String s1 = new String("abc");
其二,直接指定。比如String s2 = "abc";
其三,使用串联生成新的字符串。比如String s3 = "ab" + "c";
6、Java运行时会维护一个String Pool(String池),JavaDoc翻译很模糊“字符串缓冲区”。String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区。下面是个系统内存示意图:
 
 二、String对象的创建
String对象的创建也很讲究,关键是要明白其原理。
原理1:当使用任何方式来创建一个字符串对象s时,Java运行时(运行中JVM)会拿着这个X在String池中找是否存在内容相同的字符串对象,如果不存在,则在池中创建一个字符串s,否则,不在池中添加。
原理2:Java中,只要使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。
原理3:使用直接指定或者使用纯字符串串联来创建String对象,则仅仅会检查维护String池中的字符串,池中没有就在池中创建一个,有则罢了!但绝不会在堆栈区再去创建该String对象。
原理4:使用包含变量的表达式来创建String对象,则不仅会检查维护String池,而且还会在堆栈区创建一个String对象。
另外,String的intern()方法是一个本地方法,定义为public native String intern(); intern()方法的价值在于让开发者能将注意力集中到String池上。当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并


相关文档:

Java 调用 Windows API 可能性的实现

在 Google 输入 java call win32api 的第一个结果
http://www.jinvoke.com/calling-the-win32-api-from-java
就是我需要的答案。呵呵
看看这个吧
java版任务管理器
java版注册表编辑器
Calling the Win32 API from Java
首先从 http://www.jinvoke.com/calling-the-win32-api-from-java 将 jinvoke下载回来
将 ......

在 Eclipse 中设置 java 虚拟机内存的方法

        在实际的开发中, jvm 默认的内存大小是不够的,需要自定义设置。可按如下的方法进行设置:
        第一、进入到指定运行文件的 run configurations, 就会弹出运行设置对话窗体
        第二、在 ja ......

Java线程学习11.30

Thread.currentThread().getName().equals("xxxx")   这条语句返回一个 bool 型的结果。判断当前运行的进程是否和 xxxx 的名字一样。
定义线程的两种方法:class a1 extends Thread{ }    a1 xiancheng=new a1();
二是:用接口回调技术。 class a1 implements Runnable{ }    a1 ......

java日期转换

/**
  * 处理时间异常 Date to String
  * 如果转换出现异常会给默认值00:00
  * @param time
  * @param sdf
  * @return
  */
 public static  String handleDateParseException(Object time){
  String tempTime = "00:00";
  try{
   ......

Java中的mac计算

          报文鉴别在身份认证中占重要位置,是认证系统的一个重要环节,在金融和商业系统中广泛应用。
          报文鉴别常用报文鉴别码(Message Authentication Code,即MAC)作为鉴别的基础,
     ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号