- 浏览: 647077 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (310)
- C&C++ (14)
- Java (52)
- Python (13)
- Web (10)
- Tomcat (2)
- Struts2 (2)
- Spring (3)
- Hibernate (11)
- SWT (1)
- Linux (35)
- WebService (1)
- 工具 (3)
- 数据库 (10)
- 开源项目 (3)
- 搜索技术 (4)
- 链接记录 (3)
- 搜集信息 (12)
- 工作笔记 (16)
- 星星点点 (20)
- 英文片语 (7)
- 读书笔记 (3)
- 自考资料 (3)
- 习题自解 (1)
- 一例一课 (0)
- 运动积累 (1)
- 留档 (0)
- SQL (5)
- JPA (1)
- JSP (3)
- JSON (1)
- Javascript (5)
- Excel (1)
- vbox (3)
- 虚拟机 (1)
- nat (1)
- secureCRT (1)
- centos (1)
- ssh (1)
- ide (1)
- hive (2)
- impala (1)
- ascii (1)
- redis (1)
- seckill (1)
- nginx (2)
- git (0)
- mq (1)
- maven (1)
- java并发包 (1)
- 阅源 (1)
- mybatis (1)
最新评论
-
dotjar:
awk -F "/" '{print $3 ...
@Marked-linux命令使用 cut/sort/uniq -
DEMONU:
直接将要删除的key记下来,遍历完了,在删除
@Marked-Java 遍历Map时 删除元素 -
LeeXiao:
感谢分享
@Marked-Java 遍历Map时 删除元素 -
nicegege:
受益匪浅
mysql char varchar -
nicegege:
受益匪浅
@Maked-mysql使用规范
初学者测试
昨天自考考了《java程序语言设计》,有点不太记得类的初始化过程了,顺便复习了一下。
同样准备了测试题一枚。把自己的email分散到输出中,如果正确输出,说明分析正确了。
不行怎么行,这是基础。下面程序请先分析,如果结果(用白色字体是输出结果)正确,说明您对java类的初始化已经很熟悉,算是过关,如果没有,那赶紧复习吧。
package nie.test.extend; /** 子构造子的初始化过程: * @author dotjar * 1.父static域 * 2.父static块 * 3.子static域 * 4.子static块 * 5.父普通域 * 6.父普通块{} * 7.父构造子 * 8.子普通域 * 9.子普通块{} * 10.子构造子 */ public class Test { public static void main(String[] args) { new Son("s"); } } class Father { static protected String s = "father_static_property_string"; //1 protected String b = "father_normal_property_string"; //5 static { s = "o"; //2 System.out.print("d"); System.out.print(s); } { b="r"; //6 System.out.print("a"); System.out.print(b); } Father() { this("@"); System.out.print("1"); //8 } Father(String s) { System.out.print(s); //7 } } class Son extends Father { public static String s = "son_static_property_string"; //3 public String b = "son_normal_property_string"; //9 static { s = "j"; //4 System.out.print("t"); System.out.print(s); } { b = "3"; //10 System.out.print("6"); System.out.print(b); } Son() { System.out.print("."); //11 } Son(String s) { this(); System.out.print("com"); //12 } }
测试完自己的输出,可以用鼠标选中下一行,检查。
这里:dotjar@163.com
评论
1 楼
dotjar
2012-12-29
事实上这样解释更好:
1.先是父类静态域和静态块,子类静态域和静态块
2.接着父类构造子,子类构造子,但此处中断一下!因为当初始化到构造子,系统先判断是否初始化了实例域和实例块,没有就先初始化,然后再是调用构造子。
1.先是父类静态域和静态块,子类静态域和静态块
2.接着父类构造子,子类构造子,但此处中断一下!因为当初始化到构造子,系统先判断是否初始化了实例域和实例块,没有就先初始化,然后再是调用构造子。
发表评论
-
@Marked-ExecutorService的invokeAny方法注意
2018-08-23 20:19 932package com.msxf.datasource.t ... -
XML fragments parsed from previous mappers already contains value for
2018-06-02 19:36 26001. ssm项目报错: WARN [main] ... -
@Marked-阅源-jdk8-FunctionalInterface注解
2017-10-26 17:01 857package java.lang; impor ... -
TPE-ThreadPoolExecutor
2017-10-10 15:24 94TPE: java.util.concurrent ... -
@Marked-java-Queue方法
2017-06-27 14:09 617Collection>Queue // 1. 新增 ... -
ImpalaTest
2017-02-16 15:11 414package com.niewj.demo; imp ... -
@Marked-CORS跨域请求:前后端分离
2016-12-22 16:42 16771. 请求过滤器: /** ... -
@Marked-null列的值不参与比较
2016-10-26 17:23 571假如数据库有表emp: empno name age ... -
自定义泛型方法, 三级排序, low版,待升级
2016-10-20 21:17 460package com.jd.dashboard.util ... -
java enum 枚举值
2016-09-21 18:45 565public enum PieChartEnum { P ... -
maven install 时 pom中skip test
2016-09-19 23:08 5626<plugin> <groupI ... -
DateUtil-1
2016-09-19 21:47 504/** * @Title: DateUtil.java ... -
@Marked-ClassNotFoundException: java.util.ArrayList$SubList 错误
2016-09-18 15:00 1749ClassNotFoundException: java ... -
@Marked-mybatis 字符串比较 == 用法
2016-08-22 21:45 5891private String deptLevel; &l ... -
@Marked-List/Set 泛型转换
2016-08-04 11:02 1649Type typeSet = new TypeToken& ... -
@Marked-excel导出csv包括逗号等的处理
2016-08-03 09:22 4750/** * @Title: trimRubbishCh ... -
@Marked-保留两位小数,四舍五入
2015-06-16 01:09 673new java.text.DecimalFormat(& ... -
tomcat 404报错 问题可能之一
2015-05-29 18:20 1433一个tomcat下多个应用:我的应用xxx启动不起来,页面 ... -
@Marked-关于java和JS中的lastIndexOf方法的误解。
2014-08-08 16:32 761今天看JS的数组的lastIndexOf()方法,看书上的 ... -
@Marked-冒泡排序易理解实例
2013-05-08 11:43 1251package com.niewj.ds; publ ...
相关推荐
在实际开发中,理解这个初始化顺序是非常重要的,尤其是在设计复杂的类结构或者涉及单例模式、线程安全初始化等场景时。如果在构造器或初始化块中依赖其他静态或非静态成员,必须确保这些成员在需要之前已经被正确...
在这个特定的程序中,我们看到了一个关于Java继承的实例,它演示了子类对象初始化时涉及的各个步骤,包括构造方法、初始化值、父类构造方法以及父类的初始化值。 首先,我们有一个名为`Parent`的父类,它有两个实例...
在Java编程语言中,程序初始化的顺序是一个关键概念,它涉及到类加载、对象创建以及执行流程的安排。了解这些顺序对于编写高效、无错误的代码至关重要。以下是对Java程序初始化顺序的详细说明: 1. **类加载阶段**...
Java中,类变量(static变量)的初始化顺序遵循以下规则: 1. 首先,执行父类的静态初始化块(方法),如果有的话。 2. 然后,执行子类的静态初始化块。 3. 静态变量的初始化顺序取决于它们在代码中声明的顺序,而...
在Java中,类的初始化顺序是面试中的经典问题之一,它涉及到继承、静态成员以及实例成员等多个方面。正确理解类的初始化顺序对于编写正确、高效的代码至关重要。 首先,需要了解Java类初始化的基本规则,即在类的...
了解List的初始化方法可以帮助开发者更好地使用Java中的List数据结构,在实际开发中可以根据实际情况选择合适的方法。同时,了解List的初始化方法也可以帮助开发者更好地理解Java中的数据结构。 在实际开发中,选择...
Java语言中的类初始化顺序是面试中...在实际编程中,我们有时需要依赖这种初始化顺序来确保数据的正确初始化,特别是在处理复杂的继承结构和多线程场景时。因此,熟练掌握类初始化顺序是每个Java程序员的基础技能之一。
Java 类的继承是其面向对象特性中的核心概念之一,它为代码重用和构建复杂的软件结构提供了基础。在 Java 中,一个类可以扩展另一个类的功能,这个被扩展的类被称为父类(或超类),而扩展的类则称为子类(或派生类...
Java中的继承和接口是面向对象编程的关键特性,它们在软件设计中扮演着至关重要的角色,实现了代码的重用和类的层次结构。 继承是Java中创建新类的一种方式,它允许一个子类(SubClass)从一个已存在的父类...
在这个"Java继承实例源代码"的压缩包中,包含的文件可能提供了关于Java继承和多态性的实际应用示例。 首先,我们来看“继承”这一概念。在Java中,通过使用关键字`extends`,一个类可以声明其为另一个类的子类。...
2. 避免在类的静态字段初始化中直接或间接地依赖其他类尚未初始化的静态字段,因为这可能导致数据不一致或错误。 为避免这些“雷区”,应该遵循以下最佳实践: - 尽量减少静态字段的使用,尤其是涉及类间依赖的静态...
当子类实例化时,会调用抽象类中的构造方法进行初始化。 在Java中,实例化抽象类的一种常见方式是通过子类继承并实现抽象方法。假设有一个抽象类`AbstractBase`: ```java public abstract class AbstractBase { ...
在 Java 中,类是用来封装数据和行为的结构,而对象则是类的实例,具有具体的属性和行为。 1. **类与对象的区别** 类是模板或者蓝图,它定义了一组特性和行为,这些特性通过成员变量(属性)表示,行为通过方法...
在Java编程语言中,`static`关键字扮演着重要的角色,特别是在初始化类的静态成员时。`static`静态初始化块是用来初始化类级别的变量,也就是说,这些变量是属于类本身,而不是类的实例。当我们讨论“Java static...
在`Student`的构造函数中,我们可以看到`super(name, age)`的使用,这表示`Student`类在初始化时会调用`Person`类的两个参数构造函数,将参数传递给父类。 在`Test`类的`main`方法中,我们创建了三个`Student`对象...
这是因为Java中类的继承通过`extends`关键字来表示,表示类B继承自类A。 ### 12. 类的多重继承 **概念:** Java不支持多重继承,即一个类不能直接继承多个父类。但是一个类可以实现多个接口。 **选择题示例:** 第...
在Java编程语言中,继承是面向对象特性的重要组成部分,它允许一个类(子类)从另一个类(父类)继承属性和方法。了解Java中继承关系的加载顺序对于理解和优化程序性能至关重要。以下是对这个主题的详细阐述: 1. ...
Java 在 HashMap 初始化时赋初值过程解析 ...本文介绍了 Java 中的 HashMap 初始化时赋初值过程解析,包括使用双括号进行初始化的语法和可能导致的串行化失败的问题,以及解决办法。希望对大家的学习有所帮助。
在这个"java关于继承的思维导图(Xmind)"中,我们可以看到作者对Java继承机制的详细梳理。 1. **类的层次结构** - 在Java中,类可以看作是对象的模板,通过继承,子类可以共享父类的特性。这构建了一个类的层次结构...