zoukankan      html  css  js  c++  java
  • 一些java的基础知识

    前言

    (原标题好像有些问题,我想说的是本文不是什么实际项目中一定会应用的知识,知识基础概念问题,)关于java的基础知识,只是在大二初学时看得多些,今天看了看张孝祥老师的视频,突然发现自己根本不了解Java很多东西,有些是忘了,而有些以前根本不知道,拿来分享一下,这些你曾注意吗?(牛人就不要往下看了)

    1.“&”和“&&”的区别分析

    “&”和“&&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用后者连接,当“&&”的左边为false,则将不会计算其右边的表达式。“|”和“||”的区别与“&”和“&&”的区别一样。 

    public class TestAnd 
    {
    public static void main(String[] args)
    {
    int x=0;
    int y=3;
    if(x!=0 && y==y/x)
    System.out.println("y = "+y);
    }
    }


     
    上面例子中,由于while语句的判断条件中的第一个布尔表达式是不成立的,程序就不会判断第二个布尔表达式的值,这就是“短路”。如果两个表达式之间用“&”来连接,如果正好碰到上面所示的特殊情况,程序运行时就会出错

    2.浮点数在内存中的表示

    这个在计算机原理和操作系统中看见的比较多,很基础的,例如分析0x50000000所对应的浮点数

    image

    2.“>>”和“>>>”是啥玩意

    前者是位移运算的右移,这个不难,那后面的又是什么,区别在哪里?

    任何信息在计算机中都是以二进制的形式保存的,&,|,^除了可以作为逻辑运算符,也可以做为位算符,它们对两个操作数中的每一个二进制位都进行运算。
    只有参加运算的两位都为1,&运算的结果才为1,否则就为0。
    只有参加运算的两位都为0,|运算的结果才为0,否则就为1。

    image

     

    只有参加运算的两位不同,^运算的结果才为1,否则就为0。

    我们可以对数据按二进制位进行移位操作,java的移位运算符有三种:
    <<  左移
    >>  右移
    >>> 无符号右移

    public class ShiftTest 
    {
      public static void main(String [] args)
      {
    int x=0x80000000;
    int y=0x80000000;
        x=x>>1;
        y=y>>>1;
        System.out.println(“0x80000000>>1 = ” + Integer.toHexString(x));
        System.out.println(“0x80000000>>>1 = ” + Integer.toHexString(y));
      }
    }

    运行结果如下:
    0x80000000>>1 = c0000000
    0x80000000>>>1 = 40000000

    十六进制与二进的对比
        0x80000000 =1000,0000, 0000, 0000, 0000, 0000, 0000, 0000
        0xc0000000 =1100,0000, 0000, 0000, 0000, 0000, 0000, 0000
        0x40000000 =0100,0000, 0000, 0000, 0000, 0000, 0000, 0000

    3.Java中多维数组是不不是规则矩阵形式?

    解释:java 中并没有真正的多维数组,只有数组的数组, Java中多维数组不一定是规则矩阵形式。比如下面两个数组:

    imageimage

    下面还有两个思考题,不难但是你能否毫不犹豫的说出答案?

    思考题1:

    某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数?
    答案:(x+5)/6。这种算法还可用在查看留言板的分页显示上: 其中x是总共的留言数,6是每页显示的留言数,结果就是总共有多少页。

    思考题2:

    假设你要让x的值在0至9之间循环变化,请写出相应的程序代码。
    答案:

    int x=0; 
    while(true)
    {
      x = (x+1)%10;
    }



  • 相关阅读:
    Spring Bean Expression Language(EL)
    Spring-web-security Issue (Access is denied. User must have one of the these roles: ACTUATOR)
    数据库学习笔记day04
    数据库学习笔记day03
    数据库学习笔记day01+day02
    Java学习笔记--线程day01
    Java学习笔记-Java文件操作流
    第一次月测题
    第一次月测内容疑问总结
    java核心API
  • 原文地址:https://www.cnblogs.com/avenwu/p/2367304.html
Copyright © 2011-2022 走看看