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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 设置npm镜像_nodejs安装淘宝镜像

    设置npm镜像_nodejs安装淘宝镜像将npm默认仓库地址改为淘宝镜像

    2025年6月17日
    5
  • js获取url参数值的几种方法

    js获取url参数值的几种方法一 字符串分割分析法 functionrequ paras varurl location href varparaStrin url substring url indexOf 1 url length split amp varparaObj for i 0 j paraString i

    2025年8月1日
    4
  • Android系统签名生成[通俗易懂]

    Android系统签名生成[通俗易懂]Android系统应用添加系统签名在开发的过程中,如果需要设置当前的应用为系统应用,需要两步:在对应的AndroidManifest.xml文件中将“android:sharedUserId”设置为”android.uid.system”。如下所示:<?xmlversion=”1.0″encoding=”utf-8″?><manifestxmlns:android=”http://schemas.android.com/apk/res/android”pack

    2022年6月21日
    31
  • mysql经典50道练习题

    mysql经典50道练习题问题及描述:–1.学生表Student(SID,Sname,Sage,Ssex)–SID学生编号,Sname学生姓名,Sage出生年月,Ssex学生性别–2.课程表Course(CID,Cname,TID)–CID–课程编号,Cname课程名称,TID教师编号–3.教师表Teacher(TID,Tname)–TID教师编号,Tname教师姓名–4.成绩……

    2022年9月18日
    2
  • gg修改器如何使用修改迷你世界_gg游戏修改器迷你世界

    gg修改器如何使用修改迷你世界_gg游戏修改器迷你世界gg修改器脚本大全迷你世界设置回点发布时间:2020-08-20来源:脚本之家点击:->Imail的所有邮局信息,比如用户,密码都实际上都是存储在计算机注册表当中的,所以只需要打开注册表就可以看到Imail里的所有信息,包括用户的密码.细节:Imail将企业邮局信息全部存储在:HKEY_LOCAL_MACHINE\SOFTWARE\Ipswitch\IMail\Domains\\U…

    2025年9月15日
    6
  • zookeeper入门教程_ZooKeeper的事件机制原理

    zookeeper入门教程_ZooKeeper的事件机制原理zookeeperwatcher架构zookeeper 配置中心分布式ID分布式锁集群搭建数据一致性协议:zab协议Zookeeper Leader选举Observer角色及其配置watcher架构客户端首先将Watcher注册到服务器,同时将Watch对象保存到客户端的Watch管理器中。当Zookeeper服务器监听到的数据发生变化时,服务器会通知客户端,接着客户端的Watch管理器会触发相关的Watcher来回调响应处理逻辑,从而完成整体的数据发布/订阅流程。javaAPIJava

    2022年8月9日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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