- 浏览: 1069090 次
- 性别:
- 来自: 南京
-
文章分类
- 全部博客 (501)
- dwr (6)
- javascript (84)
- oracle (66)
- jsp/servlet (18)
- ant (3)
- 基础知识 (12)
- EXT (10)
- My SQL (10)
- java (71)
- spring (37)
- 学习的对象 (2)
- Linux (24)
- 面试 (1)
- HTML/CSS (11)
- tomcat (11)
- 收藏夹 (2)
- Power Designer (2)
- struts.xml配置文件 (1)
- sturts2 (3)
- myeclipse (8)
- eclipse (7)
- Maven (34)
- SVN (3)
- SAP JCO (2)
- JBOSS (11)
- webservice (8)
- word (1)
- 敏捷开发 (1)
- sybase (4)
- Nexus (3)
- EhCache (3)
- log4j (3)
- Cookie (4)
- Session (4)
- CXF (7)
- AXIS (2)
- SSO (1)
- LDAP (1)
- velocity (2)
- Jquery (5)
- redis (2)
- http (4)
- dojo (1)
- Linux资源监控软件mnon的安装与运用 (1)
- notepad++ (1)
- EA (1)
- UML (1)
- JasperReports (1)
- 权限 (0)
- freemarker (4)
- Spring MVC (1)
- JMS (1)
- activeMQ (1)
- hession (3)
- 安全 (1)
- ibatis (2)
- log (1)
- nginx (1)
最新评论
-
winhbb:
我刚好遇到了一个问题(在可以依赖注入的场合有效):有两个模块A ...
解决Maven项目相互依赖/循环依赖/双向依赖的问题 -
nanjiwubing123:
long3ok 写道你好 XmlOutputFormatter ...
用XStream转换复杂XML -
zhoujianboy:
另外一个方法实现eclipse tomcat 热部署:http ...
eclipse下实现maven项目在tomcat容器热部署方法 -
long3ok:
你好 XmlOutputFormatter 请问这个类是在什么 ...
用XStream转换复杂XML -
ganbo:
总结的好,文章给力。
解决Maven项目相互依赖/循环依赖/双向依赖的问题
1.package test; 2. 3.public class Test { 4. public static void main(String[] args) { 5. new Son(); 6. } 7. 8. public static void print(String msg) { 9. System.out.println(msg); 10. } 11. 12. public static int getInt(String name) { 13. print("static member " + name); 14. return 0; 15. } 16. 17. public static String getString(String name) { 18. print("nonstatic member " + name); 19. return ""; 20. } 21. 22. static class Parent { 23. Parent() { 24. print("constructor parent"); 25. } 26. 27. static { 28. print("static block parent"); 29. } 30. 31. { 32. print("nonstatic block parent"); 33. } 34. 35. String str = getString("parent"); 36. 37. static int i = getInt("parent"); 38. } 39. 40. static class Son extends Parent { 41. Son() { 42. print("constructor son"); 43. } 44. 45. static { 46. print("static block son"); 47. } 48. 49. { 50. print("nonstatic block son"); 51. } 52. 53. String str = getString("son"); 54. 55. static int i = getInt("son"); 56. } 57.}
这个说明了Java类的执行顺序为:
父类的静态块--->父类的静态成员--->子类的静态块--->子类的静态成员--->父类的非静态块--->父类的非静态成员--->
父类的构造函数--->子类的非静态块--->子类的非静态成员--->子类的构造函数
内部类:先初始化内部类,后外部类
构造器:先初始化父类的构造器,后初始化子类构造器
发表评论
-
个人草稿使用
2017-08-19 09:02 0深入理解JVM: http://www.cnblogs.co ... -
Thread.setDaemon详解
2015-04-24 21:31 919java中线程分为两种类型:用户线程和守护线程。通过Threa ... -
怎么使用 ConcurrentHashMap 才能是线程安全的?
2015-04-13 11:54 1515public class test { public ... -
21,tomcat关闭钩子
2014-12-31 10:36 735在很多环境下,在关闭应用程序的时候需要做一些清理工作。问题在于 ... -
Java NIO使用及原理分析 (一) 【转载】
2014-10-24 00:04 493【转载】: http://blog.csdn.net/wuxi ... -
Java 两个集合取交集
2014-10-14 21:16 3143public static Set intersectionS ... -
Calendar类roll和add的区别
2014-10-10 22:28 503import java.text.SimpleDateForm ... -
Gson通过借助TypeToken获取泛型参数的类型的方法
2014-09-30 00:26 635[size=medium]最近在使用Goo ... -
HashMap的遍历效率讨论
2014-09-27 20:41 839经常遇到对HashMap中的key和value值对的遍历操作, ... -
Java 泛型
2014-06-26 12:44 866关键字说明 ? 通配符类型 <? extends T&g ... -
Java泛型集合的理解
2014-06-26 00:05 515[size=medium]什么是泛型? 泛型(Generic ... -
关于java字节码框架ASM的学习
2014-06-19 19:22 898一、什么是ASM ASM是一个java字节码操纵框架, ... -
Java动态代理详解
2014-06-19 17:41 869Java动态代理详解: http: ... -
Java内存,字符串文章收集
2014-06-18 16:24 739java--String常量池问题的几个例子 . http:/ ... -
Java内存解析
2014-06-18 11:48 785栈、堆、常量池等虽同 ... -
Java的堆与非堆内存
2014-01-07 10:59 724堆(Heap)和非堆(Non-heap)内存 按照官方的说法: ... -
JMX 资料收集
2014-01-07 10:53 480JavaSky的专栏 http://blog.csdn.net ... -
JAVA 注解示例 详解
2013-11-12 09:36 833注解(Annotation) 为我们在代码中天界信息提供了 ... -
Java 泛型详解
2013-11-11 22:35 836http://www.360doc.com/content/1 ... -
Java中的Enum的使用与分析
2013-11-09 12:49 827enum枚举类型:在实际问 ...
相关推荐
遵循正确的构造顺序不仅有助于避免常见的编程陷阱,还能确保类和对象的正确初始化,从而提升程序的稳定性和性能。通过以上步骤的分析,我们可以更加深刻地认识到Java语言设计的严谨性和灵活性,同时也提醒我们在实际...
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
这是因为每个对象在创建时都需要先初始化其基类的部分,这通常意味着父类的构造函数会在子类构造函数之前调用。在Java中,如果子类没有显式地调用父类的构造函数,那么会默认调用父类的无参构造函数。 通过分析给定...
- **调用父类构造器**:最重要的是,`super`可以用于在子类构造器中调用父类的构造器。这对于初始化父类的状态非常有用。 - **追溯父类**:`super`不仅可以用于直接父类,还可以追溯到更远的祖先类。 **2. 调用父类...
本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...
综上所述,程序执行顺序的基本原则是:首先初始化并执行父类的构造器、静态和实例初始化块,然后执行子类的构造器、实例初始化块。最后,当通过子类对象调用方法时,优先执行子类覆盖的方法。理解这一顺序对于编写可...
Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); ...
在多级继承关系中,静态代码块按照类的加载顺序执行,先加载的类先执行其静态代码块。 例如,在给定的代码中: ```java public class A { static { System.out.print(1); } public A() { System.out.print(2)...
4. **父类的非静态实例初始化**:在调用子类构造器之前,父类的实例变量会被初始化。在这个例子中,`Art`类的构造器`Art()`被调用,打印出"Art"。注意,这是在`Cartoon`的构造器开始执行之前发生的,即使`Art`的构造...
在Java编程语言中,程序初始化的顺序是一个关键概念,它涉及到类加载、对象创建以及执行流程的安排。了解这些顺序对于编写高效、无错误的代码至关重要。以下是对Java程序初始化顺序的详细说明: 1. **类加载阶段**...
在JAVA编程语言中,程序的执行顺序是程序员需要掌握的关键概念之一,因为它直接影响到程序的行为。以下是关于JAVA程序执行顺序的详细解释: 1. **静态块**: 静态块是在类加载时执行的,它不依赖于类的实例。在...
Java类的执行顺序是理解Java程序行为的关键,它涉及类的加载、初始化以及构造过程中的各种细节。以下是对类执行顺序的深入解析,基于标题“类执行顺序小结”和描述“关于Java类的执行顺序详解”。 #### 一、类的...
其次,子类构造器的执行顺序。当一个子类对象被创建时,构造器的调用顺序是:首先执行父类的构造器,然后执行子类的构造器。这是因为初始化父类的状态是子类对象创建的前提。一旦父类构造器执行完毕,子类才能在其...
如果子类的构造方法没有明确调用父类的构造方法,那么Java会默认调用父类的无参构造方法。但如果父类中没有无参构造方法,或者需要在子类中传递特定参数到父类构造方法,则需要使用`super()`关键字显式调用父类的...
在例子中,"=========构造方法======== "(父类构造方法)和"=========子类构造方法======== "(子类构造方法)的顺序体现了这一点。 4. **对象操作**:一旦对象创建完成,就可以调用对象的方法。在示例中,"ts....
如果子类构造器没有显式调用父类构造器(使用`super()`),Java会默认添加`super()`调用到构造器的最开始。 4. **子类成员变量初始化**:最后,执行子类的非静态成员变量初始化。 在实际编程中,`super`关键字用于...
3. **子类构造器**:最后,执行枚举类自身的构造器。在Java中,枚举的构造器默认是私有的,不能从外部直接实例化。枚举实例是在枚举声明中通过列举的方式创建的,例如`public enum Color { RED, GREEN, BLUE }`。...
子类的静态变量和静态代码块,按代码先后顺序执行 3. 父类的成员变量和普通代码块,按代码先后顺序执行 4. 父类的构造方法 5. 子类的成员变量和普通代码块,按代码先后顺序执行 6. 子类的构造方法 其中,静态...
当一个类继承自另一个类时,子类的构造方法可以使用`super`关键字调用父类的构造方法,确保父类的状态得到正确初始化。例如: ```java public class Student extends Person { private String major; public ...
“礼让”原则是指在父类和子类的继承关系中,子类的实例化操作时,需要先调用父类的构造函数,然后再调用子类的构造函数。 三、Java 对象初始化顺序的实例分析 以下是一个示例代码,用于演示 Java 对象初始化顺序...