zoukankan      html  css  js  c++  java
  • Java编程思想学习(三) 初始化与清理

    1. 每个重载的方法都必须有独一无二的参数类型列表。(参数顺序的不同也足以区分两个方法,但不建议这样做,会使代码难以维护。)

    2. 方法重载时,如果可以重载的方法间只是参数类型不同,传入的数据类型(实际参数类型)小于方法中声明的形式参数类型,实际数据类型就会被提升至该方法所接受的类型。 char 型略有不同,如果无法找到恰好接受 char 参数的方法,就会把 char 直接提升至 int 型。( P81 )

    如果传入的实际参数较大,就得通过类型转换来执行窄化转换。如果不这样做,编译器就会报错。即先类型转换,后传入参数。

    3. 要是你没有提供任何构造器,编译器会认为“你需要一个构造器,让我给你制造一个吧”;但假如你已写了一个构造器,编译器就会认为“啊,你已写了一个构造器,所以你知道你在做什么;你是刻意省略了默认构造器。”即编译器此时是不会为你制造一个默认构造器的。

    4. this 关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。

    5. 可能为一个类写了多个构造器,有时可能想在一个构造器中调用另一个构造器,以避免重复代码,可用this 关键字做到。此时,在构造器中,如果为 this 添加了参数列表,将产生对符合此参数列表的某个构造器的明确调用。如:

    public class A{

             A(String s){

    }

             A(String s,int i){

             this(s);// 相当于 A(s);

    }

    }

    然而,需要遵守如下规则:

    ( 1 )尽管可以用 this 调用一个构造器,但却不能在一个构造器中调用两个构造器,即在一个构造器中最多只能调用一个构造器;

    ( 2 )必须将构造器调用置于最起始处,否则编译器会报错;

    ( 3 )除构造器之外,编译器禁止在其他任何方法中调用构造器。

    6. static 方法就是没有 this 的方法。在 static 方法的内部不能调用非静态方法,当然,这不是完全不可能:如果你传递一个对象的引用到静态方法里,然后通过这个引用,你就可以调用非静态方法和访问非静态数据成员了。

    7. Java 中垃圾回收遵守的原则:

    ( 1 )对象可能不被垃圾回收;

    ( 2 )垃圾回收并不等于“析构”;

    ( 3 )垃圾回收只与内存有关。

    如果 JVM 并未面临内存耗尽的情形,它是不会浪费时间去执行垃圾回收以恢复内存的。

    8. 在 C++ 中可以创建一个局部对象(也就是在栈上创建,这在 Java 中行不通),在 Java 中不允许创建局部对象,必须使用 new 创建对象。( Java 对象都在堆上创建,不能在栈上创建 

    9. 在类的内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。

    10. 静态对象的初始化先于非静态对象,静态对象只被初始化一次。

    11. 在声明数组时,编译器不允许指定数组的大小。即这样: int a[10]; 编译器会报错。数组元素中的基本数据类型值会自动被初始化。

    12. switch 与 enum 是绝佳的组合。

  • 相关阅读:
    C#数据结构之串
    DevExpress ChartControl 设置它的标题
    [转]DevExpress GridControl 关于使用CardView的一点小结
    将ImageList中的图片转化成byte数组
    可变参数
    jquery动态移除/增加onclick属性详解
    div中英文无法自动换行的解决办法
    jQuery三种事件绑定方式.bind(),.live(),.delegate()
    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等),NB么?
    关于JS、JQuery、CSS的小知识点
  • 原文地址:https://www.cnblogs.com/benchao/p/5262869.html
Copyright © 2011-2022 走看看