天天看点

java中初始化,实例化,构造器

构造器与类同名

java中不管对象也好,还是基本数据类型也好,你声明它的时候,它们都称为变量,在你使用变量前给变量进行赋值,这就是变量的初始值,因此叫变量初始化。

实例化是指对象的创建,一般是指通过 new 关键字(当然还有其他途径,比如反射),在堆中为对象分配内存,这就是实例化。

举个非常简单的例子,你知道飞机会飞,但飞机在你脑海里只是个概念,当真的把飞机制造出来,变成实实在在的,存在于物质世界(java中称内存)的东西时,你才能用它来飞。如果在物质世界(内存)中根本就不存在,那就无法使用。

因此,实例化可以说将概念(类),变成实际存在(内存中存在)的过程就称为实例化。

java 对象的初始化过程

PersonDemo  p=new  PersonDemo("lisi",20);这句话都做了什么事情?      
  1. 因为new用到了PersonDemo.class,所以会先找到PersonDemo.class文件并加载到内存中。
  2. 执行该类中的静态成员和static代码块,如果有的话,给persondemo.class类进行初始化。
  3. 在堆内存中开辟空间,分配内存地址。
  4. 在堆内存中建立对象的特有属性,并进行默认初始化。
  5. 对属性进行显示初始化。
  6. 对对象进行构造代码块初始化。
  7. 对对象进行对应的构造函数初始化。
  8. 将内存地址付给栈内存中的p变量。

理解构造器之前,首先要知道Java中为什么要引入构造器,以及它的作用。 假设我们每一次编写一个类都要执行一个initialize()方法,提醒你,在使用对象之前,应先调用initialize()方法进行初始化, 这就意味着每一用户都要去执行这个方法。 Java中引入构造器,保证每一个对象都得到初始化,Java在有能力操作对象之前,系统会自动调用相应的构造器,保证初始化的进行。