java类中,成员变量赋值第一个进行,其次是静态构造函数,再次是构造函数
如题是结论,如果有人问你Java类的成员初始化顺序和初始化块知识就这样回答他。下面是代码:
package com.test;
public class TestClass{
// 成员变量赋值第一个执行
private static int m1=1;
private int m2=1;
// 静态构造函数第二个执行
static{
System.out.println("成员变量赋值先于静态构造函数 m1="+m1);
m1=2;
}
// 构造函数第三个执行
public TestClass(){
System.out.println("静态构造函数先于构造函数 m1="+m1);
m1=3;
System.out.println("成员变量赋值先于构造函数 m2="+m2);
m2=3;
}
public void printM1m2(){
System.out.println("m1="+m1);
System.out.println("m2="+m2);
}
public static void main(String[] args){
TestClass t=new TestClass();
t.printM1m2();
}
}
控制台输出:
成员变量赋值先于静态构造函数 m1=1 静态构造函数先于构造函数 m1=2 成员变量赋值先于构造函数 m2=1 m1=3 m2=3
java类中,成员变量赋值第一个进行,其次是静态构造函数,再次是构造函数的更多相关文章
- C++类中成员变量的初始化总结(转帖)
本文转自:C++类中成员变量的初始化总结 1. 普通的变量: 一般不考虑啥效率的情况下 可以在构造函数中进行赋值.考虑一下效率的可以再构造函数的初始化列表中进行. 1 class CA ...
- hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化
hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...
- java类中成员的初始化顺序(一)
类被创建之后的成员的初始化顺序到底是怎么样的? 首先 不考虑继承 package com; public class DemoOne { /** * 关于类的初始化顺序 */ //不考虑继承结构的情况 ...
- java类的成员变量和局部变量的区别
转自:https://jingyan.baidu.com/article/03b2f78c1ba2d05ea237ae9b.html 在类中位置不同:成员变量:在类中方法外.局部变量:在方法定义中或者 ...
- java接口中成员变量和方法的默认修饰符(转)
Java的interface中,成员变量的默认修饰符为:public static final 所以我们在interface中定义成员变量的时候,可以 1:public static final St ...
- C/C++ - 类中成员变量是引用
C++引用 引用在定义时必须初始化,否则编译时便会报错.如果类(自定义类型)的成员是引用类型,需要注意一些问题. 引用成员变量 并不为这个变量新辟空间:类对象做成员变量则是要对其新辟一段空间的 不能有 ...
- C++类中成员变量的初始化总结
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- 浅谈Java类中的变量初始化顺序
一.变量与构造器的初始化顺序 我们知道一个类中具有类变量.类方法和构造器(方法中的局部变量不讨论,他们是在方法调用时才被初始化),当我们初始化创建一个类对象时,其初始化的顺序为:先初始化类变量,再执行 ...
- linux C++类中成员变量和函数的使用
1.undefined reference to XXX 问题原因 1)XXX所在的so库等未指定 2)XXX在类中实现的时候没有加上类::函数的格式 2. was not declared in t ...
随机推荐
- mysql里制造一个错误
最近突然想到的,由于在触发器中执行失败事务性表会自动回滚. 所以就想制造一个错误,在群里问了问最后还真得到一个制造错误的方法,或者可以叫做自定义异常 SIGNAL SQLSTATE ' SET MES ...
- MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。
MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一. 但是,如<InnoDB,5项最佳实践>所述,如果查询没有命中索引,也将退化为表锁. InnoDB的细粒度锁,是实现在索引记录 ...
- 序列(seq)
序列(seq) 题目描述 给定 N,A,BN,A,B,构造一个长度为 NN 的排列,使得: 排列长度为 N: 最长上升子序列长度为 A: 最长下降子序列长度为 B. 我们有 SPJ,有解任意给出一组, ...
- EasyUI序列化提交学习总结
jquery easyui将form表单元素的值序列化成对象 form表单 <form id="ff"> <input type="text" ...
- [BZOJ2957] 楼房重建 (线段树,递归)
题目链接 Solution 经典的一道线段树题,难点在于如何合并节点. 由于题目要求直线要求不相交,则斜率均大于前面的点即为答案. 所以以斜率为权值. 考虑线段树每一个节点维护两个值: \(Max\) ...
- sql中的like和正则的区别
like,模糊查询,更多的是用于匹配已知的字符,比如查询该字段含有1的记录,like ‘%1%’:但是如果要匹配不确定的,但是一个系列的字符,比如数字,最好用regexpselect * from t ...
- $.extend(object) 和 $.fn.extend(object)
1.jQuery.extend(object); 它是为jQuery类添加类方法,可以理解为添加静态方法.如: jQuery.extend({ min: function(a, b) { return ...
- JavaScript (JS)基础:ECMAScript 浅析 (含Math基本方法解析)
浏览器端JavaScript的组成 ECMAScript:语法规范 DOM:Document Object Model 文档对象模型,操作页面元素 BOM:Browser Object Model ...
- sql2008百万级数据排除重复信息
--高性能排除重复select userid from table where userid in ( select userid from ( select userid, row_number() ...
- HTTP 错误 401.2 - Unauthorized
最近开始拾起Asp.net方面的知识,遇到如下这个问题 HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页. 解决方法: >IIS管理 >功能视图 ...