16、String、StringBuilder和StringBuffer的区别
String类是final的,不可变,StringBuilder和StringBuffer可变;
大部分情况下的执行效率:StringBuilder > StringBuffer > String,但是类似String str = "abc"+"def"这种情况下,String的效率最高;
String是线程安全的,因为String类是final的,StringBuffer也是线程安全的,StringBuilder不是线程安全的。
总结一下:
String适用于少量字符串操作的情况;
StringBuilder适用于单线程下进行大量操作的情况;
StringBuffer适用于多线程下进行大量操作的情况。
17、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
public classJava8Tester {publicString translate(String str) {
String tempStr= "";try{//按照ISO-8859-1进行解码
byte[] b = str.getBytes("ISO-8859-1");//按照GBK重新进行编码
tempStr = new String(b, "GBK"); tempStr=tempStr.trim();
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}returntempStr;
}
}
18、&和&&的区别?
相同点:&和&&都可以用作逻辑与的运算符,表示逻辑与
不同点:
&不具备短路功能,&两边都要计算,而&&具有短路功能,即&&左边为false结果就为false,右边不用计算;
&还可以表示按位与操作,而&&不行。
19、在Java中,如何跳出当前的多重嵌套循环?
java中使用带有标号的break语句跳出多重循环,即在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出。
20、你能比较一下Java和JavaSciprt吗?
java:面向对象,需要编译,再进行运行,强类型;
javascript:基于对象和事件驱动,解释型语言,弱类型。