Java学习之对象实例化

一个对象实例化过程:
Person p = new Person();
1,JVM会读取指定的路径下的Person.class文件,并加载进内存,并会先加载Person的父类(如果有直接的父类的情况下).
2,在堆内存中的开辟空间,分配地址。
3,并在对象空间中,对对象中的属性进行默认初始化(基本类型赋初值)。
4,调用对应的构造函数进行初始化。
5,在构造函数中,第一行会先到调用父类中构造函数进行初始化。
6,父类初始化完毕后,在对子类的属性进行显示初始化。
7,在进行子类构造函数的特定初始化。
8,初始化完毕后,将地址值赋值给引用变量.

时间: 2024-10-13 01:29:25

Java学习之对象实例化的相关文章

JAVA学习--子类对象实例化的全过程

public class TestDog { public static void main(String[] args) {         Dog d = new Dog();         d.setAge(10);         d.setName("花花");         d.setHostName("小明"); System.out.println("name:" + d.getName() + " age:&quo

[Java学习笔记]对象克隆

对象克隆: 浅克隆: 被克隆的对象中的值类型数据被复制一份新值,但是引用的对象只被复制其引用传递给新克隆出来的对象 深克隆: 被克隆的对象中的值类型数据被复制一份新值,并且其中引用的对象会重新创建新的对象,把新对象的引用传递给新克隆出来的对象 Java中实现克隆: Java中Object中定义了clone方法,默认为浅克隆操作,即你只是简单super.clone得到的结果是浅克隆的结果,如果需要深克隆,则需要实现Cloneable接口,并且重写clone方法 查看Java源代码发现Object中

Java学习笔记 对象拷贝

1.Java里的clone分为: A:浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象. b:深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍. Java中对象的克隆,为了获取对象的一份拷贝,我们可以利用Object类的clone()方法.必须要遵循下面三点 1.在派生类中覆盖基类的clone()方法,并声明为public[Object类中的clone()方法为protected的]. 2.在派生类的clone()方法中,调用super.clone(). 3.

java学习笔记 对象序列化

对象序列化就是把一个对象变为二进制数据流的一种方法.如果一个类的对象想被序列化,它要实现Serializable接口,这个接口是个标识接口(只定义了接口,并没有定义方法),表示这个对象具有被序列化的能力. 实现Serializable接口之后,表示这个类具有被数据流传输的能力,如果想进行输入和输出,要使用两个类:ObjectOutputStream 和 ObjectInputStream 序列化时,只有属性被序列化 如果一个对象的某个属性不希望被序列化,可以使用transient关键字声明(把这

24 Java学习之对象序列化和反序列化

一. 序列化和反序列化的概念 对象序列化:把对象转换为字节序列的过程 对象反序列化:把字节序列恢复为对象的过程 1. 为何要进行序列化 我们知道当虚拟机停止运行之后,内存中的对象就会消失.在很多应用中,需要对某些对象进行序列化,让他们离开内存空间,进入物理硬盘,便于长期保存.例如,最常见的是WEB服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些Session先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原

Java学习之对象的初始化过程

示例代码: 1 class Person 2 { 3 private Person(){} 4 private String name = "hah"; 5 private int age; 6 private static String country = "cn"; //构造函数 7 Person(String name,int age) 8 { 9 this.name = name; 10 this.age = age; 11 } //静态代码块 12 sta

JAVA学习记录①——对象、类、属性、方法、构造方法的总结

对象——现实存在的手机(三星.苹果) 类——虚拟的手机(包含属性:5.0寸屏幕,2.1GHZCPU等,方法:能打电话,玩游戏) 属性:手机的配置(5.0寸屏幕,2.1GHZCPU) 方法:手机能做什么的(能打电话,玩游戏) 构造方法:用来给手机赋初值 具体展示在下面: /* * 文件一 * 这是类文件,用来保存手机的性质以及如何赋初值 * */ //这是类 public class Telphone { //这是属性,表示手机应该拥有什么 double screen; double cpu; /

Java学习笔记一:对象与存储

1.用引用来操作对象 Java是面向对象的编程语言,一切都能看作是对象,通过引用来完成对对象的操作. // String 是对象,而s对指向这个String对象的引用 String s; 注意:我们是通过对象的引用来操纵对象数据的,如果对象没有关联数据(如没有被初始化),则会出现空引用,报空指针异常:java.lang.NullPointerException 2.数据存储 (1)寄存器:位于CPU内部,是处理最快的区域,但是存储空间有限.Java不能通过程序直接控制. (2)堆栈:位于RAM(

java学习中,object 对象的使用(toString、equals、hashCode)(java 学习中的小记录)

java学习中,object 对象的使用(java 学习中的小记录)作者:王可利(Star·星星) object 对象(参考API学习) 重点掌握三个方法: 1.toString 返回该对象的字符串表示. 2.equals(object obj)指示其他某个对象是否与这个对象相等. 3.hashCode() 返回对象的哈希码. 详见代码的注释分析(一个是Person类重写方法,一个是Star类使用方法) Star类代码: 1 package study; 2 3 public class sta