【秋招冲刺-每日打卡】应届生JAVA岗-每日5道高频面试题【Day2】-基础篇(2)_每天打卡两道题

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

追问1: short s1 = 1; s1 = s1 + 1;存在问题吗,存在则具体说明,short s1 = 1; s1 += 1;存在问题吗?

s1 = s1 + 1存在问题,无法通过编译。因为1是int类型在JAVA语言中占4个字节,而short类型在JAVA中占2个字节,使用short类型接收,则表明需要强制类型转换即写成:想要编译通过需要写成: s1 = (short) (s1 + 1);

short s1 = 1; s1 += 1;写法没有错误,可以正常编译,"+="是一个复合运算符,JAVA编译器会对它进行特殊处理,它包含了隐式的强制类型转换,相当于s1 = (short)s1 + 1;

在这里插入图片描述

二: &和&&的区别?

1、&运算符有两种用法:

(1)按位与: 具体的含义是参与运算的两数各对应的二进制位相与,只有对应的两个二进位均为1时,结果位才为1 ,否则为0。

(2)逻辑与: 要求左右两边的条件都为true时,返回的结果才为true,否则为false。

在这里插入图片描述

2、&&运算符也叫短路与运算,特点如下:

(1)、如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。只有运算符两边的条件都为真时,才会返回true。

(2)、它的运用场景很多,合理运用可以避免空指针,如判断用户名不是null且不为空字符串时,使用username != null &&!username.equals(“”),运算符的条件顺序不能调换,否则会出现空指针。

(3)、逻辑或运算符(|)和短路或运算符(||)的差别也是相似,短路或运算符(||)只要运算符左边的条件为真,则不运行右边的条件判断,直接返回true。

三: Math.round(2.5) 等于多少?Math.round(-2.5)等于多少?

round方法的作用是四舍五入,Math.round(2.5)的返回值是3,Math.round(-2.5)的返回值是-2。四舍五入的原理是在参数上加0.5然后进行下取整(向下取整表示取更小的值)。

在这里插入图片描述

四: switch(condition)中,condition的值可以是哪些类型?

1、Java5以前,switch(condition)中,condition只能是byte、short、char、int(包括它们的包装类型)类型的值。

2、Java5开始,Java中引入了枚举类型,condition也可以是enum类型的值

3、Java7开始,condition还可以是字符串(String),但是长整型(long),浮点数(float)到目前为止还不支持。

在这里插入图片描述

五: 当两个对象x、y的equals方法为true时,他们的hashCode方法返回的值可以是不同,这个说法正确?

这个说法是错误的!当x.equals(y)时,它们的hash code也应该相同。对于equals和hashCode方法Java中有以下的规定:

1、如果两个对象相同(equals方法返回true),那么它们的hashCode值一定要相同;

2、如果两个对象的hashCode相同,它们equals并不一定相同,只能说明两个对象在散列存储结构中,存放在相同的一个位置。

3、如果违背了上面两点的规范,那么在使用容器的时候,在Set集合中可能出现相同的对象,增加元素的效率会大大下降,频繁的哈希冲突会导致性能大大的下降。

追问1: 重写equals方法应该注意哪些事项

如果重写了一个对象的equals方法,那么一定要重写这个对象的hashCode方法,目的是为了保证equals方法相同的对象拥有相同的hashCode,《Effective Java》书籍中写到重写equals需要注意以下事项:

1、自反性: 针对非空的x,使用x.equals(x)应该返回true

2、对称性: 针对x,y,如果x.equals(y)为true,那么y.equals(x)也应该为true

3、传递性: 如有x,y,z,存在x.equals(y)和y.equals(z)都为True,那么x.equals(z)也应该为true

4、一致性: 如果比较对象未发生改变,则反复调用equals方法应该返回同样的结果

5、对于任意的非空x,x.equals(null)应该返回false

追问2: 重写equals方法应该大概包含哪些内容

一个好的equals方法重写应该具有以下的特点:

1、使用==操作符检查”,判断参数是否为这个对象的引用”;

2、使用instanceof操作符检查”参数是否为正确的类型”;

3、对于类中的关键属性,检查参数传入对象的属性是否与之相匹配;

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

需要这份系统化资料的朋友,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值