- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 LeetCode刷题记录—3Sum
3SumGiven an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.给定一个n位整型数的数组,是否存在三个数字a, b, c满足a+b...
2018-12-09 19:21:03
292
原创 5.Java虚拟机系列—类加载机制
1.概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特...
2018-04-22 22:42:09
124
原创 4.Java虚拟机系列—内存分配与回收策略
对象的内存分配,往大方向上讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数的设置。1.大对象优先在Eden分配大多数情况下,对象在新生代Eden区分配。当Eden区没有足够空间进行分配时,虚...
2018-04-21 11:32:23
149
原创 3.Java虚拟机系列—垃圾收集器
垃圾收集器——摘自《深入理解Java虚拟机》-周志明著,如与原书有冲突,请以原书为准HotSpot(JDK 1.7)虚拟机包含的所有收集器如图1所示图1 HotSpot虚拟机的垃圾收集器图1展示了7种不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。1. Serial收集器这个收集器是一个单线程的收集器,但它的“单线...
2018-04-17 10:20:34
145
原创 2.Java虚拟机系列—垃圾收集算法
1.对象存活判断引用计数法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。可达性分析算法:这个算法的基本思路是通过一系列的称为“GC Roots”的对象作为起点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。Java中,可...
2018-04-13 12:05:05
215
原创 1.Java虚拟机系列一Java内存区域
1.运行时数据区域Java虚拟机在执行Java程序的时候会把它所管理的内存划分为多个不同的数据区域:方法区:线程共享,存储已被虚拟机加载的类信息、常量、静态变量、即使编译器编译后的代码等数据。堆:线程共享,存放实例对象。物理上不连续,逻辑上连续。垃圾收集器管理的主要区域。虚拟机栈:线程私有,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。本地方法栈:类似于虚拟机栈,为Native方法服务。...
2018-04-12 20:13:37
174
原创 Java虚拟机那点事
一句话概括,Java虚拟机就是用于执行Java程序的软件,封装了物理机的实现细节,使得程序可以“编写一次,随处运行”。在Java出现以前,编程语言在不同的物理机器上会有不同的API,使得程序员在编写程序的时候,必须针对某一种机器进行编写,这样大大增加了程序员的负担。Java编译器通过将Java源程序翻译成Java虚拟机可以识别的字节码,再将字节码翻译成目标机器代码,从而使得程序员可以忽略机器底层的...
2018-04-12 18:09:34
216
UESTC 820复试题.zip
2020-01-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人