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
相关文档:
最近公司碰到需要用图表的形式显示一些数据,我就开始到网上查询,查到了jfreechart和amcharts,这两者我都实现过了,jfreechart最后生成图片,但是图片效果不是我想要的,然后又研究amcharts 它的效果确实很好,而且官方网站上还有好些例子可供下载,网址是:www.amcharts.com
(想要完成一个amcharts图形需要swfobjects. ......
1.接口的方法默认都是public 的,方法只能是public&abstract,方法的实现不能小于接口方法的visibality.
接口中的域默认是public static final的。
一个类可以实现很多个接口。
2.内部类具有外围类(enclosing class)的所有元素的访问权。
3.匿名类如果希望是有一个在其外部定义的对象, ......
第一种:效率高
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
第二种:效率低,以后尽量少使用!
Map map = new HashMap();
......
使用下面简单的Java程序测试命令行参数格式。
public class Test {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println(args[i].length() + ":" + args[i]);
}
}
}
编译后打开cmd命令提示符输入如下命令并查看结果:
java Test a aa ......
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.regex ......