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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 高级I/O函数之sendfile函数[通俗易懂]

    高级I/O函数之sendfile函数[通俗易懂]sendfile函数在两个文件描述符之间传递数据(完全在内核中操作),从而避免了内核缓冲区和用户缓冲区之间的数据拷贝,效率很高,被称为零拷贝。函数定义为:#include&lt;sys/sendfile.h&gt;ssize_tsenfile(intout_fd,intin_fd,off_t*offset,size_tcount);in_fd参数是待读出内容的文件描述符,out…

    2022年5月10日
    36
  • 操作系统进程有若干个状态,若一个进程_进程和线程的概念

    操作系统进程有若干个状态,若一个进程_进程和线程的概念第二章进程管理-进程、线程进程的概念进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。(线程是调度的基本单位)程序:是静态的,是一个存放在磁盘里的可执行文件,是一系列指令的集合进程:是动态的,是程序的一次执行过程

    2025年8月28日
    5
  • 八核版9500odin3线刷通刷以及root教程

    八核版9500odin3线刷通刷以及root教程1.先准备好odin3最新版或者汉化版以及通刷包(教程最后提供下载朱雀www.zhuquewl.com)2.跟着我的步骤走,除非你RP不佳,反正我刷机成功了3.教程音量减键+HOME键+开机键出现如下画面:  4.出现如上画面按下音量加键   5.电脑上打开odin3选择你的固件,我放在桌面上(文件放哪随便了),连上手机,端口号能读出[0:COM11],读不出重新连接

    2022年7月21日
    17
  • vue v-if 多条件_vue条件渲染

    vue v-if 多条件_vue条件渲染v-if在模板中,可以根据条件进行渲染。条件用到的是v-if、v-else-if以及v-else来组合实现的。示例代码如下:<divid="app"><p

    2022年7月31日
    87
  • 两地三中心架构[通俗易懂]

    两地三中心架构[通俗易懂]转载自:http://blog.csdn.net/Love_Taylor/article/details/73603672

    2022年6月29日
    26
  • 计算距离矩阵的方法_距离矩阵计算

    计算距离矩阵的方法_距离矩阵计算给定一个 N 行 M 列的 01 矩阵 A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=|i−k|+|j−l|输出一个 N 行 M 列的整数矩阵 B,其中:B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(A[i][j],A[x][y])输入格式第一行两个整数 N,M。接下来一个 N 行 M 列的 01 矩阵,数字之间没有空格。输出格式一个 N 行 M 列的矩阵 B,相邻两个整数之间用一个空格隔开。数据范围

    2022年8月9日
    10

发表回复

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

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