前一段时间总结了spring和springmvc相关的知识,面试中常问到的除了这些基本的框架之外,还有底层的基础知识,比如与java虚拟机相关的知识点,这一部分也是面试中经常问到的,在面试中高级java工程师的时候,这一部分是很重要的一个点,倘若一个程序员在这一块没有了解或者看过学习过相关的知识,那 ...
分类:
编程语言 时间:
2019-01-26 21:42:50
阅读次数:
145
在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要单独进 ...
分类:
编程语言 时间:
2019-01-26 12:33:05
阅读次数:
213
自动内存管理机制 Java虚拟机原理 所谓虚拟机,就是一台虚拟的机器。他是一款软件,用来执行一系列虚拟计算指令,大体上虚拟机可以分为 系统虚拟机和程序虚拟机, 大名鼎鼎的Visual Box、Vmare就属于系统虚拟机,他们完全是对物理计算的仿真, 提供了一个可以运行完整操作系统的软件平台。 程序虚 ...
分类:
其他好文 时间:
2019-01-26 11:18:03
阅读次数:
220
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 最应该推荐的好友TopN,如何排名? ...
分类:
其他好文 时间:
2019-01-23 14:00:18
阅读次数:
145
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这 ...
分类:
编程语言 时间:
2019-01-22 01:22:59
阅读次数:
185
JVM的逻辑内存模型图 [逻辑内存模型图] JVM内部分区 其实JVM内部不仅仅只有栈和堆 包括 程序计数器 、 Java 虚拟机栈 、本地方法栈、Java 堆、方法区等 1. 程序计数器 线程私有,较小的内存空间,如果线程正在执行的是一个Java 方法,这个计数器记录的是正在执行的虚拟机字节 码指 ...
分类:
其他好文 时间:
2019-01-21 22:54:13
阅读次数:
176
java内存区域 Java虚拟机执行java程序时会将管理的内存划分为若干个区域: 1. 程序计数器 程序计数器是一个”线程私有“的内存区域,用于获取下一条需要执行的字节码指令,如分支、循环、跳转等。 2. Java虚拟栈 在Java内存划分的时候,经常会听到将其分为”堆内存“和”栈内存“,这种分法 ...
分类:
编程语言 时间:
2019-01-21 22:50:30
阅读次数:
200
一,安装JDK java开发环境需要JVM(Java Virtual Machine—Java虚拟机),JRE(Java Runtime Environment—Java运行时环境)和JDK(Java Development kit—Java开发工具包)。由于JDK包含了JRE和JVM,所以安装了J ...
分类:
编程语言 时间:
2019-01-21 15:54:39
阅读次数:
231
TLAB全称是Thread Local Allocation Buffer 即线程本地分配缓存,从名字上看是一个线程专用的内存分配区域,是为了加速对象分配而生的。 每一个线程都会产生一个TLAB,该线程独享的工作区域,java虚拟机使用这种TLAB区来避免多线程冲突问题,提高了 对象分配的效率。TL ...
分类:
其他好文 时间:
2019-01-20 15:10:12
阅读次数:
457
java虚拟机规范虽然没有强制性约束在什么时候开始类加载过程,但是对于类的初始化,虚拟机规范则严格规定了有且只有四种情况必须立即对类进行初始化,遇到new、getStatic、putStatic或invokeStatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这4条指令 ...
分类:
编程语言 时间:
2019-01-20 14:06:08
阅读次数:
185