java表达式陷阱[通俗易懂]

java表达式陷阱

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

以下是一些常见的面试java问题的表达,我将造成直接的形式附加目光。

问题1:
 int a = 10;
        int b = a + (a = 5) + a + (a = 10);
        System.out.println(b);//b = 30


问题2:

   int i = 1;
        i = (i=i+(i+(i=2)+i)+i)+3;
        System.out.println(i);//i = 11


问题3:

 int a = 1;
        int b = 2;
        System.out.println((a = 3) + (b = 4) + a*b);//19


问题4:

System.out.println(-11 % -7);//-4     注:模运算中,第一个操作数提供结果值的符号。第一个和第二个操作数的绝对值取模后作为结果值的绝对值

问题5:

 int i = 1;
        System.out.println(i+++i+++i+++i++);//10    注:1+2+3+4 = 10

问题6:

  int i = 1;
        System.out.println(i++ + ++i+i++ + ++i);//12    注:1+3+3+5 = 12

问题7:

 int i = 1;
        int j = i+++(i=1)+i+++(i=1)+i++;
        System.out.println(j);//j = 5        注:j = 1+1+1+1+1

问题8:

 int a = 10;
        int b = 10;
        double c = 10.0;
        System.out.println(a == b);//true
        System.out.println(a == c);//true

问题9:

System.out.println(3.0*10 == 30.0);//true
        System.out.println(3.141*10 == 31.41);//true
        System.out.println(3.14*10 == 31.4);//false        注:3.14*10 = 31.400000000000002
        System.out.println(3.1415*10 == 31.415);//false        注:3.1415*10 = 31.415000000000003

问题10:

java会将范围在-128~+127(byte的范围)的数放在一个静态数组中缓存,所以仅仅要在此范围内的装箱指向的都是这个数组中的对象,而在此范围外的则需new
        Integer a = 128;
        Integer b = 128;
        Integer c = 127;
        Integer d = 127;
        System.out.println(a == b);//false
        System.out.println(c == d);//true

问题11:

  byte a = 1;
//        byte a = 128//报错。注意byte的范围为-128~127
        byte b = 1;
        a = (byte) (a+1);
        b++;
        System.out.println(a==b);//true

问题12:

System.out.println(true | false & false);//true        注:与运算比或运算优先级高

问题13:

 int a = 10;//0000 0000 0000 0000 0000 0000 0000 1010
        System.out.println(a<<1);//10*2=20
        System.out.println(a<<2);//10*2^2=10*4=40
        System.out.println(a<<32);//10        左移32位(int的大小)之后。回归原来的值
        System.out.println(a<<32L);//10        不会转型。右側操作数只提供左移位数
        long b = 10L;
        System.out.println(b<<1);//20
        System.out.println(b<<2);//40
        System.out.println(b<<64);//10         long为8字节,64位。所以须要左移64位才干循环一圈回到原点
        System.out.println(b<<64L);//10
        byte c = 1;
        System.out.println(c<<1);//2
        System.out.println(c<<2);//4
        System.out.println(c<<8);//256        这里须要注意。c为byte类型,移位操作的操作数最小要求是int类型。byte会转为int
        System.out.println(c<<32);//1        能够把c当成int型


问题14:

  int a = 10;
        a = a<<10;
        a = a<<22;
        int b = 10;
        b = b<<32;
        System.out.println(a);//0        注:第一步左移10位,第二步移动的a并不是原始的a,而是a左移10位之后的a,这次左移22位之后把非零位移到边界之外了,补零之后值变为0
        System.out.println(b);//10        回归原始的10

问题15:

 int a = 10;
        double b = 9.5;
        System.out.println(a>b ? a : b);//10.0        结果会转成double型
        System.out.println(a>b ? 1 : false);   //2         尽管boolean不能转成int,可是自己主动装箱之后能够转成object

问题16:

int a = 1;
        a+=a+=a++;
        System.out.println(a);//3

问题17:

int a = 1;
        a += 3L;//不报错
//        a = a+3L;//报错,高类型转低类型
        System.out.println(a);
        
        int b = 1;
        b += 3.5;            //复杂的算术表达式,自己主动型高意愿变低型
        System.out.println(b);//结果4代替4.5

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116700.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 手机端有没有好用的图片识别文字工具值得推荐?

    手机端有没有好用的图片识别文字工具值得推荐?图片转文字,用到的就是OCR识别技术,针对网络上复杂字体实现精确识别功能,经常用于社交、电商、学习等场景。传统的将图片识别文字的方式选择手动书写,随着AI智能技术的应用,以OCR智能识别工具由于使用简单、转写效率高逐渐代替传统的手动书写。下面给大家分享三款超好用的图片转文字工具,看看你喜欢的有没有上榜。1、微信提取文字微信基本上是现在手机中必装软件,很多人仅用微信用来日常聊天,实际上很多小功能也是非常好用。今天给大家介绍微信提取文字的方法。第一步:打开好友对话框,找到需要识别的图片。第二步:点击右下

  • 原码,补码,二进制减法计算_二进制的原码和补码

    原码,补码,二进制减法计算_二进制的原码和补码这篇博客从一道题说起,已知x = (1&lt;&lt;31)-3,求x&amp;-x?这里面考察了二进制的减法,减法也就牵涉了原码补码的一些概念。这里进行下梳理。 一。原码,补码概念1.原码就是早期用来表示数字的一种方式。一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码例如:假设机器是32位系统,in…

  • role &#39;PLUSTRACE&#39; does not exist

    role &#39;PLUSTRACE&#39; does not exist

  • 反三角函数在线计算机,反三角函数(反正弦,反余弦,反正切,反余切,反正割,反余割)在线计算器_三贝计算网_23bei.com…[通俗易懂]

    输入已知数据点计算按钮,可求出对应的角度值、弧度值、反正弦arcsin、反余弦arcos、反正切artan、反余切arcot、反正割arsec、反余割arcsc等值。为限制反三角函数为单值函数,将反正弦函数的值y限在-π/2≤y≤π/2,将y作为反正弦函数的主值,记为y=arcsinx;相应地,反余弦函数y=arccosx的主值限在0≤y≤π;反正切函数y=arctanx的主值限在-π/2余…

  • spring源码系列(二)——毁三观的spring自动注入

    spring源码系列(二)——毁三观的spring自动注入比如提到spring的自动注入作为一个java程序员肯定自信无比了解;但是笔者要说的自动注入可能会和你理解有很大出入。首先搞明白什么是自动注入,自动注入也可以叫做自动装配(springboot也有一个自动装配但是我认为翻译的不够准确,springboot的应该叫做自动配置和这里说的自动注入是两回事,笔者不是什么大牛或者权威;所以读者如果你坚持认为springboot也叫自动装配那也无可厚非,只…

    2022年10月31日
  • 阻止中文输入时触发input事件

    阻止中文输入时触发input事件做限制输入框可输入最大的长度和实时匹配输入框数据时遇到了坑——当中文输入时input事件也会被触发,即假设限制的是2个字符,你要输入社会人的“社(she)”,就会直接被截取,输入框填充文本sh。或者是在中文输入法时也会一直去调接口,匹配数据,影响了页面的性能!代码如下:$(document).on(‘input’,’input’,function(){console.log(‘限制…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号