Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7092
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 41
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-28 21:26
个人简介

You're Beautiful

文章分类

全部博文(4)

文章存档

2013年(4)

我的朋友

分类: Java

2013-11-07 07:57:18


1.    类的加载开始于第一次访问该类静态成员的时候。因为构造器默认是静态的,所以通过构造器创建类,实际上也是访问类的静态成员。
2.    若类是从基类继承而来,则首先加载基类。若基类也是从其他类继承而来,则一直向上查找到根基类,首先加载根基类的静态成员,并对其初始化,再向下执行加载,直到当前类。
3.    创建当前类的对象。在任何动作之前,首先将存储空间初始化成二进制0。然后对象中所有基本类型被初始化为默认值(0, false, null。调用基类构造器(过程同上)。
4.    按次序初始化变量,执行构造器其他部分。


顺便说一句final

final的作用跟C里面的const类似。可以修饰类、方法和数据。
修饰数据时,数据为常量。
修饰引用时(个人认为类似const修饰指针),引用的指向不可变,但指向地址所存的内容(值)是可以变的。  
修饰类时类不可以被继承。
修饰方法时方法不可以被覆盖。
这里说一下private。private方法默认是final的,但是在继承类的时候,发现子类中“覆盖”一个private方法是不会报错的。实际上这不是真正的覆盖。因为基类的private成员对子类来说是不可见的,子类并不知道基类有这样一个private方法。所谓的”覆盖“,其实是在子类中创建了一个与基类中方法同名同参数的新方法,与基类中的方法并无关系。
阅读(153) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~