JAVA面试题总结-Java基础(1-5)

本文详细介绍了Java开发中的基础概念,包括JDK、JRE和JVM的关系及其在软件开发与运行中的角色。同时,探讨了Java中的‘==’和‘equals’方法的区别,以及何时需要重写hashCode()方法。此外,还解释了final关键字的作用,并给出了Math.round()方法在处理负数时的具体示例。
摘要由CSDN通过智能技术生成

1.JDK 和 JRE 有什么区别?

JDK:java开发工具包

JRE:java运行时环境

JVM:java虚拟机

JDK包括JRE,JRE包括JVM,如果你要编写java程序,需要JDK,如果只需要运行java程序,只安装JRE就可以了。

JVM是java实现跨平台的最核心部分,所有的java程序都会被javac编译成为.class字节码文件,比照jre/lib目录下的类库在虚拟机上运行后通过返回机器对应的机器码呈现给用户。

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

对于“==”,如果作用于基本数据类型,则直接比较值,如果作用于引用数据类型,则比较对象的内存地址。

对于“equals”,equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否为同一个对象。

如果没有重写equals,那么跟“==”相同,比较对象的内存地址。

重写后的equals比较的是对象的内容。

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

不对,首先这个问题是在重写后的hashCode和equals方法的前提下,hashCode()方法底层是生成hash算法进行比较,效率比equals高,不同的对象的hash值可能会冲突,所以一般比较对象会先用hashCode进行比较,如果二者的hashCode不相等,则两个对象肯定不相等,如果二者的hashCode相等,再用equals进行比较,equals相等则对象相等,阿里有一个规范:重写equals方法必须重写hashCode方法。

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

final作用的对象不同会产生不同的效果。

修饰类,则该类不能被继承;

修饰方法,则该方法不能被重写;

修饰变量,则该变量不能被修改。

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

-1

math类中有三个取整有关的方法:ceil floor round

ceil:天花板,表示向上取整,例:Math.ceil(1.5)的结果为2,Math.ceil(-1.5)的结果为-1

floor:地板,表示向下取整,例:Math.floor(1.5)的结果为1,Math.floor(-1.5)的结果为-2

round:圆,表示四舍五入,底层算法为数字+0.5再向下取整,例如:Math.round(1.5)的结果为2,Math.round(-1.5)的结果为-1

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值