前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java面试之操作符

Java面试之操作符

原创
作者头像
黄桂期
修改2018-07-20 20:30:00
3550
修改2018-07-20 20:30:00
举报
文章被收录于专栏:土豆专栏土豆专栏

根据网上的一些面试经,整理出来的一些资料,希望大佬们多多指点~

  • &操作符和&&操作符有什么区别?
  1. (&&)如果第一个表达式是false,那么运算结果就是false,第二个表达式没有必要一定运行,这被称为短路。
  2. (&)要将两个表达式计算结束之后,才会返回结果,也就是无论第一个表达式是什么结果,第二个表达式都会运行
  • a = a + b 与 a += b 的区别?
  1. =:赋值运算符,在编译器将右边的表达式结果计算出来后,和左边的变量类型比较精度,如果左边的变量精度低于右边的结果的精度,编译器会显式的报错,告诉程序员去强制转型。(若a精度类型弱于b,a = a + b出错,编译检查报错)最后将表达式的结果复制到变量所在的内存区
  2. +=:暂且称之为运算符,编译器自动隐式直接将+=运算符后面的操作数强制装换为前面变量的类型,然后在变量所在的内存区上直接根据右边的操作数修改左边变量内存存储的二进制数值最后达到和赋值运算符相同的目的。与前者相比,由于后者是位操作,效率也较前者高
  • 3*0.1 == 0.3 将会返回什么?true 还是 false?

false,类型不一致

  • float f=3.4; 是否正确

不正确,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;

  • short s1 = 1; s1 = s1 + 1;有什么错?

对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。

备注:问题整理来源于唐尤华

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档