您的位置:首页 > 编程语言 > Java开发

java创建对象过程

2013-12-15 21:45 375 查看
Java创建对象过程:

先创建静态成员变量——>再创建静态模块——>

1. 所有的类都是在对其第一次使用时,动态加载到JVM中。当首次创建类型为Dog的对象时,或者Dog类的静态方法,静态属性域首次被访问时,java解释器查找classPath,定位到Dog.class文件

2. 载入Dog.class文件,生成一个Class类型对象,所有有关的静态初始化动作都会执行,静态代码块,静态成员属性。 并且这种初始化动作只在Class对象首次加载时候进行一次。

3. 当用new Dog()创建对象时,首先JVM在堆heap上为Dog对象分配足够的存储空间 

4. 存储空间清空,自动将Dog对象中的所有基本类型数据都设置成了默认值,对象引用被设置为null

5. 执行所有在字段定义处的一些初始化操作

6. 调用构造器方法。(没有继承)

在继承关系下:

1)初始化父类,2)执行子类的静态方法和静态模块

要注意的点:

1)并非所有类都需要main方法,非public的类里可以有main方法

2)类文件里只有一个public的类,非public外部类生命为default

3)类里的私有变量,只要是本类的任何对象都可以访问

4)protected在子类中可以用

5)修饰类只有public和default。修饰成员变量(数据域和方法)有public和private。局部变量不可以用public和private,否则有编译出错
一个对象在一个类中定义可以访问该类的任何成员变量,包括private修饰的

如果一个类中的每个属性都存在它的一对公有的get和set方法,并且这个类存在一个公有的无参构造方法,那么它就是一个Java Bean,avabean是一种特殊的class,是一种JAVA语言写成的可重用组件,是按照一定的规范来写的class。

.java为Java的源文件后缀,编写的代码需要写在.java文件中。
而.class是字节码文件,是.java源文件通过javac命令编译后生成的文件。
Java虚拟机就是去运行.class文件从而实现程序的运行。
javac是java的编译器,将java转化 为字节码文件.class

在Java中重写指的是方法的重写,而不是属性的重写,还有多态也只是方法的多态 ,没有属性的多态。 属性是不能多态的,静态方法也不能多态。 内存中只看到子类的方法和父类的属性

当父类和子类都出现相同名称的变量,子类的变量是不会被覆盖,子类的变量和父类的变量一同存在

一个对象创建的过程分成4步: 

1.分配总空间 

2.递归创建父类对象 

3.调用本类构造方法  

4.初始化本类属性;

成员变量如果不赋值,系统会自动赋默认值。而局部变量不赋值是出现编译错误。

 this()与 super()其相似之处:

(1)当构造方法有重载时,两者均会根据所给予的参数的类型与个数,正确地执行相对应的构造方法。

(2)两者均必须编写在构造方法内的第一行,也正是这个原因,this()与 super()无法同时存在同一个构造方法内。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: