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()无法同时存在同一个构造方法内。
先创建静态成员变量——>再创建静态模块——>
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()无法同时存在同一个构造方法内。
相关文章推荐
- java对象创建过程
- 【Java基础】对象的具体创建过程
- 深入理解java对象的创建过程,类的初始化与实例化
- Java对象的创建过程
- java 程序加载过程---2-创建类实例对象
- 面试总结之Java中创建对象过程及方式
- JAVA对象的创建过程
- Java内存区域模型、对象创建过程、常见OOM
- 深入理解JVM : Java堆中对象创建、布局、访问全过程
- java对象的创建过程
- java中的对象创建过程
- 深入理解Java对象的创建过程:类的初始化与实例化
- Java对象创建的过程
- java内存结构和对象创建的过程
- 《Thinking in Java》——静态、非静态成员变量、子句的初始化顺序(含继承)及对象创建过程
- (转载)JAVA中对象创建和初始化过程
- Java对象在虚拟机中的创建过程
- Java对象的创建过程
- Java 对象的创建过程简单介绍
- JAVA对象创建的过程