Java面试--String

面试题:Java的String类型为什么是不可变的(百度面试题)
面试题:获取www.baidu.com最后一个点的内容”com”(蘑菇街面试题)
面试题:String a=”abc” String b=”a” + “bc” a == b?(网易面试题)

一、String基础部分
建议先看下基础篇:Java基础系列(十二)Object、String、StringBuffer
代码:

String a="abc"; String b="a"+"bc";
if(a == b) {
    System.out.print("true");
}
else {
    System.out.print("false");
}
//输出为:true
//只生成一个字符串,保存在字符串常量池中


二、Java的String类型为什么是不可变的
String类中的成员变量:

private final char value[];
private final int offset;
private final int count;

执行了String s = “ABCabc”; 这句代码之后,真正的内存布局应该是这样的:
Java面试--String_第1张图片
value,offset和count这三个变量都是private的,并且没有提供setValue, setOffset和setCount等公共方法来修改这些值,所以在String类的外部无法修改String。
三、不可变的好处
因为字符串是不可变的,所以是多线程安全的,同一个字符串实例可以被多个线程共享。这样便不用因为线程安全问题而使用同步。字符串自己便是线程安全的。
在大量使用字符串的情况下,可以节省内存空间,提高效率。
四、String截取字符串
代码:

String str = "www.baidu.com";
int i = str.lastIndexOf('.');
String str1 = str.substring(i+1,str.length());
System.out.println(str1);

Java面试的完整博客目录如下:Java笔试面试目录

转载请标明出处,原文地址:https://blog.csdn.net/weixin_41835916 如果觉得本文对您有帮助,请点击支持一下,您的支持是我写作最大的动力,谢谢。

你可能感兴趣的:(Java笔试面试,Java笔试面试,java,string)