Java| Java的类加载顺序
来源:互联网 发布:游族网络大皇帝礼包 编辑:程序博客网 时间:2024/06/11 15:27
Agent.java
/** * 静态块中只能调用在该静态块 之前声明的静态变量 * * 普通块中只能调用在该普通块 之前声明的普通变量 * * * 调用final 修饰的字段是不会加载类的,但是调用final 修饰的方法事会加载 * * @author Yves He * */public class Agent { private String genStr = "gen str"; public static String staticStr = "static str"; public static final String FINAL_STR = "final str"; { // 实例化对象时会执行( new对象时) System.out.println(genStr); } static { // 静态成员被调用时(记载静态数据时 会执行静态块) System.out.println(staticStr); } public final void showHelloFinal() { System.out.println("invoke final method."); } public static final void showHelloStaticFinal() { System.out.println("invoke static final method."); } static { showHelloStaticFinal(); } { System.out.println("Yves"); }}
Test.java
/** * final 特别的调用static final修饰的变量 ,不会加载类,只有final修饰的方法不能单独调用,要产生实例才能调用,static final修饰的方法,会以加载静态数据的方式加载类. * * static 调用static修饰的成员(包括变量和方法) 会加载类,并会对的静态的数据初始化(静态变量和静态方法)和执行静态代码块. * * new 产生对象实例时,会加载类的普通初数据初始化(普通变量和普通方法)和执行普通的代码块 * * * @author Yves He * */public class Test { public static void main(String[] args) { // 加载final成员 : 只能调用static final的变量和方法,调用变量时,不会加载类,调用方法时,与调用static其他方法一直,会记载类. String finalStr = Agent.FINAL_STR; // 特别的,不加载类. Agent.showHelloFinal();//报错, 非static方法,不能调用. // 加载static数据 : 加载类,初始化静态数据 String aa = Agent.staticStr; Agent.showHelloStaticFinal(); // 加载实例化对象: 加载类,初始化普通数据 new Agent(); }}
阅读全文
0 0
- Java类的加载顺序
- java类的加载顺序
- Java类加载的顺序
- Java类的加载顺序
- JAVA类的加载顺序
- java类的加载顺序
- Java类的加载顺序
- java的类加载顺序
- Java类的加载顺序
- java类的加载顺序
- Java类的加载顺序
- JAVA 类的加载顺序
- java类的加载顺序
- Java类的加载顺序
- Java类的加载顺序
- java类加载器的加载顺序
- Java| Java的类加载顺序
- Java类加载顺序
- windows常用快捷键
- java 不可变对象
- jQuery Tooltip插件
- ArrayBlockingQueue和LinkedBlockingQueue源码分析(jdk1.8)
- CSS伪元素的作用
- Java| Java的类加载顺序
- 新闻推荐系统:基于内容的推荐算法(Recommender System:Content-based Recommendation)
- 机器学习算法-随机森林
- Kotlin之基本语法
- C++primer[习题][第二章][11-20]
- Drupal7 API Hooks
- 剑指offer_二叉树---树的子结构
- 好看的网站布局
- Instability