- 浏览: 445525 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (369)
- javascript html (20)
- java (31)
- jquery (15)
- jcrop (0)
- JEECG (1)
- ajax (3)
- 反射 (3)
- VI (1)
- mysql (48)
- easyui (1)
- svn (2)
- MD5 加密 (1)
- spring (14)
- ORACLE (8)
- 经验总结 (1)
- TCP/IP协议 (1)
- ICMP协议 (1)
- eclipse (1)
- Reflect (1)
- linux (21)
- android (5)
- excel 操作 (1)
- java tree (1)
- html (1)
- plupload (1)
- mongodb (9)
- aes (1)
- python (1)
- java relax (1)
- highcharts (2)
- json (2)
- java 多线程 (30)
- maven (2)
- 设计模式 (1)
- jsp+js (2)
- 面向对象 (1)
- jvm (16)
- 缓存 (1)
- proxy (1)
- 聊侃 (1)
- 面经 (1)
- java 字节 (1)
- java 类加载器 (2)
- java 基础 (2)
- java 语法糖 (1)
- java 位运算 (1)
- 排序 (3)
- java 服务器性能优化 (19)
- 网络编程 (2)
- jvm 参数设置 (0)
- jersey (1)
- webservice (2)
- nginx+多tomcat 集成 (5)
- nginx (16)
- squid (3)
- memcached (5)
- 正则表达式 (1)
- 常用免费接口 (1)
- jpa (1)
- win7 (1)
- java处理大文件 (1)
- js正则表达式 (1)
- tomcat (1)
- java 敏感字 (1)
- 系统架构优化 (4)
- 学习 (1)
- 本地测试QQ微博第三方登陆 (1)
- java 错误 (1)
- 微信支付 (1)
- https (1)
- httpclient (1)
- awk (2)
- loadrunner (1)
- sql server 2008 (3)
- git (4)
- sql server2008 (1)
- solr (2)
- centos (1)
- 数据存储架构 (3)
- log4j (1)
- weboffice (1)
- 并发编程 (1)
- postgreSQL (0)
- ssl (1)
- openssl (1)
- activeMQ (2)
- IDEA (1)
- shell (1)
- ansible (4)
- docker (2)
- grafana (1)
- jmeter (1)
- TLS (1)
- 将博客搬至CSDN (1)
最新评论
-
dida1990:
啊喔,过去了这么久,不过还是评一个。谁说uuid的hashCo ...
高并发生成订单号(二) -
annan211:
yclovesun 写道使用了uuid,为什么还要machin ...
高并发生成订单号(二) -
yclovesun:
使用了uuid,为什么还要machineId?uuid已经可以 ...
高并发生成订单号(二) -
u013280917:
太深奥,看不懂
mysql优化特定类型的查询
class Nolization{ static{ System.out.println("Nolization init"); } public static int value = 123; } class Contant extends Nolization{ static{ System.out.println("Contant init"); } } public class ContantClass { public static void main(String[] args) { System.out.println(Contant.value); } }
上面这段代码的执行结果是 Nolization init
123
并没有输出 Contant init,这是因为 jvm 对于 静态字段,只有直接定义这个字段的类才会被初始化。
再看下面这段代码
class Nolization{ static{ System.out.println("Nolization init"); } public static final int value = 123; } class Contant extends Nolization{ static{ System.out.println("Contant init"); } } public class ContantClass { public static void main(String[] args) { System.out.println(Contant.value); } }
相比于上段代码,仅仅是将value 从public static int 改为 public static final int ,输出的结果变成了 123,不再输出任何类的初始化信息。
这是因为 jvm 在编译阶段 将常量 123 存储到了 ContantClass 的常量池中,对 Contant.value 的引用实际都转化为 ContantClass 对自身常量的引用了,也就是说 ContantClass 的class文件中并不存在 Nolization 的任何调用入口,在编译成class文件之后,这两个字节码文件已经不存在任何联系了。
发表评论
-
实现虚拟机VMware上linux与windows互相复制与粘贴
2014-11-17 13:15 1290实现虚拟机VMware上linux与windows互相复制 ... -
java 虚拟机线程与操作系统内核线程之间的关系
2014-09-23 15:13 4640java jdk 中 线程操作与虚拟机中线程操作之间的关系映射 ... -
java 语法糖 分析(一,泛型与类型擦除)
2014-09-18 11:14 504语法糖是一种计算机术语,是为了更加方便理解计算机语言或者说 ... -
Java 读写锁demo
2014-09-11 15:27 705java 读写锁 原理 和 实例 package thread ... -
java 语言的静态多分派和动态单分派 的特性
2014-09-10 18:23 1074Java 语言的静态多分派和动态单分派特性。 先来熟悉概念: ... -
字节码验证 的高度对jvm的优化
2014-09-09 16:08 1131程序员对虚拟机的优化 ... -
接口与类的真正区别
2014-09-09 14:50 410接口与类不存在区别,除了字面修饰符不同外,其真正区别是: 当 ... -
java static 类型变量定义技巧
2014-09-05 18:33 841java 变量的定义非常重要,在一定程度上可以减轻服务 ... -
eclipse 启动参数配置
2014-09-05 16:44 360参数见附件 -
too many open files 异常
2014-09-05 14:08 512每个Socket 连接都有 Receive 和 s ... -
堆转储快照(dump)的分析
2014-09-05 13:50 1065dump ,堆转储快照的详细分析,后面分析啊,现在没时 ... -
高性能硬件上的程序部署策略
2014-09-04 18:12 485一个15万pv、天左右 ... -
jsp 页面 查看线程堆栈状况
2014-09-04 15:53 644jsp 页面 查看线程堆栈信息状况 具体见 附件 -
jvm 本地方法栈(native Method stacks) 基本概念
2014-09-03 15:38 1085Java 虚拟机 运行时数据区域 一般可区分为 :方法区,堆 ... -
jvm 栈 基本概念
2014-09-03 15:10 515java 程序员 通常把java程序运行时的内存 分为 堆内存 ...
相关推荐
在JVM加载一个类的时候,若该类存在static修饰的成员变量和成员方法,则会为这些成员变量和成员方法在固定的位置开辟一个固定大小的内存区域,有了这些“固定”的特性,那么JVM可以非常方便地访问他们。同时如果静态...
java简介、java不同版本、java特点、jdk、第一个程序、jdk、jre、jvm、eclipse配置、注释、标识符、变量、数据类型、运算符、分支语句、命名规范、循环语句、数组、main方法、面向对象、成员变量和局部变量、构造...
1、实例变量和类变量的内存分配 ... 2、类变量的初始化时机总是出于实例变量的初始化之前 我们先看下下面三段代码: 1)因为两个实例变量都是在创建变量的时候才开始分配空间,此时num2还没有
在 Java 7 之前,你可以通过使用静态初始化运行 Java 类。但是,从 Java 7 开始就行不 通了。 3. String 类为什么是 final 的。 主要是为了“效率”和“安全性”的缘故。若 String 允许被继承, 由于它的高度被 ...
2.1.3 类变量的初始化时机 2.2 父类构造器 2.2.1 隐式调用和显式调用 2.2.2 访问子类对象的实例变量 2.2.3 调用被子类重写的方法 2.3 父子实例的内存控制 2.3.1 继承成员变量和继承方法的区别 2.3.2 内存...
•成员变量是随类的初始化或对象初始化而初始化的。final修饰的成员变量必须由程序员指定初始值。 •对于类属性而言,要么在静态初始化中初始化,要么在声明该属性时初始化。 •对于实例属性,要么在普通初始化块...
Java基础 java控制流程语句 数据交换 左(右)移 加密 java控制流程语句 switch语句 季节判断 while循环 1+...+100 do while循环 ...jvm类加载顺序决定代码执行顺序 super关键字 方法重写 instanceof关键字 fi
3.15 作为方法名来初始化对象 50 3.16 作为参数传递 51 3.17 Java方法重载 52 3.18 Java类的基本运行顺序 53 3.19 Java包装类、拆箱和装箱详解 54 3.20 包装类的应用 54 3.20.1.1 1) 实现 int 和 Integer 的相互转换...
从今天开始打卡学习JVM,第一天 本人学习过程中所整理的代码,源码地址 – 类加载 在Java代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的 加载:查找并加载类的二进制数据,具体...初始化:为类的静态变
拆箱装箱拆箱自动装箱与手动装箱String基本概要String与StringBuffer和StringBuilderString pool参数传递重点类型转换基本概要float 与double的恩怨智能整数switch基本概要关键字finalstatic类内变量和方法初始化...
3.当一个类的成员变量是基本类型时,JVM会默认将其初始化为对应的初值,但是最好自行进行初始化。 成员变量: 基本类型的初始化值是0, 引用的初始化值是null。 局部变量:必须给一个初始化的值,不然编译会报错。 4...
静态初始化块(经常用来初始化类,加载类信息时执行!) 67 package 68 JDK中的主要包 68 import 68 eclipse的使用 69 继承(extend, inheritance) 70 为什么需要继承?继承的作用? 70 继承介绍 70 如何实现继承? ...
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 22、JSP中动态INCLUDE与静态INCLUDE的区别? 动态INCLUDE用jsp:...
5.12 类的初始化 83 5.12.1 静态块 84 5.12.2 实例块 84 5.13 巩固练习 85 第6章 数组 86 6.1 基本数据类型数组 86 6.2 一维数组的初始化 88 6.3 对象数组 88 6.4 二维数组 91 6.5 三维数组 95...
(3) 抽象类可以定义成员变量和成员方法 (4) 抽象类可以有构造,但不用于new对象,而是用于子类创建对象jvm默认创建父类对象应用 abstract修饰方法 (1) 被 abstract 修饰的方法称为抽象方法 (2) 抽象方法只有声明部分,...
目前,该变量在以下情况下初始化: 类被加载(对于静态函数) 或者在创建对象时(例如方法) 在插件的未来迭代中,可能支持仅在第一次调用该方法时才支持初始化。 因此,由于这个插件不能改变javac解析器,只能改变...
弄清构造函数和终结方法在继承层次结构中的调用顺序,强调子类必须调用超类的构造函数分配空间和初始化超类数据。 掌握方法重写(override)的基本要求。 理解和使用关键字final。 理解包的...
静态变量和静态方法的意义,如何引用一个类的静态变量或者静态方法? 50.JAVA语言如何进行异常处理,关键字:thorws,throw,try,catch,finally 51.Object类(或者其子类)的finalize()方法在什么情况下被调用? 52....
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。 25、JSP中动态INCLUDE与静态INCLUDE的区别? 动态INCLUDE用jsp:...