欢迎光临散文网 会员登陆 & 注册

面试官觉得你基本功扎实

2022-12-26 13:21 作者:任何事人挺好的认同  | 我要投稿

课代表总结了String的信息👍👍👍


视频内容:

1️⃣String是基本数据类型吗?✍️

2️⃣String可以被继承吗?是可变的吗?📄

3️⃣String str=""与String str=new String(""i"")—样吗?🏷️

4️⃣String str = new String("abc");创建了几个对象?📑

5️⃣String和byte[]两者之间如何转换?🔖


视频内容:

1️⃣String是基本数据类型吗?✍️

String不是基本数据类型,基本类型有8种有int、float、long.double等,而String属于对象


00:06




2️⃣String可以被继承吗?是可变的吗?📄

String是final类型的不可基层,也可变,

不可变体现在,例如:String s= "Hello" s += " world!"; s的指向的内存起始地址已经改变

而自己声明一个user对象,包含name,age属性,name和age的值改变了,但是声明的user引I用执行的其实地址是不变的,而String类型的引用执行的起始地址会变化。那么这就是到导致,只要值改变了,String就是新的对象,造成很大的内存开销,所以就有了StringBuffer和StringBuild

StringBuffer和StringBuilder最大的区别在于,StringBuffer是线程安全的,而StringBuilder是非线程安全的,但StringBuilder的性能却高于StringBuffer,所以在单线程环境下推荐使用StringBuilder,多线程环境下推荐使用StringBuffer。


00:25




3️⃣String str=""与String str=new String(""i"")—样吗?🏷️

不一样,因为内存的分配方式不一样。String str="i"的方式,Java虚拟机会将其分配到常量池中;而String str=new String("i"")则会被分到堆内存中。


4️⃣String str = new String("abc");创建了几个对象?📑

创建了两个,"abc"本身创建在常量池,通过new又创建在堆中


5️⃣String和byte[]两者之间如何转换?🔖

String->byte[]通过String类的getBytes方法; byte[l]->String通过new String(byte[])构造器


面试官觉得你基本功扎实的评论 (共 条)

分享到微博请遵守国家法律