Java SE 11 Sliver学习笔记(第三章)

Java SE 11 sliver资格考试相关

第三章 演算子と判定構造

間違えた:3, 5, 6, 10, 12, 13, 20

間違えし易い:3, 19

分からない:2

回顾
  1. -号有两种:1.减法用 2.翻转正负值用(前面有空格也可以)

  2. 类型转换问题。

    1. 注意范围!!如果超出范围也会报错。例如byte a = 128;//byte 范围是-128~127
    2. 注意类型!!整数默认型为int, 浮点小数型默认double。范围来讲,小转大ok,大转小因为会面临丢失精度问题,因此不行。
    3. 数值演算时,演算符号两边的operand必须是相同类型,如果是不同类型,范围小的类型会自动转换为大的类型。如果大转小,不做cast表达,会报编译错误。
  3. >, >=, <,<=这四种运算符,只能比较数值的大小,不能用作true和false的比较。

  4. &&&的区别,&&只看左边,一旦左边为false右边不会执行。

  5. 演算子的优先顺序:括号,自增,自减是最优先的,x++要比++x优先级高。

  6. java的同一性和同值性的判断问题。

  7. 判断是否同值用equals方法。如何判断两个instance是否同值可以通过重写object类的equals方法来完成。

  8. 这道题将instance类型转换为object类,因此使用的equals方法不是自己类中重写的equals方法,而是object类中的方法,定义如下,是用来判断同一性的,因此会返回false。

    1
    2
    3
    public boolean equals(Object obj){
    return (this == obj)
    }
  9. 当x为null以外的参照值时,x.equals(null)只能返回false。

  10. 常量池(Constant Pool)相关,java中为了避免负荷,当同样文字列的literal出现时,会使用之前生成的instance的参照,因此用==比较结果会返回true。

  11. new的时候会强制生成新的instance,因此和指向常量池内存的变量有不同的值,通过==比较会返回false。

  12. String类的intern方法的问题。intern是返回常量池内存中已有的文字列,为再利用准备的方法。因此即使参照不同,返回的文字列内容是相同的,比较时会返回true。

  13. else if中 else和if间是不能改行的。如果改行了,意味着在else中加入新的if条件。

  14. switch的条件的返回值类型为:char,short,Character,Short,String,byte,int,Byte,Integer,Enum。简单来讲分三类

    1. int型以下的整数型和他们的包装类。
    2. 文字和文字列。
    3. 列举型(枚举型)。
  15. switch的case值需满足以下三个条件:

    1. 和条件式的返回值相同类型或者是有互换性的类型。
    2. 是定数,在编译时能确定值。
    3. 不能为null。
  16. switch中如果没有break关键字,将会执行之后的所有case的处理,包括default中的处理。case中什么都不写意味着什么处理都不做,并不会报编译错误。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2020-2021 Joe
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信