JavaSE之Java基础(4)

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 class Java8Tester {

    public String 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();
        }
        return tempStr;
    }
}

18、&和&&的区别?

相同点:&和&&都可以用作逻辑与的运算符,表示逻辑与

不同点:

  • &不具备短路功能,&两边都要计算,而&&具有短路功能,即&&左边为false结果就为false,右边不用计算;
  • &还可以表示按位与操作,而&&不行。

19、在Java中,如何跳出当前的多重嵌套循环?

java中使用带有标号的break语句跳出多重循环,即在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出。

20、你能比较一下Java和JavaSciprt吗?

java:面向对象,需要编译,再进行运行,强类型;

javascript:基于对象和事件驱动,解释型语言,弱类型。

 

posted @ 2019-03-28 01:25  刘牛奶  阅读(233)  评论(0编辑  收藏  举报