Java细节
八刀一闪
这个作者很懒,什么都没留下…
展开
-
标签
类似goto的用法,可用于直接跳出2层循环。 public class Tag { public static void main(String[] args) { u:while(true) { v:for(int i = 0; i if (i break v; else break u; } } } }原创 2012-02-09 17:16:39 · 267 阅读 · 0 评论 -
匿名内部类的构造器
匿名内部类没有名字所以没有构造器,但是可以使用实例初始化的方法达到相同的目的。 public Dog getDog () { return new Dog() { int j; { j = 6; } }; }转载 2012-02-26 20:58:31 · 593 阅读 · 0 评论 -
final小结
1)修饰数据 a:基本数据类型的值不能改变。 b:引用数据类型的引用不能改变,但其值可以改变。final引用做 参数时主要用于匿名内部类。 c:不能因为数据时final的就认为在编译时就一定知道其值。 final int c = rand.nextInt(); 2)修饰方法: 该方法不能被重写,但可以重载。 3)修饰原创 2012-02-12 22:54:00 · 253 阅读 · 0 评论 -
协变返回类型
协变返回类型:子类方法重写父类方法,但返回类型是相应父类方法 返回值的子类(接口也行)。 class Something { } class Bone extends Something{ } class Animal { public Something eat() { System.out.println("eat so原创 2012-02-16 20:20:56 · 581 阅读 · 0 评论 -
对象的创建过程
假设有个Dog类 1)即使没有显示声明(也不可以显示声明),构造方法实际上也是static的。当首次创建Dog类型的对象或者调用其静态域或方法时。java解释器查找类路径,定位Dog.class。 2)加载Dog.class。执行静态初始化动作(只初始化一次)。 3)用new Dog()创建对象时在堆上分配内存空间。 4)该内存空间清零,基本类型数据设置为默认值,引用为null。 5)调转载 2012-02-09 17:03:49 · 232 阅读 · 0 评论 -
注解
1)@override:该方法必须重写,防止导出类重载基类方法而不是重写。 class Color { public void print() { System.out.println("Color"); } } class Red extends Color{ @Override public void print() { System.out.println("Red");原创 2012-02-12 22:42:13 · 234 阅读 · 0 评论 -
继承小结
1)创建继承类的对象,也会创建一个基类对象封装在其中。原创 2012-02-12 22:33:50 · 215 阅读 · 0 评论 -
方法调用绑定
方法调用绑定:将方法调用同方法主体关联起来。 a)前期绑定:在程序执行前绑定。c语言就是前期绑定的。 b)后期绑定:在运行时根据对象的类型绑定。java中出了static,final 方法,剩下的都是后期绑定的。原创 2012-02-13 20:38:42 · 434 阅读 · 0 评论 -
finalize方法的说明
1)当垃圾回收时调用finalize()。但是垃圾回收不一定何时发生所以不能用指望该方法清理对象。JVM不到内存耗尽的时候是不会调用垃圾回收的。 2)对于用特殊方式创建(本地方法)的对象,需要用finalize()中调用相应的方法释放内存。转载 2012-02-09 17:12:03 · 408 阅读 · 0 评论 -
this相关
1)this 表示对"调用该方法的对象"的引用。 2)调用成员方法时,编译器做了一些幕后工作。把“把所操作对象的引用”作为第一个参数传递给了方法。static方法没有this。 Apple a = new Apple(); a.show(); --->Apple.show(a); 3) 返回this public class ReturnT转载 2012-02-09 16:27:20 · 298 阅读 · 0 评论 -
接口中的域
接口中的域自动为static,final的 interface Shop { int id = 1; void showId(); } class ShoeShop implements Shop { public void changeId() { //The final filed Shop.id cannot be assigned //this.id =原创 2012-02-20 16:40:23 · 479 阅读 · 0 评论