zoukankan      html  css  js  c++  java
  • Java 审查基调

    1& &&的差别

    两个都有逻辑与的功能。

    可是所不同的是。当&两边的表达式不是boolean类型的时候,&具有位与的功能;&&是短路与,当推断到前一个表达式为false的时候,将不会再去计算后面的表达式。

    如:

    int i = 0;
           System.out.println((1==0)&(0==(i++)));
            System.out.println(i);


    输出是:

    false

    1

    可是,

     int i = 0;
           System.out.println((1==0)&&(0==(i++)));
            System.out.println(i);

    输出是:

    false

    0

    -----------------------------------------------------------------------------------------------------------------------------------------------

    2、一个java源文件里能否够包括多少个类?

    回答:能够,可是仅仅能有一个public的类,而且类名与文件名称一致。

    -----------------------------------------------------------------------------------------------------------------------------------------------

     

    3、怎样跳出多重嵌套循环?

    两种方法:

    1)在循环前面能够设置一个标号,格式就是 名字+冒号。如

           ok:
               for (int i = 0; i <2;i++) {
    for(int j = 0; j < 7; j++) {
    if(m == 10) {
    breakok;
    }else{
    m++;
    }
    }
    }
               System.out.println(m);


    2)设置标志位。让外层循环收到内层循环的影响。

    boolean breakFlag =false;
    for (int i = 0; i< 2 && (!breakFlag); i++) {
    for(int j = 0; j < 7; j++) {
    if(j == 6) {
    breakFlag= true;
    break;
    }else {
    m++;
    }
    }
    }

    -----------------------------------------------------------------------------------------------------------------------------------------------

    4switch是否能用于byte long 或者string上?

    回答:switchexpression,expression仅仅能是一个整数表达式或者枚举常量。整数表达式能够是int类型或者Integer包装类型。 bytechar,short 都能够隐含转换成int,因此这三个基本类型以及它们的包装类型都能够。longstring都不能。

    -----------------------------------------------------------------------------------------------------------------------------------------------

    5 short m = 1;m = m+1;m +=1;  有差别么?都能通过编译么?

    回答:m = m+1 ,因为1int型,所以相加时结果自己主动提升到int类型,把int类型的结果赋给short类型的m

    编译不通过,必须加强制类型转换。而 m += 1;则不一样。

    +=java规定的运算符,编译器内部会进行特殊处理。相当于内部已经是强制类型转换了。因此编译通过。

    -----------------------------------------------------------------------------------------------------------------------------------------------

    6  char t= '张三';这句有错么?

    回答:有错,由于char类型变量使用 Unicode来存储字符,Unicode中包括了中文汉字,所以存储没问题,问题是。char类型变量本身是2个字节,一个Unicode2个字节,由于char 仅仅能存储一个汉字。               

     

    7、使用final 修饰一个变量的时候。是引用不能变,还是引用的对象不能变?

    回答:引用变量不能变。如final StringBuilder sb = newStringBuilder("ddd");

    假设是下一句是sb = new StringBuilder("cccc");是肯定出现编译错误的。可是能够运行例如以下语句:

      sb.append("ddd") ;

     

     8== equal的差别?

    回答:== 是用于比較两个变量的值是不是相等。如基本类型或者 两个引用变量。

      也仅仅能用==操作符,

    不能用equal操作符。

    equal操作符是比較两个独立对象的内容是不是相等。

                 String a = new String("dd");
                 String b = new String("dd");
                 System.out.println(a==b);
                 System.out.println(a.equals(b));


          将会输出:

          false

          true

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    angularjs中的指令
    git笔记
    webpack.config.js
    webpack开发react常用插件和依赖
    angularjs中的分页指令
    angularjs中的排序和过滤
    react学习
    gulp学习
    Javascript 判断变量类型的陷阱 与 正确的处理方式
    Fn.bind.apply() 解决 new 操作符不能用与 apply 或 call 同时使用
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4849395.html
Copyright © 2011-2022 走看看