• 数据类型注意事项


    为什么 byte 类型取值是 -128 ~ 127 ?

    -125 -126 -127

    原码: 1111 1101 1111 1110 1111 1111

    反码: 1000 0010 1000 0001 1000 0000

    补吗: 1000 0011 1000 0010 1000 0001

    因为他们的补吗依次减了一,所以推出-128的补码为: 1000 0000 为-0,但在计算机用 -128 显示


    byte b1 = 3,b2 = 4, b;

    b = b1 + b2;

    b = 3 + 4;

    问:哪句是编译失败的呢?为什么呢?

    答:b=b1+b2;这句编译失败,因为byte和byte的进行运算的时候会提升为int类型,

    当int类型赋值给byte类型时候会损失精度,所以会编译失败.而b=3+4;不会编译错误,

    因为Java中有常量优化机制,在编译的的时候直接把3和4的结果赋值给b.


    byte by = 130;有没有问题?有问题如何解决?结果是多少呢?

    答:有问题,因为 byte取值范围是-128~127,如果赋值130给by就需要进行强制转换,但会损失精度,结果为-126


    byte b = 10;

    b++;

    b = b + 1;

    哪句是编译失败的呢?为什么呢?

    答:b=b+1;这句会编译失败,因为byte和int数据进行运算时候会把byte类型提升为int类型,

    当int的类型数据赋值给byte类型b会损失精度,所以编译失败,如果需要赋值,需要进行强制转换.

     

     


    &&和&的区别? ||与|的区别?

    * 最终结果一样。

    * &&具有短路效果。左边是false,右边不执行。

    &是无论左边是false还是true,右边都会执行

    * ||具有短路效果,左边为true,右边不执行

     


    最有效率的算出2 * 8的结果

    System.out.println(2 << 3);

     


    请自己实现两个整数变量的交换(不用第三方变量)

     

    int x = 10 ;

    int y = 5;

    x = x ^ y; // 10 ^ 5

    y = x ^ y; // 10 ^ 5 ^ 5 y = 10

    x = x ^ y; // 10 ^ 5 ^ 10 x = 5


    写出程序结果

    public static void main(String[] args) {
    
    Integer i1 = new Integer(97);
    
    Integer i2 = new Integer(97);
    
    System.out.println(i1 == i2);
    
    System.out.println(i1.equals(i2));
    
    System.out.println("-----------");
    
     
    
    Integer i3 = new Integer(197);
    
    Integer i4 = new Integer(197);
    
    System.out.println(i3 == i4);
    
    System.out.println(i3.equals(i4));
    
    System.out.println("-----------");
    
     
    
    Integer i5 = 97;
    
    Integer i6 = 97;
    
    System.out.println(i5 == i6);
    
    System.out.println(i5.equals(i6));
    
    System.out.println("-----------");
    
     
    
    Integer i7 = 197;
    
    Integer i8 = 197;
    
    System.out.println(i7 == i8);
    
    System.out.println(i7.equals(i8));
    
    }
    

    结果为:

    false
    true
    -----------
    false
    true
    -----------
    true
    true
    -----------
    false
    true

  • 相关阅读:
    一個SQL排序的問題[轉]
    行數據轉換成列數據
    asp页面转化成htm静态页面
    DataGrid 中間隔色的實現
    asp.net里导出excel表方法汇总[轉]
    C#中计算两个时间的差
    asp.net面试的题目
    页面间传输中文的乱码解决方法
    NickLee 多層菜單
    Add an onclick event in the DataGrid for any Column
  • 原文地址:https://www.cnblogs.com/loaderman/p/6403437.html
Copyright © 2020-2023  润新知