• Java 基础面试题


    问题一 :byte b1 = 3,b2 = 4,b; b = b1 + b2  ;  b = 3 + 4;那句会编译失败,为什么?

    解析:byte b1 = 3,b2 = 4,b; 是定义了三个byte类型的变量

            b = b1 + b2; 程序会先将类型转换位int类型,再相加,所以类型出错

            b = 3 + 4 ; 常量,是先计算结果,再看结果是否超出byte范围,超出者报错

    总结:两个变量相加,首先要类型w问题 ,常量是先计算,,然后看结果是否在赋值的范围内,在则不报错 b = 

    问题二 : byte b = 130,有没有问题?如果想让赋值正确,可以怎么做?起结果是多少

    解析:计算机的运算都是在补码上进行的,首先要得到补码

       A:获得130的二进制

        00000000 00000000 00000000 10000010

      整数的补码,原码,反码都一样

        B :做截取操作,换成byte类型

             10000010    但这是补码

        C : 求出原码

                            符号位             数值位

            补码             1                  0000010

            反码              1                 00000001

           原码               1                  1111110

    所以结果为-126

    问题三 : short s = 1 ; s = s+1;  与short s = 1; s+=1;

    两个代码有没有问题,为什么?

    解析:

          扩展的赋值运算其实隐含了一个强制类型转换

        s += 1;等价于 s = (s的数据类型)(s+1);

    问题四:交换两个数据的值

         A:用中间变量去接受

         B: 用位异或实现,一个数据与另一个数据异或两次,等于自己

         C :用变量相加

         D: 一句话搞定    b = (a+b) -(a =b)  

    问题五:byte ,long ,String 可以作为switch的表达式吗?

    byte可以    long不行    String在JDK7之后可以

  • 相关阅读:
    ViZDoom深度预测(Depth Prediction)
    刨根问底U3D---从Profile中窥探Unity的内存管理
    关于Android真机调测Profiler
    初探Stage3D(三) 深入研究透视投影矩阵
    初探Stage3D(二) 了解AGAL
    初探Stage3D(一) 3D渲染基础原理
    unity3d优化总结篇
    Unity数据存储路径总结
    CREATE A ENERGY / HEALTH BAR HUD
    CREATE A LOADING SCENE / SPLASH SCREEN
  • 原文地址:https://www.cnblogs.com/lcl15/p/6395900.html
Copyright © 2020-2023  润新知