精华内容
下载资源
问答
  • Java之创建对象初始化顺序

    千次阅读 2018-09-28 16:12:47
    父类静态成员(包括方法和变量,按顺序初始化) 子类静态成员(包括方法和变量,按顺序初始化) 父类成员变量(包括非静态代码块) 父类构造方法 子类成员变量(包括非静态代码块) 子类构造方法 验证代码:...

    创建顺序如下

    1. 父类静态成员(包括方法和变量,按顺序初始化)
    2. 子类静态成员(包括方法和变量,按顺序初始化)
    3. 父类成员变量(包括非静态代码块)
    4. 父类构造方法
    5. 子类成员变量(包括非静态代码块)
    6. 子类构造方法

    验证代码

    // 主类,用来创建子类对象,验证我们的结果
    public class Main {
        public static void main(String[] args) {
            new Son();
        }
    }
    
    // 书类,用于测试对象成员变量
    class Book{
        public Book(String user){
            System.out.println(user + "成员变量");
        }
    }
    
    // 子类
    class Son extends Fa{
        static Book book= new Book("子类静态");
        static{
            System.out.println("子类静态代码块");
        }
        
        Book sBook = new Book("子类");
        {
            System.out.println("子类非静态代码块");
        }
        
        public Son(){
            System.out.println("子类构造方法");
        }
    }
    
    // 父类
    class Fa{
        static Book book= new Book("父类静态");
        static{
            System.out.println("父类静态代码块");
        }
        
        Book fBook = new Book("父类");
        {
            System.out.println("父类非静态代码块");
        }
    
        public Fa(){
            System.out.println("父类构造方法");
        }
    }
    
    
    

    输出结果

    父类静态成员变量
    父类静态代码块
    子类静态成员变量
    子类静态代码块
    父类成员变量
    父类非静态代码块
    父类构造方法
    子类成员变量
    子类非静态代码块
    子类构造方法

    展开全文
  • import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;... /** spring在创建对象初始化b
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class InitTest {
    	
    	/**	spring在创建对象初始化bean的时机分为两种形式:
    	 * *  1.在默认情况下(<bean lazy-init="default">),spring容器启动的时候,就把所有的纳入spring
    	 * 		容器的bean创建对象:先public HelloWorld(){}后执行context.getBean()
    	 * 		缺点:如果一个对象中有属性,比如这个属性为集合,在创建这个对象的过程中,集合中有数据
    	 * 			这样采用默认的启动形式,就会导致数据过早的加载到内存中。
    	 * *  2.可以在spring的配置文件中采取如下形式来延长bean的创建时间,在context.getbean()
    	 * 		时才创建bean对象:先执行context.getBean()后public HelloWorld(){}
    	 * 			<bean id="" class="" lazy-init="true"></bean>
    	 * *    缺点:如果spring的配置文件书写错误,如果所有的spring的bean都采用lazy-init=”true“这种形式
    	 * 			则在启动web服务器时就发现不了spring容器的错误,这样就不利于排错。
    	 */
    	@Test
    	public void test(){
    		ApplicationContext context = new ClassPathXmlApplicationContext("cn/itcast/spring01/init/applicationContext.xml");
    		HelloWorld helloworld = (HelloWorld)context.getBean("helloWorld");
    		helloworld.say();
    	}
    }

    在每个Spring IoC容器中一个bean定义只有一个对象实例(共享)。

      默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=“true”来延迟初始化bean

     这时候,只有第一次获取bean会才初始化bean。如:

     <bean id="xxx" class="cn.itcast.OrderServiceBean" lazy-init="true"/>

     如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“true“如下: 

     <beans default-lazy-init="true“ ...> 

    展开全文
  • 创建对象初始化 (new)

    千次阅读 2009-08-09 17:07:00
    创建对象Java 语言用new 关键字创建对象。... 2、如果实例变量在声明时被显示初始化,那就把初始化值赋值给实例变量。 3、调用构造方法。 4、返回对象的引用。eg:public class Simple{ int memberV1; int mem

     

    创建对象

    Java 语言用new 关键字创建对象。

    创建对象的作用

    1、为对象分配内存空间,将对象的实例变量自动初始化为其变量类型的默认值。

    2、如果实例变量在声明时被显示初始化,那就把初始化值赋值给实例变量。

    3、调用构造方法。

    4、返回对象的引用。

    eg:
    public class Simple{
    int memberV1;
    int memberV2 = 1;
    int memberV3;
    public Simple(){ memberV3 = 3; }
    public static void main(String[] args){
    Simple obj = new Simple();
    }
    }
    Java 虚拟机运行 Simple obj = new Simple(); 的步骤如下:
    1、为一个新的 Simple 对象分配内存空间,它所有的成员变量都被分配了内存空间,并自动初始化为其变量类型的默认值(第一幅图)
    2、显示初始化 memberV2 变量,把它的值设为1(第二幅图)
    3、调用构造方法,显示初始化成员变量 memberV3(第三幅图)
    4、将对象的引用赋值给变量 obj(第四幅图)
    将对象的引用赋给变量 obj

     

    展开全文
  • 对象创建初始化

    千次阅读 热门讨论 2020-12-26 12:28:05
    对象初始化三、构造器 前言 本文主要讲解类和对象的关系,以及如何创建和初始化对象,对构造器的详解 一、类和对象的关系 类是一种抽象的数据类型,它是对某一类事物的整体描述,但是不能代表某一个具体的事物...


    前言

    本文主要讲解类和对象的关系,以及如何创建和初始化对象,对构造器的详解


    一、类和对象的关系

    • 类是一种抽象的数据类型,它是对某一类事物的整体描述,但是不能代表某一个具体的事物。

      例如:动物、植物、桌子、电脑、手机,Person类、Car类等等,这些类都是用来描述一类具体的事物因该具有的特点和行为,是抽象的概念。

    • 对象是抽象概念的具体实例

      例如:李华就是人的一个具体实例,李华养的一只大黄,就是狗的一个具体实例。
      在这里,人是一个“类”,李华就是一个“对象”,同样,大黄也是一个对象,都不是抽象的,而是实实在在存在的。

    二、如何创建和初始化对象

    1.使用new关键字创建对象

    1.首先创建一个类,我这里创建的是一个学生类,里面有学生的姓名、年龄。

    public class Student {
        String name;    //姓名
        int age;        //年龄
    

    2.类是抽象的,需要实例化,也就是创建一个对象,实例化后会返回一个对象,代码如下

    		Student lihua = new Student();
            Student lihong = new Student();
    

    我们就像这样new 一个对象,这里的lihua,lihong就是Student类的具体实例。

    2.对象初始化

    接着需要对对象进行初始化,如果不初始化,输出的数据将会是默认值,代码如下

    		lihua.name="李华";
            lihua.age=19;
            lihong.name="李红";
            lihong.age=18;
    

    看一下输出结果

    System.out.println(lihua.name);
    System.out.println(lihua.age);
    System.out.println(lihong.name);
    System.out.println(lihong.age);
    
    李华
    19
    李红
    18
    

    完成初始化。
    如果不初始化,我们来看一下运行结果

    null
    0
    null
    0
    

    三、构造器

    上面使用new关键字创建对象的时候,除了会分配内存空间和对创建好的对象进行默认的初始化之外,还会对类中的构造器进行调用。

    • 类中的构造器也称为构造方法,是在进行创建对象的时候必须调用的,构造器有以下两个特点
      1. 和类的名字相同
      2. 没有返回类型,也不能写void

    Student类中什么也不定义,在主方法里面对Student类创建一个对象student

    public class Student {
    
    }
    
    public static void main(String[] args) {
           Student student = new Student();
        }
    

    发现即使类中内容是空的,在主方法中仍然可以调用出来Student类,为啥呢?

    接下来我们在out 目录中找到Student.class文件,打开看一下

    public class Student {
        public Student() {
        }
    }
    

    发现和源文件中的代码相比较,多出来一个public Student方法,这个方法 ,首先,它的名字和上面的类名相同,其次,它没有返回值。其实,这就是一个构造器。

    对于无参构造和有参构造,代码如下

    • 无参构造
    public class Student {
        String name;
        public Student(){
            this.name="李华";
        }
    }
    
    public static void main(String[] args) {
           Student student = new Student();
    
            System.out.println(student.name);
        }
    

    输出结果

    李华
    
    
    • 有参构造

    如果使用了有参构造,就可以让无参构造中的内容空着,它什么也不用做

     //无参构造
        public Student(){
           // this.name="李华";
        }
        //有参构造
        public Student(String name){
            this.name = name;
        }
    
    public static void main(String[] args) {
          // Student student = new Student();
           Student student = new Student("李华");
           System.out.println(student.name);
        }
    

    使用new关键字调用方法,由于方法可以重载,调用时会自动匹配到有参构造的方法,即调用上面的public Student(String name)
    结果

    李华
    
    

    由此,我们可以得出一些结论:

    1. 一个类中即使什么也不写,它也会存在一个方法。
    2. 使用new关键字,本质就是在调用构造器。
    3. 构造器可以用来初始化值。
    4. 注意:如果定义了有参构造,还想用无参构造new对象,就必须显示无参构造的定义。
    展开全文
  • 本文通过引入一道面试题来解析类加载、类链接、类初始化过程,以及创建创建对象对象初始化和程序执行的过程。 你将收获: 1、精通类加载、类链接、类初始化过程 2、深入源码层面了解类初始化、对象初始化的原理...
  • 工厂模式通常都是创建对象,类似于无参构造方法创建对象,我希望使用工厂模式创建对象,并且为该对象的字段初始化(类似于有参构造方法创建对象)。但是我不想用set方法,我现在使用的是通过反射的方法在创建对象后给...
  • java创建对象的几种方式: (1) 用new语句创建对象,这是最常见的创建对象的方法。 (2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 (3) 调用对象的clone()方法...
  • java对象数组 创建对象数组,初始化对象数组

    万次阅读 多人点赞 2019-07-30 16:34:15
    对象数组的定义与一般数组的定义类似,但是需要为每一个元素实例对象数组的声明形式是: 类名 对象数组名 [ ]; 为对象数组分配内存空间: 对象数组名=new 类名[数组长度];//注意 :此处不是构...
  • 深入理解Java对象创建过程:类的初始化与实例化

    万次阅读 多人点赞 2017-05-18 14:17:45
    在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。...本文试图对JVM执行类初始化和实例化的过程做一个详细深入地介绍,以便从Java虚拟机的角度清晰解剖一个Java对象创建过程。
  • 从头认识java-4.1 创建初始化对象

    千次阅读 2015-10-25 22:48:14
    这一章节我们来聊聊创建初始化对象。这个需要讨论的问题源自于c语言,在c语言中,很大部分的错误是忘记了初始化某些东西,他把库的构建的使用需要完成两个操作-创建初始化,但是在java里面,使用构造器来创建与...
  • java创建对象初始化

    千次阅读 2017-03-01 20:23:11
    关键点:静态区只要初始化一次,以后每次都不用进行初始化。静态区包括静态变量和静态方法 1.没有继承时即根类是Object 当第一次显示的调用静态的变量或方法时,类名.变量或方法。这时类中的所有的st
  • Python创建对象:对象名称=类() class Point: pass p1 = Point() p2 = Point() 在创建对象时,Python解释器会...初始化方法:init,属于内置方法,指明一个对象初始化的行为 创建一个初始化方法例子: class Cat()...
  • 大纲构造函数创建对象and初始化一个对象创建的流程一个对象初始化过程创建对象的几种方式 构造函数 用于给对象进行初始化 构造函数没有返回值(不是void) 构造函数无法用final、static修饰符修饰 不能被继承,因此...
  • c# 对象初始化

    千次阅读 2017-05-20 00:45:32
    创建对象什么是对象初始化器?对象在创建时也可以通过对象初始化器完成”属性的初始化”。 但是对象初始化器只在.NET3.0以后的版本中使用 !!! 只能在.NET3.0及其后续版本中使用使用以往的”无参”与”有参”构造...
  • 常见对象初始化创建的几种方法

    千次阅读 2018-06-26 16:40:47
    public class UserInfo { public int ID { get; set; } public string UserName { get; set; } public string Password { get; set; } }假设现在有 UserInfo 对象...
  • 初始化方法 当使用类名()创建对象时,会自动执行以下操作 为对象在内存中分配空间—创建对象 为对象的属性设置初始值—初始化方法(init) 自动调用__init__方法 这个初始化方法就是__init__方法,__init__是...
  • Java 对象初始化过程

    千次阅读 2016-05-03 17:57:45
    本文试图对Java如何执行对象的初始化做一个详细深入地介绍(与对象初始化相同,类在被加载之后也是需要初始化的,本文在最后也会对类的初始化进行介绍,相对于对象初始化来说,类的初始化要相对简单一些)。...
  • 关于类的对象创建初始化

    千次阅读 2018-04-10 16:17:50
    今天,我们就来解决一个问题,一个类实例究竟要经过多少个步骤才能被创建出来,也就是下面这行代码的背后,JVM 做了哪些事情? Object obj = new Object(); 当虚拟机接受到一条 new 指令时,首先会拿指令后的...
  • 对象创建过程,初始化顺序

    千次阅读 2015-04-08 17:19:29
     对于以上第三个步骤,Java虚拟机可采用3种方式来初始化对象,到底采用何种初始化方式取决于创建对象的方式。 (1)如果对象是通过clone()方法创建的,那么Java虚拟机把原来被克隆对象的实例变量的值拷贝到新对象
  • Java创建数组对象初始化

    千次阅读 2018-04-18 22:23:33
    声明一个类Apublic class A { ...}在类B中声明类A的数组对象,并进行初始化。public class B { public static void main(String[] args) { //系统分配引用空间 A[] a = new A[5]; for(i = 0; i &lt; ...
  • C++创建类的对象(类的初始化)的方法

    万次阅读 多人点赞 2018-08-07 21:03:55
    本文主要介绍c++中创建类的对象(类的初始化)的两种方法,即“直接使用类名创建对象”和“使用new创建对象”这两种方法。 1 概述 “直接使用类名创建对象”和“使用new创建对象”这两种创建类的对象的方法的区别...
  • 对象创建过程/初始化顺序

    千次阅读 2012-07-13 20:31:42
     对于以上第三个步骤,Java虚拟机可采用3种方式来初始化对象,到底采用何种初始化方式取决于创建对象的方式。 (1)如果对象是通过clone()方法创建的,那么Java虚拟机把原来被克隆对象的实例变量的值拷贝到新对象
  • C++中对象初始化方式

    千次阅读 2019-03-18 23:34:28
    当对象在创建时获得了一个特定的值,我们说这个对象被初始化。初始化不是赋值,初始化的含义是创建变量赋予其一个初始值,而赋值的... 对象初始化可以分为默认初始化、直接初始化、拷贝初始化以及值初始化。 1,...
  • c++对象初始化

    千次阅读 2018-03-27 00:24:14
    c++对象初始化方法,与其他语言有所不同: 1显式调用构造函数,返回类对象,注意这里与Java等语言不同,调用构造函数并不必需new关键字,new在c++里有其他含义 User user3 = User(age, name);2隐式调用构造函数 User...
  • c#对象初始化

    千次阅读 2018-08-01 16:10:54
    c#对象初始化器 以往在对对象属性进行初始化时我们一般会使用构造方法的形式对对象属性进行初始化,如 class Program { static void Main(string[] args) { Student student = new Student(15, "spring&...
  • C++对象初始化

    万次阅读 2011-07-27 17:00:10
    在C++里,对象初始化是一个非常重要但又容易令人混淆的问题。这里是自己的一些总结。 一。初始化与赋值的含义: 初始化:包括创建(或说定义)对象并且赋给初值。(如果一个对象只被创建而没有被初始化,则该变量...
  • java对象创建过程/初始化顺序

    千次阅读 2013-10-15 17:36:15
    Java虚拟机创建一个对象都包含以下步骤。 (1)给对象分配内存。 (2)将对象的实例变量自动初始化为其变量类型... 对于以上第三个步骤,Java虚拟机可采用3种方式来初始化对象,到底采用何种初始化方式取决于创建
  • Spring对象初始化前后执行操作

    千次阅读 2019-07-05 22:56:15
    文章目录Spring对象初始化前后执行操作实例 Spring对象初始化前后执行操作 功能: 通过一个实现 BeanPostProcessor 接口的类,并将该类对象注册到spring中。使所有spring对象的初始化前后执行都执行一个自定义方法 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,335,625
精华内容 534,250
关键字:

创建对象初始化