Java String 字符串处理疑点再解
华仔在网上阅过诸多关于String的文章,仍是有疑在心中不解,遂寻Jack求惑。
Jack道:何惑不解?拿与我面前便可。
华仔手于心,却拿不出String这玩意...Jack貌如大师一叹,将String呈于他面前。
“String中文名为'字符串',如此而已;身之血液,能量之载体。”
1、简述String与StringBuffer的异同。
一个是非可变对象,另一个是可变对象,StringBuffer于内存堆,并由来自常量池的String任意拼装,无论何时何地。
2、String与char[]、byte[]的联系,如何转换。
String testStr = "test中";
char[] c = testStr.toCharArray(); //注:char为16位‘中’可以存放,此转换是安全的.
byte[] b=testStr.getBytes(); //注:byte位8位,此转换存在潜在威胁.
String是为char组成的串,byte则为该串的ASCII码.
3、详细说明以下语句在JVM中的处理过程。
1.StringBuffer str=new StringBuffer(“TEST”);
2.str+=”DEMO”;
首先检测常量池是否有"TEST",否,则构造一个String:"TEST";将"TEST"再用于构造str,之后会报错于句2;
其实以上语句不会通过编译.
注: StringBuffer也是为char组成的串,只是该串在StringBuffer改变时长度进行扩充,而String改变时其中的char[] 是重新构造,这就是 变与不变之谜啦.
4、如何设置字符串的字符集编码。
String charSetStr=new String(b,"GBK");
b=charSetStr.getBytes();
charSetStr=new String(b,"UTF-8");
好了,谁可以告诉华仔,以下代码段①,②哪个效率更优呢,Jack?
I、
①、String result=”hello”+”world”;
②、StringBuffer result=new String().append(“hello”).append(“world”);
II、
①、StringBuffer result= new StringBuffer();
for(int i=0;i<100000;i++){
result.append(“hello”);
}
②、StringBuffer result= new StringBuffer(10);
for(int i=0;i<1
相关文档:
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
2008 年 6 月 24 日
原文地址: http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0806wangys/
本文介绍 IBM FileNet P8 4.0 Platform 提供的 Content Java API。首先对 FileNet P8 Content Engine 和 API 进行概要介绍, 并说明了一些基本概念,随后详细介绍了 FileNet Content Engine提供的基于 EJB ......
import java.applet.*;
import java.awt.*;
import java.io.*;
import java.net.URL;
import java.util.*;
public class Typewriter4 extends Applet implements Runnable
{
AudioClip hit, cr, ding ;
boolean alreadyRun = false,
& ......
我现在是大二的学生,学的是电子商务专业,考虑到现在就业压力大,所以就自己自学了Java,以后想往Java程序员方向发展,这也给自己多条出路,现在Java SE 快学完了,但是不幸的是我陷入了深深的苦恼中,那就是学了后面,总忘记前面,我现在学到了GUI编程,马上就要动手开始项目了,就是聊天, 坦克大战的项目,一写项目就感 ......