程序员面试干货来啦,今天小编就先为大家整理出5道大厂面试时常见关于 String 的面试题。看看你能答对几道题呢!多多掌握此类面试题,就会增加面试通过的机率哦,后续还有其他类的面试题,请持续关注哟!
189.String 类为什么是 final 的 答: 1 ) 为了效率。若允许被继承,则其⾼度的被使⽤率可能会降低程序的性能。 2 )为了安全。 JDK 中提供的好多核⼼类⽐如 String ,这类的类的内部好多⽅法的实现都不是 java 编程语⾔本身编写的,好多⽅法都是调⽤的操作系统本地的 API ,这就是著名的 “ 本地⽅法调⽤ ” ,也只有这样才能做事,这种类是⾮常底层的,和操作系统交流频繁的,那么如果这种类可以被继承的话,如果我们再把它的⽅ 法重写了,往操作系统内部写⼊⼀段具有恶意攻击性质的代码什么的,这不就成了核⼼病毒了么? 不希望别⼈改,这个类就像⼀个⼯具⼀样,类的提供者给我们提供 了 , 就希望我们直接⽤就完了,不想让我们随便能改,其实说⽩了还是安全性,如果随便能改了,那么 java 编写的程序肯定就很不稳定,你可以保证⾃⼰不乱改, 但是将来⼀个项⽬好多⼈来做,管 不了别⼈,再说有时候万⼀疏忽了呢? 他也不是估计的, 所以这个安全性是很重要的, java 和 相⽐,优点之⼀就包括这⼀ 点。 190.String 类型是基本数据类型吗?基本数据类型有哪些 1 ) 基本数据类型包括 byte 、 short/char 、 int 、 long 、 float 、 double 、 boolean 2 ) java.lang.String 类是引⽤数据类型,并且是 final 类型的,因此不可以继承这个类、不能修改这个类。为了提⾼效率节省空间,我们应该⽤ StringBuffer 类 创建⼏个 答: 两个或⼀个, ”xyz” 对应⼀个对象,这个对象放在字符串常量缓冲区,常量 ”xyz” 不管出现多少遍,都是缓冲区中的那⼀个。 New String 每写⼀遍,就创建 ⼀个新的对象,它⼀句那个常量 ”xyz” 对象的内容来创建出⼀个新 String 对象。 如果以前就⽤过 ’xyz’ ,这句代表就不会创建 ”xyz” ⾃⼰了,直接从缓冲区拿。 192. 下⾯这条语句⼀共创建了多少个对象: 答:对于如下代码: 第⼀条语句打印的结果为 false ,第⼆条语句打印的结果为 true ,这说明 javac 编译可以对字符串常量直接相加的表达式进⾏优化,不必要等到运⾏期去进⾏加法 运算处理,⽽是在编译时去掉其中的加号,直接将其编译成⼀个这些常量相连的结果。 题⽬中的第⼀⾏代码被编译器在编译时优化后,相当于直接定义⼀个 ”abcd” 的字符串,所以,上⾯的代码应该只创建了⼀个 String 对象。 写如下两⾏代码, 最终打印的结果应该为 true 。 193.String 是*基本的数据类型吗 答: 不是 。 Java 中的基本数据类型只有 8 个: byte 、 short 、 int 、 long 、 float 、 double 、 char 、 boolean ;除了基本类型( primitive type )和枚举类型 ( enumeration type ),剩下的都是引⽤类型( reference type )。 希望这些面试题对你有所帮助!下一期我们会有关于其他大厂面试题。别忘了关注我们的公众号哦,预防走丢! 最后愿你前程似锦,在冬深 在初春 在夏至在秋末 在码上未来! 码上未来,成就你更好的未来!