java 中操作字符串都有哪些类?它们之间有什么区别?_Java(基础)面试题帮你查缺补漏...

我们在学习Java的过程中,有的时候不知道自己掌握的如何,这个时候除了多敲代码,还可以找一些面试题来自己回答一下,看看自己的基础到底掌握的怎么样。下面是一些经常被提问的Java基础面试题,希望能够帮助大家查缺补漏。

e56ffcfff46b25f328d26331e5bd457d.png

青岛Java

1、JDK 和 JRE 有什么区别?

答:JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。

JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。

即:JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。

2、== 和 equals 的区别是什么?

答:(1)==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同 。

(2)==是指对内存地址进行比较 , equals()是对字符串的内容进行比较。

(3)==指引用是否相同, equals()指的是值是否相同。

3、两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?

答:不一定。同时反过来equals为true,hashCode也不一定相同。类的hashCode方法和equals方法都可以重写,返回的值完全在于自己定义。

4、final 在 java 中有什么作用?

答:根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。

final类不能被继承,没有子类,final类中的方法默认是final的。

final方法不能被子类的方法覆盖,但可以被继承。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

final不能用于修饰构造方法。

注意:父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。

5、Java 中的 Math.round(-1.5) 等于多少?

答:Math.round(-1.5)的返回值是-1。

注:这道题目考察的主要知识点就是:Math.round方法的返回值类型。

6、String 属于基础的数据类型吗?

答: String类并不是基本数据类,而是一个类(class),是C++、java等编程语言中的字符串。

String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。 String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。

7、Java 中操作字符串都有哪些类?它们之间有什么区别?

主要是:String、StringBuffer和StringBuilder。

区别:String是不可变的对象,对每次对String类型的改变时都会生成一个新的对象,StringBuffer和StringBuilder是可以改变对象的。对于操作效率:StringBuilder > StringBuffer > String。对于线程安全:StringBuffer 是线程安全,可用于多线程。StringBuilder 是非线程安全,用于单线程不频繁的字符串操作使用 String。

8、String str="i"与 String str=new String("i")一样吗?

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

9、如何将字符串反转?

答:1、通过String类的charAt()的方法来获取字符串中的每一个字符,然后将其拼接为一个新的字符串。

2、通过String的toCharArray()方法可以获得字符串中的每一个字符串并转换为字符数组,然后用一个空的字符串从后向前一个个的拼接成新的字符串。

3、通过StringBuiler的reverse()的方法,最快的方式。

4、通过递归的方式,其实有以上的就可以了,但是还是说一下递归,实在是应为这个感觉高大上一点而已。

10、String 类的常用方法都有那些?

答:

ef498a3517116ca06e7dbc75bc14a1ad.png
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值