java赋值运算符题目_【Java面试考点4】java基础之运算符

本文详细介绍了Java中的22种运算符,分为算术、赋值、比较、逻辑和三元运算符五大类。并深入探讨了运算符的使用细节及注意事项,如加法运算符在不同上下文的应用、逻辑与和短路与的区别、equals和hashcode方法的重要性等。
摘要由CSDN通过智能技术生成

4.运算符

4.1Java运算符有多少个?

Java运算符分为5类22种:

5类:算术运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符

22种:

算术运算符(7种):+,-,*,/,%,++,--

赋值运算符(5种):=,+=,-=,*=,/=,%=

比较运算符(6种):==,>,=,<=,!=

逻辑运算符(3种):&&,||,!

三元运算符(1种):数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;

4.2Java运算符的注意点

1.“+”:对于数值来说,那就是加法;对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。任何数据类型和字符串进行连接的时候,结果都会变成字符串;对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。

2.“=”: 只有变量才能使用赋值运算符,常量不能进行赋值; 复合赋值运算符其中隐含了一个强制类型转换。

相关面试题

1.请你讲讲&和&&的区别?

&运算符有两种用法:(1)按位与;(2)逻辑与。

&&运算符是短路与运算。

逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。

2.请你说明符号“==”比较的是什么?

“==”对比两个对象基于内存引用,如果两个对象的引用完全相同(指向同一个对象)时,“==”操作将返回true,否则返回false。“==”如果两边是基本类型,就是比较数值是否相等。

3. 请你解释Object若不重写hashCode()的话,hashCode()如何计算出来的?

Object 的 hashcode 方法是本地方法,也就是用 c 语言或 c++ 实现的,该方法直接返回对象的 内存地址。

4. 请你解释为什么重写equals还要重写hashcode?

HashMap中,如果要比较key是否相等,要同时使用这两个函数!因为自定义的类的hashcode()方法继承于Object类,其hashcode码为默认的内存地址,这样即便有相同含义的两个对象,比较也是不相等的。HashMap中的比较key是这样的,先求出key的hashcode(),比较其值是否相等,若相等再比较equals(),若相等则认为他们是相等的。若equals()不相等则认为他们不相等。如果只重写hashcode()不重写equals()方法,当比较equals()时只是看他们是否为同一对象(即进行内存地址的比较),所以必定要两个方法一起重写。HashMap用来判断key是否相等的方法,其实是调用了HashSet判断加入元素 是否相等。重载hashCode()是为了对同一个key,能得到相同的Hash Code,这样HashMap就可以定位到我们指定的key上。重载equals()是为了向HashMap表明当前对象和key上所保存的对象是相等的,这样我们才真正地获得了这个key所对应的这个键值对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值