- 博客(9)
- 资源 (68)
- 收藏
- 关注
原创 Java并发编程之volatile
volatile可以说是Java虚拟机提供的最轻量级的同步机制,Java内存模型对volatile专门定义了一些特殊的访问规则。当一个变量定义为volatile之后,它将具备两种特性,第一是保证此变量对所有线程的可见性,这里的“可见性”是指当一条线程修改了这个变量的值,新值对于其他线程来说是可以立即得知的。 而普通变量不能做到这一点,普通变量的值在线程间传递均需要通过主内存来完成,例如,线程A修改一
2017-12-30 22:25:35 707
原创 Java并发编程之内存模型
硬件的效率与一致性让计算机并发执行若干运算任务不可能只靠处理器“计算”就能完成,处理器至少要与内存交互,如读取运算数据、存储运算结果的哪个,由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲;将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存
2017-12-26 21:09:24 892
原创 深入理解Java虚拟机 - 泛型与类型擦除
泛型是JDK 1.5的一项新增特性,它的本质是参数化类型(Parametersized Type)的应用,也就是说所操作的数据类型被指定为一个参数。 这种参数类型可以用在类、 接口和方法的创建中,分别称为泛型类、 泛型接口和泛型方法。Java语言中的泛型只在程序源码中存在,在编译后的字节码文件中,就已经替换为原来的原生类型了,并且在相应的地方插入了强制转换代码,因此,对于运行期的Java语言来
2017-12-22 13:39:37 1773 2
原创 深入理解Java虚拟机 - 字节码指令集
Java虚拟机的指令由一个字节长度的、 代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成。字节码与数据类型在Java虚拟机的指令集中,大多数的指令都包含了其操作所对应的数据类型信息。 例如,iload指令用于从局部变量表中加载int型的数据到操作数栈中,而fload指令加载的则是float类型的数据。
2017-12-22 13:38:05 2110
原创 深入理解Java虚拟机 - 类文件结构
无关性的基石各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基石。实现语言无关性的基础仍然是虚拟机和字节码存储格式。 Java虚拟机不和包括Java在内的任何语言绑定,它只与“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了Java虚拟机指令集和符号表以及若干其他辅助信息。Class类文件的结构任何一个Clas
2017-12-19 21:04:04 1062
原创 深入理解Java虚拟机 - OutOfMemoryError异常
在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都 有发生OutOfMemoryError(下文称OOM)异常的可能下文代码的开头都注释了执行时所需要设置的虚拟机启动参数(注释中“VM Args”后面跟着的参数),这些 参数对实验的结果有直接影响,可在Eclipse IDE中设置如下:-verbose:gc -Xms20M -Xmx20M -Xmn10
2017-12-12 22:01:07 1190
原创 深入理解Java虚拟机 - Java内存区域
运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。 这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。 根据《Java虚拟机规范(Java SE 7版)》 的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示。程序计数器程序计数器:
2017-12-10 23:07:51 987
原创 MYSQL实现Oracle的Start with…Connect By递归树查询
因项目迁移,使用的数据库也需要从Oracle迁移到MySQL 其中有个功能使用到了Oracle的Start with…Connect By递归树查询,而MySQL中没有此函数,但可以通过自定义函数的方式来解决这个问题创建表create table treeList( id varchar(10), -- 节点ID name varchar(10), -- 节点名称 p
2017-12-08 17:58:43 7079 1
原创 EasyUI tree 实现点击展开/折叠
$('#tt').tree( { url : 'getTree.do', animate: true, onClick: function(node){ $('#tt').tree(node.state === 'closed' ? 'expand' : 'collapse', node.target); }});作者:itmyhome
2017-12-01 19:17:32 9807 1
jQuery全屏插件Textarea Fullscreen
2014-08-07
jQuery幻灯片插件Skippr
2014-08-06
jQuery跳房子插件hopscotch
2014-08-05
jQuery回到顶部插件jQueryGoUp
2014-08-04
Bootstrap网站模板
2014-07-31
Flexigrid的使用(整合Struts2 )
2014-07-09
EasyUI DataGrid及Pagination(源码)
2014-07-08
EasyUI项目
2014-07-07
jfreechart.zip(含项目代码)
2014-07-05
jfreechart
2014-07-05
ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)
2014-07-03
ajaxFileUpload+struts2实现多文件上传(源码)
2014-07-02
Struts2框架搭建(源码)
2014-07-02
Struts2框架搭建(项目源码)
2014-07-01
jquery.cycle.all.js
2014-06-15
ibatis实战之一对多关联(源代码)
2014-06-13
ibatis实战之基础环境搭建(源码).zip
2014-06-09
ibatis-2.3.4.726.zip
2014-06-09
springMVC3学习(十二)--文件上传优化CommonsMultipartResolver(源码)
2014-06-05
Struts2 自定义下拉框标签Tag(源码)
2016-02-25
Java实现POI导出Excel
2015-11-19
JavaScript编码规范
2015-11-17
uploadifive struts2实现图片上传
2015-03-06
jQuery表单插件jquery.form.js(示例源码)
2015-01-18
windows安装jekyll所需软件 ruby DevKit python pip
2014-12-19
Struts2 ajax json使用介绍
2014-12-17
kindeditor图片上传 struts2实现
2014-11-17
EasyUI Editable Tree源码
2014-09-02
EasyUI实现异步加载tree(整合Struts2)源码
2014-09-01
CKEditor实现图片上传(使用Struts2)
2014-09-01
SyntaxHighlighter代码高亮插件
2014-08-14
xheditor搭建
2014-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人