zoukankan      html  css  js  c++  java
  • 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之后可以

  • 相关阅读:
    Cryptography中的对称密钥加解密:fernet算法探究
    HTTPS的工作原理
    最近要写的博客
    浅谈路由器软硬件架构
    组管理、权限管理、定时任务调度、磁盘分区
    matplotlib数据可视化
    tensorflow实现简单的卷积神经网络
    tensorflow实现简单的感知机
    tensorflow实现简单的自编码器
    区域生长算法(手动选取种子点)MATLAB
  • 原文地址:https://www.cnblogs.com/lcl15/p/6395900.html
Copyright © 2011-2022 走看看