本篇主要整理关于 特殊的封装数据类型String 一些常见的面试题,大多数都是本人亲身经历过,回来总结出来的,用于学习交流,基本比较偏基础。
有更好的解决方式,欢迎留言~
1)String 是基本数据类型吗?
不是。
具体可以点击:Java是特殊的包装类数据(String)
2)String 是不是可变的?
String是final类型的,不可变。
具体可以点击:不可变的数据类型包装类值
3)如何比较两个字符串的值(内容)一样,以及两个字符串是否同一对象?
- 比较两个字符串值,也就是咱们平常所说的内容,比如String a = “abc”;String b =“abc”;这里是采用equals()方法;
- 比较是否同一对象,也就是说是同一个地址的引用,这里用"=="。
“==”和equals()方法的区别请点击:Java基础之equals和==的区别(源码分析)
地址:https://blog.youkuaiyun.com/Soinice/article/details/92704533
4)switch 中可以使用 String 吗?
JDK 1.7之前是不支持的,JDK 7及其以上版本的switch可以使用String类型。
5)String str = new String("abc");创建了几个对象,为什么?
创建了两个,"abc"本身创建在常量池中,通过new方法又创建在堆中。
6)Java基础之String,StringBuilder,StringBuffer三者的区别
请点击:https://blog.youkuaiyun.com/Soinice/article/details/84784585
7)String 可以被子类继承吗?
因为String是final类型,所以不能被继承。
8)可以自定义 java.lang.String 类并使用吗?
可以自定义java.lang.String类并编译成功,但不能被加载使用。
9)Java中String 与 byte[]两者之间如何相互转换?
String 转换 byte[] 通过String类的getBytes方法;byte[] 转换 String通过new String(byte[])构造器。
10)Java基础之String 与 int两者之间如何相互转换?
请点击:https://blog.youkuaiyun.com/Soinice/article/details/94333789
11)Java基础之 String.trim() 究竟去掉了什么?
请点击:https://blog.youkuaiyun.com/Soinice/article/details/84638146
12)String str1 = “abc”;String str2 = "abc"; str1 ==str2的结果是什么?
true;
这里除了讲了==的用法,还讲了String是个特殊的封装类,详情点击:特殊的包装类数据(String)的内部工作