众所周知,当訪问一个类的变量或方法的时候。假设没有初始化该类。就会先去初始化一个类

可是,当这个类的变量为final的时候,就不一定了

请看以下的样例

package com.lala.shop;

import java.util.Random;

public class App
{
public static void main(String[] args)
{
System.out.println(User.c);
}
}
class User
{
public static final int b = new Random().nextInt(11);
public static final int c = 20;
static
{
System.out.println("user static init ...");
}
}

当訪问

System.out.println(User.c);

的时候,没有输出 "user static init ..."

由于c是static final变量。且它等于20。在编译的时候就能够知道它的值。所以直接訪问a的值不会引起User类的初始化

当訪问

System.out.println(User.b);

的时候。就输出"user static init ..."

这个static final变量b由于在编译的时候无法知道它的确切的值。所以仅仅有等到执行的时候才干知道,所以自己訪问

User.b会引起User类的初始化。也就是static静态代码快的载入

最新文章

  1. 使用InstallAnywhere工具打包Java_Web程序
  2. 如何打开 系统信息窗体和 DirectX诊断工具
  3. ListView下拉加载一(分页)
  4. java提高篇(十)-----详解匿名内部类
  5. eclipse打开jar包出现乱码问题解决方法
  6. spark sql cache
  7. hihoCoder 数论五·欧拉函数
  8. Android实现图片裁切
  9. mycat表拆分操作教程
  10. 数据结构(线段树):CodeForces 85D Sum of Medians
  11. C# 文件/文件夹压缩
  12. POJ 3126 Prime Path(BFS 数字处理)
  13. 网络爬虫之定向爬虫:爬取当当网2015年图书销售排行榜信息(Crawler)
  14. FCC(ES6写法) Inventory Update
  15. vue实现点击展开,点击收起
  16. ubuntu下安装配置apache2与php
  17. js没有函数重载
  18. Windows 下最佳的 C++ 开发的 IDE 是什么?
  19. java Concurrent包学习笔记(五):Semaphore
  20. windows下apk查看工具的原理

热门文章

  1. OCP-1Z0-051-题目解析-第27题
  2. [Python] Python Libs
  3. HDU1796 How many integers can you find【容斥定理】
  4. app 设计原则 ,步骤
  5. php中str_repeat函数
  6. HDU 4007 Dave(离散化)
  7. Linux网卡驱动框架及制作虚拟网卡
  8. JNDI学习总结(4)——Tomcat下使用Druid配置JNDI数据源
  9. RGB 颜色空间转 HSI 颜色空间的matlab程序实现
  10. Pig源代码分析: 简析运行计划的生成