java面试题基础篇

mac2024-11-24  35

Java 基础

1. JDK 和 JRE 有什么区别?

JDK是java开发工具包

JRE是运行环境

默认JDK里面有JRE

简单的来说如果运行java册程序,jre即可满足。如果编写家java程序并且要运行,那么需要JDK

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

有人说==是比较值的 equals是比较对象的

其实我觉得这是不准确的,在equals源码中 equals用的也是== 那么但是他是把对象转变成ascli码

然后进行了长度的比较,如果长度不相同那就直接返回false 如果相同在一个一个循环着比较。

那么说了equals的比较方式,那么就可以推断出他没有比较地址。比如说我创建一个对象为Integer aa=222 再创建一个对象Integer bb=222 那么他们是相等的  aa == bb 是不相等的。但是如果int在-127 128 之间那么他们是相等的因为他们有一个常量池

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

不一定,hashCode()算法是通过hash取余的,比如5除2余1 11除以2也是余1 那么11和5 肯定是不一样的呀

4. final 在 Java 中有什么作用?

修饰的类不能被继承 方法不能被重写  变量变成常量

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

-1.0

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

String 类型不是数据类型  java数据类型分为 基本数据类型和引用数据类型。

基本数据类型:bety 、short、char、int、double、float、long、boolean

引用数据类型:数据 类 接口

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

String :String底层是final修饰 不可变的 是线程安全的

StringBuffer :可变的,效率String要高,线程安全的。

StringBuilder:线程不安全的,可变的,线程不安全

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

不一样 ,String str ="i" 分配到常量池

new String("i")分配到堆

9. 如何将字符串反转?

StringBuffer 或者 StringBuilder 调用reverse();方法

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

equlse() indexOf() length()  split()  charAt()  subString()  getBety()  replace()

 

 

最新回复(0)