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
相关文档:
第一种:效率高
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();
......
以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名、移动文件的目的。不过后来经常发现问题:File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来干脆弃用该方法,自己实现一个copy方法,问题倒是再也没有出现过。
昨天老板同学又遇到这个问题,File#rena ......
Basic concepts in OOP
Encapsulation:隐藏实现过程,对外提供公开一致的接口、使软件易于更新与维护。
Polymorphism:一个事物自动获得另一事物的状态行为的机制。
Inheritance:一个类自动获得另一个类的属性或者方法的过程。
1.类的结构
类名
&nb ......
如今发现java越来越难找工作了,一个大重庆既然招聘java的公司不到3家,并且要求还高呢。突然感觉向我们这样从学校培训出来的,学历也不是好高的,真的活不下去了。这世道,明明中国这么缺软件开发的为什么,我们还是没得机会被公司录用呢。凄凉。 ......