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之后可以

  • 相关阅读:
    一些Vim使用的小技巧
    virtualbox centos安装增强工具和Centos与VirtualBox共享文件夹设置
    (转) centos7 RPM包之rpm命令
    (转)Navicat_12安装与破解,亲测可用!!!
    (转)2019年 React 新手学习指南 – 从 React 学习线路图说开去
    (转)react 项目构建
    (转)python3:类方法,静态方法和实例方法以及应用场景
    (转)SQLAlchemy入门和进阶
    (转)面向对象(深入)|python描述器详解
    (转)CentOS 7.6 上编译安装httpd 2.4.38
  • 原文地址:https://www.cnblogs.com/lcl15/p/6395900.html
Copyright © 2011-2022 走看看