jvm
annan211
这个作者很懒,什么都没留下…
展开
-
jvm 栈 基本概念
java 程序员 通常把java程序运行时的内存 分为 堆内存和栈内存,其实这是一种非常粗糙的分类方式。java 虚拟机 将字节码文件编译为 机器码的时候,在执行具体方法的同时,会创建一种栈帧,叫 java 虚拟机栈帧,用于存储局部变量表,操作栈,动态连接,方法出口等信息。而普通程序员所说的 栈内存 就是指本处的 帧栈里面的 局部变量表。局部变量表存放了编译期可知的8种基本数据类型(64位...原创 2014-09-03 15:10:28 · 269 阅读 · 0 评论 -
java 虚拟机线程与操作系统内核线程之间的关系
java jdk 中 线程操作与虚拟机中线程操作之间的关系映射 在多cpu处理器中,一个cpu 可以映射多个 KLT指令集,一个KLT 又可以映射多个轻量级线程LWP,这里的 cpu KLT LWP 都是系统级的成员,一个轻量级线程 又对应着多个用户线程。 线程的实现方式可以有多种 1 内核线程实现 直接由操作系统内核支持的线程,内核通过操纵调度器来吧任...原创 2014-09-23 15:13:40 · 629 阅读 · 0 评论 -
java 语法糖 分析(一,泛型与类型擦除)
语法糖是一种计算机术语,是为了更加方便理解计算机语言或者说更便于编程而存在的,对编码的功能没有影响。 严格来说,几乎所有的人类编码,都算是语法糖的体现,只有计算机指令除外。 但是本文为了更好理解语法糖,站的角度略微不同。 在Java语言里,类型转换是无法预期的,有些时候 在编译期 编译器并不知道此类型转换能否成功,许多的转换异常 ClassCastException...原创 2014-09-18 11:14:46 · 121 阅读 · 0 评论 -
Java 读写锁demo
java 读写锁 原理 和 实例[code="java"]package thread;import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.locks.ReentrantReadWriteLock;public cla...原创 2014-09-11 15:27:55 · 306 阅读 · 0 评论 -
java 语言的静态多分派和动态单分派 的特性
[code="java"][/code]Java 语言的静态多分派和动态单分派特性。先来熟悉概念: 静态多分派: 静态分派 意思是 所有依赖静态类型来定位方法执行版本的分派过程就叫做静态分派,静态分派最典型的应用就是方法重载。 动态单分派: 动态单分派 意思是 根据运行期实际类型确定方法执行版本的分派过程叫做动态分派,动态分派最典型的应用就是方法重写。...原创 2014-09-10 18:23:43 · 217 阅读 · 0 评论 -
字节码验证 的高度对jvm的优化
程序员对虚拟机的优化大多集中在堆栈的分配以及和内存大小的调节的层面上,在这个层面上的调节也是jvm影响最大的部分。但是我们仍然可以从比较细的层面上对jvm进一步优化。 稍微进一步,是对 方法区,Java虚拟机栈,本地方法栈,堆,甚至程序计数器方面进行点滴的优化。 再小一点,我们先来理解一个概念。 在虚拟机执行子系统中存在一个类加载过程,这个过程包含加载、验证、准备、解析、和初始化,当然...原创 2014-09-09 16:08:18 · 327 阅读 · 0 评论 -
接口与类的真正区别
接口与类不存在区别,除了字面修饰符不同外,其真正区别是: 当一个类在初始化时,编译器要求其父类全部都已经初始化;在一个接口初始化时,并不要求其所有的父类接口都实现初始化,只有在真正使用到父类接口的时候,才会去初始化。...原创 2014-09-09 14:50:16 · 98 阅读 · 0 评论 -
jvm 初始化static 变量的类顺序
[code="java"] class Nolization{ static{ System.out.println("Nolization init"); } public static int value = 123;} class Contant extends Nolization{ static{ System.out.println...原创 2014-09-09 14:42:34 · 249 阅读 · 0 评论 -
java static 类型变量定义技巧
[code="java"] java 变量的定义非常重要,在一定程度上可以减轻服务器压力,提升服务器响应速度。 今天以简单的static 标识符入手。 Java 规范中 定义的static 标识符,这里简单点分析,修饰变量时分为 全局静态变量和局部静态变量,修饰类的时候 ,也可以分为 静态类和内部静态类。这里不再赘述。 变量的定义,直到虚拟机解析的时候才真正具有现实意义,所以...原创 2014-09-05 18:33:31 · 208 阅读 · 0 评论 -
eclipse 启动参数配置
参数见附件原创 2014-09-05 16:44:18 · 127 阅读 · 0 评论 -
too many open files 异常
每个Socket 连接都有 Receive 和 send 两个缓冲区,分别占大粤 37KB 和 25KB 的内存,连接多的话这块内存占用也比较客观。如果无法分配,则可能会抛出 IOException:Too many open files 异常。...原创 2014-09-05 14:08:16 · 100 阅读 · 0 评论 -
高性能硬件上的程序部署策略
[code="java"] 一个15万pv、天左右的在线文档类型网站最近更换了硬件系统,新的硬件为4个cpu,16GB物理内存,操作系统为 64位的 CentOS 5.4 ,Resin作为服务器。 管理员选用了 64位的 jdk 1.5,通过-Xmx,-Xms 将堆固定在12GB,使用一段时间后,出现了卡B现象,长时间无响应。 监控发现卡B是由于GC停顿导致的。虚拟机运行在Ser...原创 2014-09-04 18:12:30 · 192 阅读 · 0 评论 -
jsp 页面 查看线程堆栈状况
jsp 页面 查看线程堆栈信息状况 具体见 附件原创 2014-09-04 15:53:47 · 187 阅读 · 0 评论 -
jvm 本地方法栈(native Method stacks) 基本概念
Java 虚拟机 运行时数据区域 一般可区分为 :方法区,堆,Java虚拟机栈,本地方法栈和程序计数器。 其中Java虚拟机栈 为虚拟机执行Java 方法服务,本地方法栈是为虚拟机使用道德native方法服务的。 根据不同的虚拟机厂商的实现方式,对本地方法栈的定义也不相同,比如sun 默认的虚拟机hotSpot 就直接把 本地方法栈和 虚拟机栈合二为一。...原创 2014-09-03 15:38:16 · 264 阅读 · 0 评论 -
实现虚拟机VMware上linux与windows互相复制与粘贴
[size=small]实现虚拟机VMware上linux与windows互相复制与粘贴解决问题:实现虚拟机VMware上linux与windows互相自由复制与粘贴。如在同一个系统下ctrl+c 与ctrl+v一样方便。解决了只能通过U盘摆渡复制的繁琐问题。系统环境: 虚拟机VMware上运行的ubuntu(linux)系统, win7系统。解决方法:只需要在ubun...原创 2014-11-17 13:15:15 · 704 阅读 · 0 评论