java程序员面试遇到string题如何不凉?

最近看到好多同学都在储备面试知识,以备来年轻松应对面试官,拿到心仪offer,之前好多同学反映遇到string,都只能送给自己一首凉凉。别凉,今天小编就为大家准备了面试中常遇到的string题,让你轻松愉快拿offer~

首先跟大家说说如何创建string~

 

创建字符串较简单的方式如下:

 

String str = "Runoob";
在代码中遇到字符串常量时,这里的值是 "Runoob"",编译器会使用该值创建一个 String 对象。

和其它对象一样,可以使用关键字和构造方法来创建 String 对象。

 

用构造函数创建字符串:

 

String str2=new string("Runoob");
String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:

String s1 = "Runoob";              // String 直接创建
String s2 = "Runoob";              // String 直接创建
String s3 = s1;                    // 相同引用
String s4 = new String("Runoob");   // String 对象创建
String s5 = new String("Runoob");   // String 对象创建

 

字符串长度


用于获取有关对象的信息的方法称为访问器方法。

String 类的一个访问器方法是 length() 方法,它返回字符串对象包含的字符数。

 

连接字符串


String 类提供了连接两个字符串的方法:

string1.concat(string2);

返回 string2 连接 string1 的新字符串。也可以对字符串常量使用 concat() 方法。

 

创建格式化字符串


输出格式化数字可以使用 printf() 和 format() 方法。

String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。

String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。

下面为大家讲讲在java程序员面试中常见的String题

 

1、String类型可以被继承吗?

 


不可以,因为String类型是final类型。
源码如下:
       public final class String 
       implements java.io.Serializable, Comparable<String>, CharSequence { //...... }

 

2、 String 和 StringBuilder、StringBuffer 的三者的区别是什么?


String 类型不可变类(immutable),所以在字符串拼接的时候如果使用 String 的话性能会很低,因此我们就需要使用另一个数据类型 StringBuffer,它提供了 append 方法和 insert 方法可用于字符串的拼接,它使用 synchronized 来保证线程安全。

 

3、String类型和JVM


String 常见的创建方式有两种,new String() 的方式和直接赋值的方式,直接赋值的方式会先去字符串常量池中查找是否已经有此值,如果有则把引用地址直接指向此值,否则会先在常量池中创建,然后再把引用指向此值;而 new String() 的方式一定会先在堆上创建一个字符串对象,然后再去常量池中查询此字符串的值是否已经存在,如果不存在会先在常量池中创建此字符串,然后把引用的值指向此字符串。

 

4、String类型是基础类型吗?

 

基本数据类型包括byte,int,char,long,float,double,boolean,short一共八个
Java.lang.String类是final类型的,因此不能继承,修改这个类.为了提高效率节省空间,应该用StringBuffer类。

5、String类型常用的方法有哪些?可以举例吗?


String类型有十几种,我常用的有以下 3种:
indexOf():查询字符串首次出现的下标位置
lastIndexOf():查询字符串最后出现的下标位置
contains():查询字符串中是否包含另一个字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值