首页 > 代码库 > java初始化问题,其实记住三点就ok了~~~
java初始化问题,其实记住三点就ok了~~~
看到帖子讨论,继续讨论java初始化问题,然后我debug了下,和自己想的差不多。然后写出来分享给大家,记住三点就不会错了啊啊啊啊啊啊啊啊~~~坑~~
package com.lean; public class InitJava { /* * static静态变量初始化,构造函数调用(每次都执行,初始化非静态变量,方法,目的就是防止构造函数调用非静态方法属性) * 构造函数执行,main函数执行 * * 其实记住三点就行了~~~~搞的我都郁闷死了,给大家总结下: * 1.先顺序加载static变量 * 2.无论何时只要执行构造函数,那么在执行构造函数方法体之前必须完成非静态变量,方法的加载(不限次数) * 3.static执行完成后,classloader会执行main方法体,然后就正常执行呗~~~ */ public static int k = 0; public static InitJava t1 = new InitJava("t1"); public static InitJava t2 = new InitJava("t2"); public static int i = print("i");// public static int n = 99; private int a = 0; public int j = print("j"); { print("构造块"); } static { print("静态块"); } public InitJava(String str) { System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++i; ++n; } public static int print(String str) { System.out.println((++k) + ":" + str + " i=" + i + " n=" + n); ++n; return ++i; } public static void main(String args[]) { InitJava t = new InitJava("init"); } }
1:j i=0 n=0 2:构造块 i=1 n=1 3:t1 i=2 n=2 4:j i=3 n=3 5:构造块 i=4 n=4 6:t2 i=5 n=5 7:i i=6 n=6 8:静态块 i=7 n=99 9:j i=8 n=100 10:构造块 i=9 n=101 11:init i=10 n=102
是不是很简单~~
java初始化问题,其实记住三点就ok了~~~
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。