String基础面试题

你知道有哪些避免空指针的方法?

1、字符串比较,常量放前面

2、用String.valueOf()代替toString方法

3、强制类型转换,提前判断非空

什么是包装类,有什么作用?

因为Java是面向对象的语言,基本数据类型无法作为一个对象使用,比如说集合里面放元素要求的就是一个对象,这个时候Java就为每一个基本数据类型提供了一个对应的包装类。基本数据类型通过自动装箱可以转换成包装类,可以通过操作包装类对象来解决基本数据类型中涉及到对象操作的问题。

什么是自动拆箱和自动装箱?

自动拆箱:包装类中提供了xxxvalue方法,将包装类转换成基本数据类型;自动装箱:包装类中提供类valueOf方法,将基本数据类型转换成包装类。

你怎么理解Java中的强制类型转换和自动类型提升?

强制类型转换就是将一种数据类型转强制转换成另一种数据类型。最常见于基本数据类型中的大数据类型转换成小的数据类型,比如说int转换成byte类型,这时候容易丢失精度,而且也要考虑小的数据类型的取值范围,如果要转换的数超出这个数据范围则会报错。自动类型提升的话,就是一种小转大的情况,比如byte和int运算时,byte会自动提升为int类型再运算。

String常用方法有哪些?

1、subString用于截取字符串

2、trim用于去除字符串首位空白

3、indexOf 用于获取指定字符第一次出现的索引

4、valueOf返会字符类型

String是可变的吗?

不是,因为string在声明的时候,内部是fianl修饰的,而且String类型的数据是存储在字符串常量池中,常量池中的数据不可变。

String字符串如何进行反转?

使用StringBuffer和StringBuilder的reverse()方法

为什么不能用+拼接字符串?

字符串String内部提供改变自身的方法,任何对String类型的操作都是在创建新的字符串。通过+拼接的新字符串是新的字符串对象。

StringBuild和StringBuffer的区别?

StringBuild和StringBuffer都是用来操作字符串的,一般用于字符串拼接。stringBuild是线程不安全的,stringbuffer是线程安全的,因为其内部使用synchronized关键字修饰。考虑线程安全使用stringBuffer考虑效率使用StringBuild,因为Stringbuffer里面做了很多线程同步的方法。

你可能感兴趣的:(String基础面试题)