随笔分类 -  JVM

摘要:为什么String类是不可变的? String类 什么是 "不可变对象" 当满足以下条件时,对象才是不可变的: 对象创建以后其状态就不能修改。 "对象的所有域都是final类型的" 。 对象是正确创建的(在对象的创建期间,this引用没有逸出)。 这是《Java并发编程实战》一书中的定义。在书中,说 阅读全文
posted @ 2017-07-24 18:32 何必等明天 阅读(8813) 评论(4) 推荐(0)
摘要:多进程和多线程 定义 多进程 进程是资源分配的最小单位,线程是CPU调度的最小单位 。 进程 :经典定义是一个执行中的程序的实例。 进程与应用程序的区别 :程序是一堆代码和数据的集合,可以作为目标模块存在于磁盘,或作为段存在于地址空间中。进程是程序的一次具体执行过程,它是动态地创建和消亡的,具有一定 阅读全文
posted @ 2017-07-17 12:51 何必等明天 阅读(514) 评论(0) 推荐(0)
摘要:lombok lombok是一款可以精减java代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码。代码越少,意味着出bug的可能性越低。当然主要是看到周志明将编译期优化的时候看到这个插件了,就想试一试。即 阅读全文
posted @ 2017-07-14 20:33 何必等明天 阅读(353) 评论(0) 推荐(0)
摘要:VisualVM VisualVM(All in One Java Troubleshooting Tool)是到目前为止随JDK发布的功能最强大的运行监视和故障处理程序,并且可以预见在未来一段时间内都是官方主力发展的虚拟机故障处理工具。官方在VisualVM的软件说明中写上了“All in One 阅读全文
posted @ 2017-07-13 10:53 何必等明天 阅读(1234) 评论(0) 推荐(1)
摘要:深入理解Java虚拟机 下 参考:https://www.zybuluo.com/jewes/note/57352 第10章 早期(编译期)优化 10.1 概述 Java语言的“编译期”,可能是指一个前端编译器把 .java文件转变成 .class文件的过程;也可能是指虚拟机的后端运行期编译器(JI 阅读全文
posted @ 2017-06-15 16:18 何必等明天 阅读(564) 评论(0) 推荐(0)
摘要:深入理解Java虚拟机 中 第6章 类文件结构 6.2 无关性的基石 无关性的基石:有许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码(ByteCode),从而实现了程序的“一次编写,到处运行”。 Java语言中的各种变量、关键字和运算符号的语义最终都是由多条字 阅读全文
posted @ 2017-06-15 15:19 何必等明天 阅读(351) 评论(0) 推荐(0)
摘要:深入理解Java虚拟机 上 第2章 Java内存区域和内存溢出异常 2.2 运行时数据区域 图 2 1 Java虚拟机运行时数据区 2.2.1 程序计数器 程序计数器可以看作是当前线程所执行的字节码的行号指示器,线程私有。 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现 阅读全文
posted @ 2017-06-15 14:19 何必等明天 阅读(629) 评论(0) 推荐(0)