最近又把java编程思想看了看。又有些收获。此书确实不错

java中的初始化相信很多人都知道。但是具体的初始化步骤,初始化几次确不一定。上代码

public class A{

    public static A a = new A();

    public static int i;

    public static int j= 2;

    public A(){

        i++;

        j++;

    }

    public static void main(String[] args){

        A a1= new A();

        System.out.println("i = " + a1.i);

        System.out.println("j= " + a1.j);

    }

}

输出结果是什么呢?

2和3.

对于java而言,构造对象时首先会执行自动初始化动作。即 初始化为

A=null;
i=0;
j=0;

  然后再次初始化话定义的默认值

a=new A();

 此处执行构造器导致i++,j++,结果

i=1;
j=1;

之后给a赋值,此时a不在为null,

然后就有点意思了

继续执行 i的默认初始化,因为i没有设置默认值,所以i还是1,然后j由于有默认值j变成了2

i=1;
j=2;

 最后在执行构造器i++,j++

最后结果

i=2;
j=3;

如果此处把a这个特殊的情况去除可以看出。初始化有三个步骤:

1.自动初始化为基本类型0,引用类型为null

2.设置默认值

3.执行构造器

												

java中对象的初始化问题的更多相关文章

  1. java中对象产生初始化过程

    以前面试的时候,很多公司的笔试题中有关new一个对象有关一系列初始化的过程的选择题目.请看下面的题目. class Parent { static { System.out.println(" ...

  2. java中对象的初始化过程

    class Parent{ int num = 8;// ->3 Parent(){ //super(); // ->2 //显示初始化 // ->3 //构造代码段 // -> ...

  3. Java中的成员初始化顺序和内存分配过程

    Java中的成员初始化顺序和内存分配过程 原帖是这样描述的: http://java.dzone.com/articles/java-object-initialization?utm_source= ...

  4. java基础-对象的初始化

    一 前言 本节内容将会提到方法重载,对象的初始化,对象的构造器,和this关键字的使用,以及会简要的概括一下java中对象回收机制.觉得文章不错的读者可以关注一下作者的博客和公众号(同博客名称) 二 ...

  5. Java中对象和引用的理解

    偶然想起Java中对象和引用的基本概念,为了加深下对此的理解和认识,特地整理一下相关的知识点,通过具体实例从两者的概念和区别两方面去更形象的认识理解,再去记忆. 一.对象和引用的概念: 在Java中万 ...

  6. Java中对象的生与灭- 核心篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中对象的生与灭- 核心篇>,希望对大家有帮助,谢谢 文章纯属原创,个人总结难免有差错,如果有,麻烦在评论区回复或后台私信,谢啦 简介 ...

  7. 你真的了解JAVA中对象和类、this、super和static关键字吗

    作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 目录 Java对象究竟是什么? 创建对象的过程 ...

  8. Java中对象的深复制和浅复制详解

    1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象. ⑵ ...

  9. Java中数组的初始化方式

    Java中数组的初始化方式    初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...

随机推荐

  1. 打表法fffff

    打表法: 打表前先运行一下 看一看速度 优化: O3 #pragma GCC optimize(3,"Ofast","inline") O2  #pragma ...

  2. [POI2000] 公共串 - 后缀数组,二分

    [POI2000] 公共串 Description 给出几个由小写字母构成的单词,求它们最长的公共子串的长度. Solution 预处理出后缀数组和高度数组,二分答案 \(k\) ,对于每一个连续的 ...

  3. codis安装以及启动

    https://blog.csdn.net/ygd266/article/details/78469654

  4. java fastjson:Map与json以及JSONObject ,JSONObject与String互转

    import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson ...

  5. 使用鼠标左键事件实现VR中的Eye Gaze Input

    1.光标以及光标动画的显示 using System.Collections; using System.Collections.Generic; using UnityEngine; using U ...

  6. 数据存储 csv

    # # 保存csv格式的数据import csv csvFile = open('test.csv','w+',newline='') #文本方式可读写 try: writer = csv.write ...

  7. C#中数据类型char*,const char*和string的三者转换

    C#中数据类型char*,const char*和string的三者转换: . const char* 和string 转换 () const char*转换为 string,直接赋值即可. EX: ...

  8. c#逐行读取文件到数组

    /// <summary> /// 逐行读取文件到泛型数组 /// </summary> /// <param name="FilePath"> ...

  9. spring boot配置druid数据连接池

    Druid是阿里巴巴开源项目中一个数据库连接池. Druid是一个jdbc组合,包含三个部分, 1.DruidDriver代理Driver,能够提供基于Filter-Chain模式得插件体系2.Dru ...

  10. apt-get install 下载速度慢问题的解决

    参考博客:https://blog.csdn.net/weixin_38538240/article/details/99665433 重点:在software&updates中更换为国内的源 ...