JAVA编程思想读书笔记四(控制程序流程)

    技术2022-05-11  69

    1、关于别名效应

          对对象赋值实际上是拷贝的对象的引用,而引用会指向同一个对象。这会带来“别名效应”。

         当把对象传递给方法的时候,也会产生别名效应。比如下面的代码中的例子:

    class letter()...{        char c;}

    public class PassObject()...{        static void f( letter y )...{                y.c = 'z';         }         public static void main( string[] args)...{                letter x = new letter();                x.c = 'a';                System.out.println("x.c="+x.c);                f...{x};                System.out.println("y.c="+y.c)         }}        在这里传的还是reference。

    别名效应是个很复杂的问题,在后面还会讲到。

    2、正则表达式

      expect()方法

    3、对象的相等性

         比较对象的相等性,使用equals() 方法,但是在默认的 equals()方法中比较的还是对象的引用,只是在大多数的类中系统已经重写了这个方法,用来比较对象的相等性。

    4、短接

         处理逻辑运算时,只要准确的知道整个表达式的结果,会自动结束整个表达式,这种现象叫做“短接”。

         java中不提供运算符重载。

    5、 while ( x = y ) 在JAVA中在等待一个boolean 值,而这个表达式不是 boolean 值,它更不会将int 转化为 boolean 值,所以编译器会自动报错。

    6、类型转换

        cast 的意思是“将东西浇到模子里”

        JAVA 允许对除 BOOLEAN 之外的任何基本类型的数据任意转换,而boolean 值根本不能转换。类是不允许转化的。要让他们相互转换,必须有特殊的方法。JAVA中所有的对象都可以在自己的类系中上下传递。

         如果对比 int 小的数据类型(也就是char,byte 和 short 型的数据)进行数学和位运算时,这些值会自动被提升为int 在进行运算。所以运算的结果仍然是int ,所以当你把这个值赋给更小的变量时,必须进行类行转换。    java中没有sizeof()运算符,因为JAVA中的所有的数据类型在所有的机器语言上相同的。

    7、程序的控制

          GOTO 是 JAVA 中的保留字,但是并没有用进去。而JAVA 中有 LABLE(标签)。

     

     

      


    最新回复(0)