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

  • 相关阅读:
    CS224n, lec 10, NMT & Seq2Seq Attn
    CS231n笔记 Lecture 11, Detection and Segmentation
    CS231n笔记 Lecture 10, Recurrent Neural Networks
    CS231n笔记 Lecture 9, CNN Architectures
    CS231n笔记 Lecture 8, Deep Learning Software
    CS231n笔记 Lecture 7, Training Neural Networks, Part 2
    pytorch坑点排雷
    Sorry, Ubuntu 17.10 has experienced an internal error
    VSCode配置python插件
    tmux配置与使用
  • 原文地址:https://www.cnblogs.com/lcl15/p/6395900.html
Copyright © 2011-2022 走看看