java对象初始化详解(java对象初始化的三种方法)

  • 1、简述java程序运行时完整的对象初始化过程
  • 2、JAVA里初始化是什么意思?
  • 3、java对象初始化
  • 4、Java中对象如何初始化

理解的几个特殊加载过程:

静态代码块、构造代码块,构造方法。

1、有静态方法先加载,所有的静态方法加载完毕之后进入对象的构建— 初始化行为1

1、执行构造代码块(有的话:{ })— 初始化行为2

2、调用无参构造函数初始化对象—

执行第一行:super();

调用父类无参数构造函数—一直往上调。如果父类有构造代码块先执行。

注意静态代码是最先加载的,无论多少个父类。

自己多试着操作练习,看看运行结果,加深理解!

初始化就是给变量一个初始值。

例如:

声明一个变量:String aa = “abc”;int cc =0;其中abc和0就是初始化的值,最后值不一定是abc或者 0加入你覆盖了aa的值如下:

aa = “def” ; cc=1;那最后aa变量的值就是def,cc变量就是1了,初始化的目的是为了让变量有值,防止使用时出现异常。

扩展资料:

作用

1、遇到new,getstatic,putstatic,或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这四条指令单最常见的Java代码场景是:

使用new关键字实例化对象的时候,读取或设置一个类的静态字段(被final修饰,已在变异期把结果放入常量池的静态字段除外)的时候,以及调用一个类的静态方法的时候。

2、使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有进行过初始化,则需要先出法其初始化。

3、当初始化一个类的时候,如果发现其父类还没有进行初始化,则需要先出法其父类的初始化。

4、当虚拟机启动时,用户需要指定一个要执行的主类(包含main()方法的那个类),虚拟机会先初始化这个主类。

1、java规定,构造方法中对其他构造方法的显式调用只能调用一次,且必须是第一句。每个构造方法的第一句java会自动加上对父类的默认方法的调用,这个是隐式的。而你的this调用是显式的,所以必须是第一句而且只能是一句。

2、你对方法的理解是对的,方法的调用实际上用的是那段代码的入口,因此大家都用一个。

初始化数组有三种方式,以下都是去初始化一个String类型长度2的数组:

方式一:

123String[] strs = new String[2];strs[0] = “0”;strs[1] = “1”;

方式二:

1String[] strs = new String[]{“0”, “1”};

方式三:

1String[] strs = {“0”, “1”};

三种方式,都有自己的使用场景,在合适场景使用即可。

原创文章,作者:QGVU8,如若转载,请注明出处:https://www.506064.com/n/126849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
QGVU8QGVU8
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相关推荐

  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29
  • Python程序的三种基本控制结构

    控制结构是编程语言中非常重要的一部分,它们指导着程序如何在不同的情况下执行相应的指令。Python作为一种高级编程语言,也拥有三种基本的控制结构:顺序结构、选择结构和循环结构。 一…

    编程 2025-04-29
  • 面向对象编程、类和对象

    面向对象编程(Object-Oriented Programming, OOP)是一种编程方法,它将现实世界中的事物抽象为对象(Object),对象的属性和方法被封装成类(Clas…

    编程 2025-04-29
  • Go中struct的初始化

    本文将从多个方面详细阐述Go中struct的初始化方式,包括使用字面量初始化、使用new函数初始化以及使用构造函数等。通过本文的介绍,读者能够更深入的了解Go中struct的初始化…

    编程 2025-04-28
  • Python三种基本输入元素

    本文将从多个方面对于Python三种基本输入元素进行详细的阐述并给出代码示例。 一、Python三种基本输入元素解答 Python三种基本输入元素包括命令行参数、标准输入和文件输入…

    编程 2025-04-28
  • Mapster:一个高性能的对象映射库

    本文将深入介绍furion.extras.objectmapper.mapster,一个高性能的对象映射库,解释它是如何工作的以及如何在你的项目中使用它。 一、轻松地实现对象之间的…

    编程 2025-04-28
  • Python返回对象类型

    Python是一种动态、解释型、高级编程语言。Python是一种面向对象的语言,即所有的一切都是一个对象。 一、基本类型 Python中的基本类型有整数int、浮点数float、布…

    编程 2025-04-28
  • Python中通过对象不能调用类方法和静态方法的解析

    当我们在使用Python编写程序时,可能会遇到通过对象调用类方法和静态方法失败的问题,那么这是为什么呢?接下来,我们将从多个方面对这个问题进行详细解析。 一、类方法和静态方法的定义…

    编程 2025-04-27
  • Python内置函数——查看对象内存

    本文将介绍Python内置函数中,在开发中查看对象内存的相关函数。 一、id()函数 id()函数是Python内置函数,用于返回对象的唯一标识符,也就是对象在内存中的地址。 nu…

    编程 2025-04-27
  • 解决ERP运行时错误429:ActiveX不能创建对象 DAO350

    ERP运行时错误429是由于“ActiveX不能创建对象”而引发的。这种错误通常是由于您在尝试访问Microsoft Access数据库时缺少了必要的组件。 一、安装并注册DAO库…

    编程 2025-04-27

发表回复

登录后才能评论