| 2015/3/2 | J2EE | 被围观 3,333 views+
1、概述 2、线程安全 2.1、Java语言中的线程安全 按照线程安全的“安全程度”由强至弱来排序,我们可以将Java语言中各种操作共享的数据分为以下5类:不可变、绝对线程安全、相对线程安全、线程建荣和线程对立。 不可变 不可变的对象一定是线程安全的。 保证对象行为不影响自己状态的途径有很多种,其中最简单的就是把对象中带有状态的变量都声明为final。 Java API中符合不可变要求的类型:String,java.lang.Number的部分子类(如Long和Double的数值包装类,BigInteger和BigDecimal等大数据类型但`AtomicInteger`和`AtomicLong`则并非不可变的)。 绝对线程安全 Java API中标注自己是线...
,
| 2015/3/1 | J2EE | 被围观 3,099 views+
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》笔记 1、概述 2、硬件的效率与一致性 基于告诉缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是也为计算机系统带来了更高的复杂度,因为它引入了一个新的问题:缓存一致性。 处理器可能会对输入代码进行乱序执行优化,处理器会在计算之后将乱序执行的结果重组,保证该结果与顺序执行的结果是一致的。 3、Java内存模型 线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行。 3.1、主内存与工作内存 3.2、内存间交互操作 3.3、对于volatile型...
,
| 2015/3/1 | J2EE | 被围观 2,476 views+
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》笔记 1、概述 即时编译器并不是虚拟机必需的部分。 本章提及的编译器、即时编译器都是指 HotSpot 虚拟机内的即时编译器,虚拟机也是特指 HotSpot 虚拟机。 2、HotSpot虚拟机内的即时编译器 2.1、解释器与编译器 HotSpot 虚拟机中内置了两个即时编译器,分别称为 Client Compiler 和 Server   Compiler。 HotSpot 虚拟机会根据自身版本与宿主机器的硬件性能自动选择运行模式,用户也可以使用"- client" 或"- server" 参数去强制指定虚拟机运行在 Client 模式或 Server 模式。 参数"- Xint" 强制虚拟机运行于“解释模式”( Interp...
,
| 2015/3/1 | J2EE | 被围观 2,249 views+
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》笔记 1、概述 Java语言的“编译期”是一段不确定的操作过程,可能是: 前端编译器(编译器的前端)把Java文件转换为class文件;Sun 的 Javac、 Eclipse   JDT 中的增量式编译器( ECJ)[ 1]。 后端编译器(JIT编译期 Just in time compiler)把字节码变成机器码;JIT 编译器: HotSpot   VM 的 C1、 C2 编译器。 静态编译器(AOT编译器 ahead of time compiler)直接把Java编译成本地机器代码; AOT 编译器: GNU   Compiler   for   the   Java( GCJ)[ 2]、 Excelsior JET[ 3]。 本章讨论第一类编译过程。 Javac 这类...
,
| 2015/3/1 | 未分类 | 被围观 1,605 views+
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》笔记 1、概述 能通过程序进行操作的,主要是字节码生成与类加载器这两部分的功能。 2、案例分析 2.1、Tomcat:正统的类加载器架构 主流的 Java   Web 服务器,如 Tomcat、 Jetty、 WebLogic、 WebSphere 或其他笔者没有列举的服务器,都实现了自己定义的类加载器(一般都不止一个)。因为一个功能健全的 Web 服务器,要解决如下几个问题: 部署在同一个服务器上的两个 Web 应用程序所使用的 Java 类库可以实现相互隔离。 部署在同一个服务器上的两个 Web 应用程序所使用的 Java 类库可以互相共享。 服务器需要尽可能地...
,
| 2015/3/1 | J2EE | 被围观 2,052 views+
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》笔记 1、概述 物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统层面上的,而虚拟机的执行引擎则是由自己实现的,因此可以自行制定指令集与执行引擎的结构体系,并且能够执行那些不被硬件直接支持的指令集格式。 2、运行时栈帧结构 栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。 每一个栈帧都包括了局部变量表、操作数栈、动态连接、方法返回地址和一些额外的附加信息。 对于执行引擎来说,在活...
,
| 2014/12/8 | J2EE | 被围观 1,290 views+
类从被加载到JVM内存开始,到卸载出内存,整个周期包括:加载、验证、准备、解析、初始化、使用和卸载。而虚拟机规范严格规定了有且只有五种情况必须对类进行初始化(link),这几种情况被称为对类的主动引用,其他的情况被称为被动引用(link),其中就包括调用一个类的常量,不会触发定义常量的类的初始化,这是因为常量(字符串类型或基本数据类型)在编译阶段会存入调用类的常量池中。 问题描述如下: 更新一个常量类class到服务器之后,其他引用这个常量的地方并没有做出改动,导致问题的出现。 对常量问题的思考: 一般在系统运行事情不会发生变化的东西才可以定义为常量,常量可以...
,
| 2014/11/30 | J2EE | 被围观 2,680 views+
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》笔记 - 自动内存管理机制(调优案例分析与实战) 1、概述 2、案例分析 2.1、高性能硬件上的程序部署策略 一个部署问题 √ 控制 Full GC 频率的关键是看应用中绝大多数对象能否符合“朝生夕灭”的原则,即大多数对象的生存时间不应太长,尤其是不能有成批量的、长生存时间的大对象产生,这样才能保障老年代空间的稳定。 如果读者计划使用 64 位 JDK 来管理大内存,还需要考虑下面可能面临的问题:内存回收导致的长时间停顿;相同程序在 64 位 JDK 消耗的内存一般比 32 位 JDK 大,这是由于指针膨胀,以及数据类型对齐补白等因素导致的...
,
| 2014/11/26 | J2EE | 被围观 1,963 views+
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》笔记 - 自动内存管理机制(虚拟机性能监控与故障处理工具) 虚拟机性能监控与故障处理工具 1、概述 给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、 GC 日志、线程快照( threaddump/ javacore 文件)、堆转储快照( heapdump/ hprof 文件)等。 2、JDK的命令行工具 如果读者在工作中需要监控运行于 JDK 1. 5 的虚拟机之上的程序,在程序启动时请添加参数"- Dcom. sun. management. jmxremote" 开启 JMX 管理功能,否则由于部分工具都是基于...
,
| 2014/11/26 | J2EE | 被围观 2,280 views+
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》笔记 - 自动内存管理机制(垃圾收集器与内存分配策略) 垃圾收集器与内存分配策略 1、概述 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。 其中程序计数器、虚拟机栈、本地方法栈 3 个区域随线程而生,随线程而灭; 而 Java 堆和方法区则不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我们只有在程序处于运行期间时才能知道会创建哪些对象。 2、对象已死吗 2.1、引用技术算法 ...
,
随机文章 本月热门 热评
1 chrome插件编写中需要了解的几个概念和一些方法 2013/6/5
2 Python语法笔记1 2014/3/9
3 说说Scrum敏捷开发 2014/6/1
4 设计模式笔记 – Singleton 单例模式 (Design Pattern) 2011/10/26
5 Java基础笔记 – 线程的生命周期 线程的状态 优先级和常用方法 2011/10/24
6 Java基础笔记 – Java IO介绍以及File类的介绍和基本使用 2011/10/20
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.