E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
《深入理解Java
《
深入理解Java
虚拟机》(二)--垃圾收集器与内存分配策略(4)
内存分配与回收策略对象的内存分配规则不是固定的,是取决于你使用的是哪种垃圾回收器组合和虚拟机中的内存参数,如果启动了本地线程分配缓冲,将按线程优先在TLAB(之前提到过)上分配,接下来将验证几种常见的分配策略基于JDK1.8(书上是1.7和我测试的结果完全不一样QAQ,这应该是因为使用的垃圾回收器不一样所导致的)。1/1对象优先在Eden上分配堆中的分代如下图:image.png大多数情况下,对象
蓝色_fea0
·
2020-08-22 14:41
深入理解Java
线程通信
当线程在系统内运行时,线程的调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但Java也提供了一些机制来保证线程协调运行。传统的线程通信假设现在系统中有两个线程,这两个线程分别代表存款者和取钱者——现在假设系统有一种特殊的要求,系统要求存款者和取钱者不断地重复存款、取钱的动作,而且要求每当存款者将钱存入指定账户后,取钱者就立即取出该笔钱。不允许存款者连续两次存钱,也不允许取钱者连续两次取
·
2020-08-22 13:30
我看过的书【按类型分类篇】
一.计算机专业类1.1内功篇《算法》(Java篇)第四版1.2语言篇《Java编程思想》第4版《
深入理解Java
虚拟机》第二版《Java并发编程实战》《Spring实战》第四版《Spring源码深度解析
老曹
·
2020-08-22 11:01
书籍
JVM字节码执行引擎思维导图
本文参考自来自周志明《
深入理解Java
虚拟机(第2版)》,拓展内容建议读者可以阅读下这本书。
JinhaoPlus
·
2020-08-22 11:32
字节码执行引擎
jvm
JVM类加载思维导图
本文参考自来自周志明《
深入理解Java
虚拟机(第2版)》,拓展内容建议读者可以阅读下这本书。
JinhaoPlus
·
2020-08-22 11:48
java
类加载机制
classloader
jdk
完全图解JVM Class文件结构
本文参考自来自周志明《
深入理解Java
虚拟机(第2版)》,拓展内容建议读者可以阅读下这本书。根据这个简单的例子来说明以下的例子作为最简单
JinhaoPlus
·
2020-08-22 11:37
java
jvm
class
字节码执行引擎
《
深入理解java
虚拟机》学习笔记系列——垃圾收集器&内存分配策略
本文主要从GC(垃圾回收)的角度试着对jvm中的内存分配策略与相应的垃圾收集器做一个介绍。注:还是老规矩,本着能画图就不BB原则,尽量将各知识点通过思维导图或者其他模型图的方式进行说明。文字仅记录额外的思考与心得,以及其他特殊情况内存分配策略本部分的回答主要围绕哪些内存需要回收?什么时候回收?以及如何回收?这三个问题来进行介绍。哪些内存需要回收?一张图总结补充说明由上图可知,只有堆区和静态区,运行
TheHope
·
2020-08-22 10:43
垃圾收集
jvm
垃圾回收
gc
java
Java虚拟机 :Java字节码指令的执行
这篇文章的素材来自周志明的《
深入理解Java
虚拟机》。
JinhaoPlus
·
2020-08-22 09:59
java
jvm
字节码执行引擎
Java虚拟机:Java二进制字节码的结构、加载
这篇文章的素材来自周志明的《
深入理解Java
虚拟机》。
JinhaoPlus
·
2020-08-22 09:58
字节码执行引擎
jvm
java
深入理解java
虚拟机(第二章 Java内存区域与内存溢出异常)(读书笔记)
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来2.1概述对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,但也因此把内存控制的权利交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,排查错误将成为一项异常艰难的工作2.2运行时数据
纯洁的小魔鬼
·
2020-08-22 09:06
读书笔记
深入理解java
虚拟机—虚拟机字节码执行引擎
引言调用一个方法就会将该方法(将方法的各种信息封装成栈帧)进行压栈,方法结束就会出栈。而栈帧是支持方法调用和执行的基础结构,是虚拟机栈的元素,栈帧存储了一个方法的局部变量表,操作数栈,动态连接和方法返回地址信息等其他信息。在编译时就已经确定好了局部变量表的大小和操作数栈的大小。局部变量表局部变量表是用来存方法中的参数、变量,以slot为单位,this关键字是局部变量表的第一个参数(索引为0),这是
corefuture
·
2020-08-22 04:34
深入理解jvm
深入理解Java
虚拟机----(四)性能监控与故障处理工具
前面的理论知识是解决问题的基础,经验是催化剂,数据是原料,工具是手段。其中数据包括线程快照、运行日志、GC日志、堆快照、异常堆栈等。下面介绍一下工具。命令行工具bin目录中,JDk为我们提供了强大稳定的工具集合,他们都是lib/tool.jar类库的包装。主要有jps:显示所有虚拟机进程。类似UNIX的ps命令。如果启动了多个虚拟机,通过该命令查询LVMID可以区分。jstat:收集虚拟机各方面的
end
·
2020-08-22 04:45
JVM
深入理解Java虚拟机
深入理解Java
虚拟机-第三章、垃圾收集器与内存分配策略
参考文章以及
深入理解Java
虚拟机文章目录垃圾收集器与内存分配策略一、如何判断对象已经死了?
老任学Java
·
2020-08-22 04:10
深入理解Java虚拟机
深入理解Java
虚拟机之虚拟机执行子系统(读书笔记)
类文件结构1Class类文件结构Class文件的类结构是怎样的?任何一个Class文件都对应着唯一一个类或接口的定义信息,反过来,类或接口不一定都得定义在文件里(也可通过类加载器直接生成)。Class文件是一组以8位字节为基础单位的二进制流,各数据项紧密排列。空间占用8位以上的数据项按照高位在前(最高位字节在地址最低位、最低位字节在地址最高位)方式分割为若干个8位字节存储。Class文件的数据结构
BliNkShadOw
·
2020-08-22 04:30
Java虚拟机
《
深入理解Java
虚拟机》第11章思维导图-晚期(运行期)优化
整理的内容有点多,不过右键保存图片到本地就可以看啦~转载于:https://juejin.im/post/5c97706d51882574c6520a83
weixin_34185560
·
2020-08-22 04:34
深入理解java
虚拟机------第二章Java内存区域与内存溢出异常
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来。2.1概述对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,但也因此把内存控制的权利交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,排查错误将成为一项异常艰难的工作2.2运行时数
忘记时间的小白
·
2020-08-22 03:35
深入理解Java虚拟机
《
深入理解Java
虚拟机》笔记
一、内存管理1、运行时的内存区域线程私有:虚拟机栈、本地方法栈、程序计数器线程共享:堆、方法区2、各个内存区域可能抛出的异常栈1、当单线程时,栈的深度太大,会发生StackOverflowError,比如无穷的递归调用。2、当多线程时,若不停地创建线程,则会导致OutOfMemoryError,因为除去堆和方法区之外,剩下的栈总空间是有限的,不停创建线程则会不停申请栈空间,最终会导致内存溢出。堆当
fanchaoo
·
2020-08-22 03:16
Java
《
深入理解JAVA
虚拟机》第三章
这种做的读书笔记,既不是我原创的,也不是我转载的,这种分类就很尴尬了。内存溢出:内存泄露:3.1概述 1.Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。 2.程序计数器、本地方法栈、虚拟机栈这几个区域的内存分配和回收具备确定性 3.java堆和方法区则不一样,同一个接口的不同实现类所需要内存可能不一样;一个方法中多个分支需要的内存也可能不一样;可能只有在程序运行时才能知道某些对象
盐井很闲又有钱
·
2020-08-22 03:07
【虚拟机】
晚期(运行期)优化
摘自《
深入理解Java
虚拟机:JVM高级特性与最佳实践》(第二版)从计算机程序出现的第一天起,对效率的追求就是程序天生的坚定信仰,这个过程犹如一场没有终点、永不停歇的F1方程式竞赛,程序员是车手,技术平台则是赛道上飞驰的赛车
wiljm
·
2020-08-22 03:32
《深入理解
Java
虚拟机》
【
深入理解java
虚拟机】第2章 Java内存区域与内存溢出异常
概述Java虚拟机在执行Java程序的过程中会把所管理的内存划分为若干不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则以来用户线程的启动和结束而建立和销毁。一Java虚拟机运行时数据区域:线程私有的:程序计数器、本地方法栈和虚拟机栈是线程私有的,比如每个线程都需要有一个单独的程序计数器,各个线程之间计数器互不影响,独立存储;Java虚拟机栈
莫妮卡啊
·
2020-08-22 03:25
程序媛读书笔记
【
深入理解Java
虚拟机】之自己编译JDK(已经完成,其中有自己遇到的各种问题及解决办法)
(
深入理解Java
虚拟机第二版书中1.6实战:自己编译JDK)个人笔记,仅供参考转载请注明:http://blog.csdn.net/u013190088/article/details/71703255
店小不二
·
2020-08-22 03:48
JVM学习
深入理解java
虚拟机(9后)
第九章垃圾回收内存回收,处理堆碎块。java程序员不可能错误地释放内存。垃圾收集算法垃圾检测通常通过建立一个根对象的集合并且检查从这些根对象开始的可触及性来实现。如果正在执行的程序可以访问到的根对象和某个对象之间存在引用路径,这个对象就是可触及的。对程序来说,根对象总是可以访问的。java虚拟机根对象集合根据实现不同而不同,但总是会包含局部变量中的对象引用和栈帧的操作数栈。另外一个根对象的来源是被
lcja
·
2020-08-22 03:47
学习
深入理解Java
虚拟机-第十章 早期(编译期)优化
第十章早期(编译期)优化10.1概述Java语言的编译期实际上是一段不确定的操作过程,他可能是指java文件编译到class文件的过程,也可能是JIT把字节码转为机器码的过程,还有可能是使用静态提前编译器(AOT,AheadOfTimeCompiler)直接把java文件编译成本地机器码的过程。下面列举了三类编译过程中一些比较有代表性的编辑器:前端编译器:Sun的Javac、EclipseJDT中
狂野程序员
·
2020-08-22 03:14
深入理解Java
虚拟机-第九章 类加载及执行子系统的案例与实践
第九章类加载及执行子系统的案例与实践9.1概述略9.2案例分析9.2.1Tomcat:正统的类加载器架构在本栏文章《
深入理解Java
虚拟机-第七章虚拟机类加载机制》最后曾简单介绍过Tomcat是如何破坏双亲委派模型的
狂野程序员
·
2020-08-22 03:14
《
深入理解JAVA
虚拟机》第二版 阅读笔记2
第一步:分配内存现在知道new出来的对象是在java堆里的了,那是具体是怎么在java堆里找到一块合适的空地儿的呢指针碰撞假如堆里的空间是规整的,用过的内存放一边,没用过的放在另一边,两者中间有个明确的分界点,那就只需要把分界点往空的那一边挪一定距离就可以了。空闲列表与上面那种方式相对应的,就是堆里的内存是零散的,空闲的内存和用过的内存穿插着,那只能由虚拟机维护一个列表,记录从哪儿到哪儿的内存是空
hugeo-coala
·
2020-08-22 03:04
Java
Mark_TODO_List
JVM内存模型相关学习基于
深入理解Java
虚拟机GC常见回收方法及Collector优化编译期运行期类加载器类加载器延伸->OSGi(通过ClassLoader实现的模块化)Java9Module比较学习锁实现膨胀偏向锁轻量级锁重量级锁
独上7楼
·
2020-08-22 03:26
MarkTODO
Mark
看《
深入理解Java
虚拟机:JVM高级特性与最佳实践 第2版》所做的笔记,里面很多内容都是书里面的,手敲一遍只是为了加深印象,如果有错误之处请指正
第二章Java内存区域与内存溢出异常运行时数据区域程序计数器(ProgramCounterRegister):是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。如果该线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值为空(undefined)。此内存区域是唯一一个在Java虚拟机规范中没有规定任何
封建炎月
·
2020-08-22 03:24
笔记
深入理解Java
try-with-resource
背景众所周知,所有被打开的系统资源,比如流、文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故。在Java的江湖中,存在着一种名为finally的功夫,它可以保证当你习武走火入魔之时,还可以做一些自救的操作。在远古时代,处理资源关闭的代码通常写在finally块中。然而,如果你同时打开了多个资源,那么将会出现噩梦般的场景:123456789
switch513
·
2020-08-22 03:08
java
《
深入理解java
虚拟机+JVM高级特性和最佳实践》 读书笔记
国外的那本《深入java虚拟机》还没开始看,先看国内大牛写的这本书,作者说了,要想
深入理解java
虚拟机,一本书是不够的,所以推荐了以下几本书:1.thejavavirtualmachinespecification
John_Kwan2014
·
2020-08-22 03:21
深入理解java
虚拟机第三章总结1
第二章中说了程序计数器,虚拟机栈,本地方法栈三个区域随着线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出有条不紊的执行着出栈和入栈的操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(大体上认为是编译期可知的),因此这几个区域的内存分配和回收都具备确定性,不需要过多的考虑回收的问题,因此垃圾回收主要在堆和方法区进行。一:判断对象是否存活的方法1:引用计数器算法:给对象中添加一个引
ryanysh
·
2020-08-22 03:42
深入理解java
虚拟机----第八章虚拟机字节码执行引擎
8.1概述执行引擎:输入字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果8.2运行时栈帧结构栈帧是支持虚拟机进行方法调用和方法执行的数据结构。它存储在运行时数据区的虚拟机栈中。每一个方法的从开始到完成的过程,都对应了一个栈帧的入栈和出栈的过程。一个栈帧包含了:局部变量表,操作数栈,动态连接,方法返回地址。局部变量表和操作数栈在编译的时候,已经可以完全确定,并且写入到了Class文件的方
成分sjz
·
2020-08-22 02:08
jvm
深入理解java
虚拟机----第十一章晚期优化
11.1概述在部分的商用虚拟机(SunHotSpot、IBMJ9)中,Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为“热点代码”(HotSpotCode)。为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just
成分sjz
·
2020-08-22 02:08
jvm
java基础
《
深入理解java
虚拟机》第三章之垃圾回收
线程独占的程序计数字、虚拟机栈、本地方法栈随线程而生,随线程而亡;栈中的内存,随着方法的结束自然而然能得到回收,且每个栈帧分配多少内存基本上是在类结构确定下来就已知。因此回收的重心不在这几个区域堆和方法区由于对象创建的动态性(例如不同的分支创建的对象不同),因此垃圾回收讨论的“内存”只针对这两个区域GC学习围绕三个问题什么对象需要回收如何回收何时回收问题一:如何判断对象已死?1.1引用计数算法创建
2112222222222
·
2020-08-22 02:10
JVM
《
深入理解Java
虚拟机》第九章 9.2.1 留下的问题(第279页)
问题:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享。Spring要对用户程序的类进行管理,自然要能访问到用户程序的类,而用户程序显然是放在/WEB-INF目录中的。那么被CommonClassLoader或SharedClassLoader加载的Spring如何访问并不在其加载范围内的用户
nonking
·
2020-08-22 02:55
java基础
深入理解Java
Script的闭包特性
有个网友问了个问题,如下的html,为什么点击所有的段落p输出都是5,而不是alert出对应的0,1,2,3,4。1.2.3.4.5.闭包演示6.7.p{background:gold;}8.9.10.functioninit(){11.varpAry=document.getElementsByTagName("p");12.for(vari=0;i19.20.21.产品022.产品123.产品
原文链接
·
2020-08-22 02:07
JavaScript
闭包
Web
《
深入理解Java
虚拟机》第二版 第三章笔记
目录三.垃圾收集器与内存分配策略1.1概述1.2对象已死吗?1.2.1引用计数法(RCReferenceCounting)1.2.2可达性分析算法1.2.3引用1.2.4生存还是死亡1.2.5回收方法区1.3垃圾收集算法1.3.1标记-清除算法1.3.2复制算法1.3.3标记-整理算法1.4HotSpot的算法实现1.4.1枚举根节点1.4.2安全点1.4.2安全区域1.5垃圾收集器1.5.1Se
Anakki
·
2020-08-22 02:49
Java
JVM
[
深入理解Java
虚拟机]第九章 字节码执行引擎-类加载及执行子系统的案例与实战
概述在Class文件格式与执行引擎这部分中,用户的程序能直接影响的内容并不太多,Class文件以何种格式存储,类型何时加载、如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为,用户程序无法对其进行改变。能通过程序进行操作的,主要是字节码生成与类加载器这两部分的功能,但仅仅在如何处理这两点上,就已经出现了许多值得欣赏和借鉴的思路,这些思路后来成为了许多常用功能和程序实现的基础。案例分
Coding-lover
·
2020-08-22 02:40
jvm
[
深入理解Java
虚拟机]第三章 对象存活判定算法
在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)。引用计数算法很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有—个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。客观地说,引用计数算法(
Coding-lover
·
2020-08-22 02:39
jvm
[
深入理解Java
虚拟机]第八章 字节码执行引擎-基于栈的字节码解释执行引擎
许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,在本章中,我们先来探讨一下在解释执行时,虚拟机执行引擎是如何工作的。解释执行Java语言经常被人们定位为“解释执行”的语言,在Java初生的JDK1.0时代,这种定义还算是比较准确的,但当主流的虚拟机中都包含了即时编译器后,Class文件中的代码到底会被解释执行还
Coding-lover
·
2020-08-22 02:39
jvm
虚拟机
执行引擎
解释执行
栈
[
深入理解Java
虚拟机]第八章 字节码执行引擎-方法调用
方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用是最普遍、最频繁的操作,但前面已经讲过,Class文件的编译过程中不包含传统编译中的连接步骤,一切方法调用在Class文件里面存储的都只是符号引用,而不是方法在实际运行时内存布局中的入口地址(相当于之前说的直接引用)。这个特性给Java带来了
Coding-lover
·
2020-08-22 02:39
jvm
[
深入理解Java
虚拟机]第三章 理解GC曰志
阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。每一种收集器的日志形式都是由它们自身的实现所决定的,换而言之,每个收集器的曰志格式都可以不一样。但虚拟机设计者为了方便用户阅读,将各个收集器的日志都维持一定的共性,例如以下两段典型的GC日志:33.125:[GC[DefNew:3324K->152K(3712K),0.0025925secs]3324K
Coding-lover
·
2020-08-22 02:08
jvm
虚拟机
[
深入理解Java
虚拟机]第三章 概述:哪些内存需要回收?
说起垃圾收集(GarbageCollection,GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考GC需要完成的3件事情:哪些内存需要回收?什么时候回收?如何回收?经过半个多世纪的发展,目前内存的动态分配与内存回收技术已经相当成熟,一切看
Coding-lover
·
2020-08-22 02:08
jvm
读书笔记 ---- 《
深入理解Java
虚拟机》---- 第10篇:晚期(运行期)优化
上一篇:早期(编译期)优化:https://blog.csdn.net/pcwl1206/article/details/84635959目录:1、HotSpot虚拟机内的即时编译器1.1解释器与编译器1.2编译对象与触发条件1.3编译过程1.4查看及分析即时编译结果2编译优化技术2.1公共子表达式消除2.2数组边界检查消除2.3方法内联2.4逃逸分析3Java与C/C++的编译器对比--了解即可
pcwl1206
·
2020-08-22 02:57
Java虚拟机(JVM)
搞定Java虚拟机
深入理解java
虚拟机第八章笔记
第八章虚拟机字节码执行引擎一运行时栈帧结构栈帧适用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的战元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。每一个方法从调用开始到执行完成的过程,都对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧CurrentStackFrame,与这个栈帧相
llcream
·
2020-08-22 02:16
java虚拟机
深入理解java
虚拟机第十三章
第十三章线程安全与锁优化一线程安全与互斥同步内容见java并发编程实战笔记二非阻塞同步主要思想:先进性操作,如果没有其他线程争用共享数据,那操作就成功了;如果共享数据有争用,产生了冲突,那就采取其他补偿措施(例如不断尝试直到成功为止)。这类乐观指令常用的有:测试并设置,获取并增加,交换,比较并转换(CAS),加载连接/条件存储。其中CAS指令需要有三个操作数,分别是内存位置(可简单理解为变量的内存
llcream
·
2020-08-22 02:16
java并发编程
java虚拟机
深入理解java
虚拟机第六章笔记
第六章类文件结构一Class类文件结构Class文件是一组以8位字节为基础单位的二进制流。文件格式采用一种类似C语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:无符号数和表。无符号数属于基本数据类型,主要可以用来描述数字、索引符号、数量值或者按照UTF-8编码构成的字符串值,大小使用u1、u2、u4、u8分别表示1字节、2字节、4字节和8字节。表是由多个无符号数或者其他表作为数据项构成
llcream
·
2020-08-22 02:15
java并发编程
深入理解java
虚拟机第七章笔记
第七章虚拟机类加载机制与那些编译时需要进行连接的语言不通,java中类型的加载,连接和初始化过程都是在运行期间完成的,这种策略虽然会增加一些性能开销,但是会为java应用程序提供高度的灵活性,java里天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。一类加载的时机类的生命周期包括:加载,验证,准备,解析,初始化,使用和卸载7个阶段。其中,验证,准备,解析三个部分统称为连接
llcream
·
2020-08-22 02:15
java虚拟机
《
深入理解Java
虚拟机》笔记之第9章 类加载及执行子系统的案例与实战
1、Class文件以何种格式存储,类型何时加载、如何连接,以及虚拟机如何执行字节码指令等都是由虚拟机直接控制的行为;能通过程序进行操作的,主要是字节码生成与类加载器这两部分的功能。2、Web服务器的类加载的特性:(1)部署在同一个服务器上的两个web应用程序所使用的Java类库可以实现相互隔离;(2)部署在同一个服务器上的两个Web应用程序所使用的Java类库可以互相共享;(3)服务器所使用的类库
iteye_7011
·
2020-08-22 01:28
读书笔记
深入理解Java
script闭包(closure)
最近在网上查阅了不少javascript闭包(closure)相关的资料,写的大多是非常的学术和专业。对于初学者来说别说理解闭包了,就连文字叙述都很难看懂。撰写此文的目的就是用最通俗的文字揭开Javascript闭包的真实面目。一、什么是闭包?官方的解释是:所谓闭包,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。相信很少有人能直接看懂这句
[收藏]
·
2020-08-22 01:21
Javascript
闭包
深入理解Java
虚拟机(3) - 垃圾收集算法
这个系列文章是对《
深入理解Java
虚拟机》一书的笔记及个人理解标记清除算法最基础的收集算法,后续算法都是基于这个算法进行改进。
死牛胖子的技术随笔
·
2020-08-22 01:30
JVM
上一页
26
27
28
29
30
31
32
33
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他