这里拿了用数组构造栈的一段代码说明一下

 public class StackArray<E> {

     private Object[] data = null;
private int maxSize; //栈容量
private int top = -1; //栈顶指针 /**
* 重写无参构造函数
*/
StackArray(){
this(10); //默认栈大小为10 (如果这行前面有代码,这行就会报错)
System.out.println("无参构造器执行");
} /**
* 有参构造函数
*/
StackArray(int initialSize){
if(initialSize >= 0){
this.maxSize = initialSize;
data = new Object[initialSize];
top = -1;
}else{
throw new RuntimeException("初始化大小不能小于0:" + initialSize);
}
System.out.println("有参构造器执行");
} public static void main(String[] args) {
new StackArray();
//new StackArray(20);
}
}

1)new StackArray()即无参的实例化过程:

找到无参构造器 >  初始化成员变量(引用类型初始化为null,int初始化为0) > this(10)调用有参构造器 > 来到有参构造器并初始化赋值形参(initialSize=10)> 成员变量赋值(例如top=-1)> 执行有参构造器内部代码(输出了“有参构造器执行”)> 执行无参构造器内部代码(输出了“无参构造器执行”)> 结束

2)new StackArray(20)有参的实例化过程:

找到有参构造器 > 初始化赋值形参并初始化成员变量(引用类型初始化为null,int初始化为0) >   成员变量赋值(例如top=-1)> 执行有参构造器内部的代码 > 结束

3)如果无参构造器内没有调用有参构造器,new StackArray()的实例化过程:

找到无参构造器 >  初始化成员变量(引用类型初始化为null,int初始化为0) > 成员变量赋值(例如top=-1)> 执行无参构造器内部代码(输出了“无参构造器执行”)> 结束

java有参无参构造器的的执行顺序的更多相关文章

  1. 064 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 无参带返回值方法

    064 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 无参带返回值方法 本文知识点:无参带返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...

  2. 063 01 Android 零基础入门 01 Java基础语法 08 Java方法 01 无参无返回值方法

    063 01 Android 零基础入门 01 Java基础语法 08 Java方法 01 无参无返回值方法 本文知识点:无参无返回值方法 无参无返回值方法 案例 为什么使用方法?--方便复杂问题调用 ...

  3. 浅谈Java语言中try{}catch{}和finally{}的执行顺序问题

    浅谈Java语言中try{}catch{}和finally{}的执行顺序问题 2019-04-06  PM  13:41:46  1. 不管有没有出现异常,finally块中代码都会执行: 2. 当t ...

  4. Java静态代码块、构造代码块执行顺序问题

    package com.zxl.staticdemo; public class BlockTest { static { System.out.println("BlockTest静态代码 ...

  5. java基本数据类型,访问控制符,运算符执行顺序

    1.java数据类型 内置数据类型:boolean(1),  byte(8), char(16), short(8), int(32), long(64), float(32), double(64) ...

  6. Java学习笔记 - 类方法与代码块的执行顺序

    类的初始化顺序 使用一个简单的父子类例子来做示范,代码执行顺序在代码后有标注. class Parent { public static String p_StaticField = "父类 ...

  7. JAVA类的无参方法

    Java注释:                //:单行注释                /**/:多行注释                /**    */:JavaDoc注释    方法:   ...

  8. SSM Controller 页面之间跳转 重定向,有参 无参问题

    需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示. (1)我在后台一个controller跳转 ...

  9. java 代码块,静态代码块,构造器等的执行顺序

    写了一段测试代码,如下: public class ExecutionSequence extends fatherClass{    static{        System.out.printl ...

随机推荐

  1. BindingResult不能获取错误对象

    BindingResult不能获取错误对象,代码如下: @RequestMapping(value = "/login") public String error4( Model ...

  2. 怎样改动 VC6.0 4.0 2010 打印预览界面上的文字

    前言:尽管早已下决心不再碰微软的东西,但手头的项目还得须要维护. 遇到问题还能解决. 问题由来: 之前的软件开发是基于中文环境开发的,建立项目的时候,选择了中文,为了方便客户使用.我们使用了静态编译的 ...

  3. comp.lang.javascript FAQ [zz]

    comp.lang.javascript FAQ Version 32.2, Updated 2010-10-08, by Garrett Smith FAQ Notes 1 Meta-FAQ met ...

  4. [UVALive 6661 Equal Sum Sets] (dfs 或 dp)

    题意: 求从不超过 N 的正整数其中选取 K 个不同的数字,组成和为 S 的方法数. 1 <= N <= 20  1 <= K<= 10  1 <= S <= 15 ...

  5. ES内存持续上升问题定位

      https://discuss.elastic.co/t/memory-usage-of-the-machine-with-es-is-continuously-increasing/23537/ ...

  6. linux + nginx 的配置优化

    linux 关于TCP/IP 的优化配置  配置文件/etc/sysctl.conf    修改完文件生效的命令  /sbin/sysctl -p 如下是总结的配置内容及说明 net.ipv4.con ...

  7. Noip前紧急抢救

    管他会不会,知道结论就好了 紧急抢救知识 斯特林数 第一类斯特林数 递推公式 \[ S[n][k]=(n-1)\times S[n-1][k]+S[n-1][k-1] \] 处理的问题是将n个数划分为 ...

  8. redis的windows版本下载地址及windows的客户端工具

    源码:https://github.com/MSOpenTech/redis 安装包:https://github.com/MSOpenTech/redis/releases 客户端工具:https: ...

  9. Repeater控件使用小结持续更新

    Repeater嵌套Repeater绑定数据 前台代码 <!--注意层级关系不要写错了--> <asp:Repeater ID="rpGroup" runat=& ...

  10. Android饼图的简单实现

    1.简单的实现效果图: 2.自定义View的实现 package myapplication.com.myapp.view; import android.content.Context; impor ...