最近,在学习java虚拟机的内容中,在此总结和记录下学到的. 一.JVM在计算机中的位置 在我们初学java时,便知道java源文件文件会先通过Java编译器编译成字节码文件,这个过程是java编译过程.而我们的java虚拟机执行的就是字节码文件.这个字节码文件可以来自许多地方,例如kotlin,scala等.但只要它能符合java虚拟机的规范,他就可以执行该字节码文件.下面,我们先来看下jvm在我们计算机中的位置. 首先,在我们计算机硬件上的第一层软件就是操作系统了,而jvm是基于操作系统之上…
一.虚拟机栈背景 由于跨平台性的设计,java的指令都是根据栈来设计的.不同平台CPU架构不同,所以不能设计为基于寄存器的. 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令. 二.内存中的堆与栈 栈是运行时的单位,而堆是存储的单位:即:栈解决程序的运行问题,即程序如何执行,或者说如何处理数据.堆解决的是数据存储的问题,即数据怎么放.放在哪儿. 一般来讲,对象主要都是放在堆空间的,是运行时数据区比较大的一块 栈空间存放 基本数据类型的局部变量,以及引用数据类型…
一.类加载子系统的作用 类加载子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识: ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定 加载的类信息存放于一块成为方法区的内存空间.除了类信息之外,方法区还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射) 二.类加载子系统的概览图 类加载子系统主要包括三个环节: loading link…
一.内存与线程 内存: 内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行.JVM内存布局规定了JAVA在运行过程中内存申请.分配.管理的策略,保证了JVM的高效稳定运行.不同的jvm对于内存的划分方式和管理机制存在着部分差异(对于Hotspot主要指方法区) java虚拟机定了了若干种程序运行期间会使用到的运行时数据区,其中有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁.另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程开始和结束而创…
一.堆 定义: Heap,通过new关键字创建的对象,都存放在堆内存中. 特点 线程共享,堆中的对象都存在线程安全的问题 垃圾回收,垃圾回收机制重点区域. jvm内存的划分: JVM内存划分为堆内存和非堆内存,堆内存分为年轻代(Young Generation).老年代(Old Generation),非堆内存就一个永久代(Permanent Generation). 年轻代又分为Eden和Survivor区.Survivor区由FromSpace和ToSpace组成.Eden区占大容量,Sur…
一.jvm垃圾回收要做的事情 哪些内存需要回收 什么时候回收 怎么回收 二.如何判断对象已经死亡,或者说确定为垃圾 引用计数法: 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器的值就加1:当引用失效时,计数器值就减1:任何时刻计数器为0的对象就是不可能再被使用的.这也就是需要回收的对象,简单地说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都为 0,则说明对象不太可能再被用到,那么这个对象就是可回收的对象. 引用计数法是对象记录自己被多少程序引用,引用计数为零的对象将被清除…
这张图我相信基本上对JVM有点接触的都应该很熟悉,可以说这是JVM入门的第一课.其中的“堆”和“虚拟机栈(栈)”更是耳熟能详.下面将围绕这张图对JVM的运行时数据区做一个简单介绍. 程序计数器(Program Counter Register) 这和计算机操作系统中的程序计数器类似,在计算机操作系统中程序计数器表示这个进程要执行的下个指令的地址,对于JVM中的程序计数器可以看做是当前线程所执行的字节码的行号指示器,每个线程都有一个程序计数器(这很好理解,每个线程都有在执行任务,如果线程切换后要能…
oracle体系架构简介 先来简要了解一下Oracle数据库体系架构以便于后面深入理解,Oracle Server主要由实例(instance)和数据库(database)组成.实例(instance)由共享内存(SGA)和后台进程系统组成,数据库(database)是存储在磁盘上的一系列物理文件. SGA主要由Share Pool(共享池,又分Library Cache和Data Dictionary Cache,前者临时存储最近执行过的语句代码等,后者临时存储数据位置.表定义及用户权限等).…
今天跟一个朋友在讨论hadoop体系架构,从当下流行的Hadoop+HDFS+MapReduce+Hbase+Pig+Hive+Spark+Storm开始一直讲到HDFS的底层实现,MapReduce的模型计算,到一个云盘如何实现,再到Google分布式史上那最伟大的三篇文章. 这几个名词刚问到初学者的时候肯定会一脸懵逼包括我自己,整个Hadoop家族成员很多,“势力”很庞大,下面画个图,简单概括下. 到这里本文内容已结束,下文是摘自网络上一些比较经典或者浅显易懂的相关文字,有兴趣的继续往下看.…
一.<莫烦Python>学习笔记: TensorFlow从入门到理解(一):搭建开发环境[基于Ubuntu18.04] TensorFlow从入门到理解(二):你的第一个神经网络 TensorFlow从入门到理解(三):你的第一个卷积神经网络(CNN) TensorFlow从入门到理解(四):你的第一个循环神经网络RNN(分类例子) TensorFlow从入门到理解(五):你的第一个循环神经网络RNN(回归例子) TensorFlow从入门到理解(六):可视化梯度下降…