【深入理解Java虚拟机(一) 理解平台无关性】教程文章相关的互联网学习教程文章

Java 虚拟机:互斥同步、锁优化及synchronized和volatile【代码】【图】

互斥同步 互斥同步(Mutual Exclusion & Synchronization)是常见的一种并发正确性保证手段。同步是指子啊多个线程并发访问共享数据时,保证共享数据在同一时刻只能被一个(或者是一些,使用信号量的时候)线程使用。而互斥是实现同步的一种手段,临界区(Critial Section)、互斥量(Mutex)和信号量(Semaphore)都是主要的互斥实现方式。因此,在这四个字里面,互斥是因,同步是果;互斥是方法,同步是目的。 synchronized的实现...

Java虚拟机(JVM)概述【图】

JVM(Java虚拟机)是一个抽象的计算模型。就如同一台真实的机器,它有自己的指令集和执行引擎,可以在运行时操控内存区域。目的是为构建在其上运行的应用程序提供一个运行环境。JVM可以解读指令代码并与底层进行交互:包括操作系统平台和执行指令并管理资源的硬件体系结构。本文主要对JVM进行概述,并介绍Java程序是如何在上面执行的。 虚拟机 从本质上讲,虚拟机是个被构建来提供特定或通用目的服务环境的非实体计算机。这听起来像...

学习java虚拟机规范笔记之数据类型

1.1 class文件格式 编译后被Java虚拟机所执行的代码使用了一种平台中立的二进制格式来表示,并且经常以文件的形式来存储,这种格式称为class文件格式。class文件格式中精确的定义了类与接口的表示形式。 class文件是被java虚拟机所执行的代码。 1.2 数据类型 原始数据类型:数值类型、boolean类型、returnAddress类型。 数值类型:整数类型、浮点类型。 整数类型:byte(8位有符号二进制补码整数,-128(-2^7)- 127(2^7-1))、s...

《深入理解Java虚拟机JVM高级特性与最佳实践 第2版》pdf附网盘链接+30个总结JVM虚拟机深度好文技术博客(收藏版)【图】

技术书阅读方法论 一.速读一遍(最好在1~2天内完成) 人的大脑记忆力有限,在一天内快速看完一本书会在大脑里留下深刻印象,对于之后复习以及总结都会有特别好的作用。 对于每一章的知识,先阅读标题,弄懂大概讲的是什么主题,再去快速看一遍,不懂也没有关系,但是一定要在不懂的地方做个记号,什么记号无所谓,但是要让自己后面再看的时候有个提醒的作用,看看第二次看有没有懂了些。 二.精读一遍(在2周内看完)(并且记得看下...

Java虚拟机三 Java堆

Java堆是和Java应用程序关系最为紧密的内存空间,几乎所有的对象都存放在堆中。并且堆是完全自动化管理的。 根据垃圾回收机制的不同,Java堆有可能有不同的结构。最为常见的一种就是将整个Java堆分为新生代和老年代。其中,新生代存放新生对象或者年龄不大的对象。 老年代存放老年对象。新生代可能分为eden区、s0区、s1区,s0和s1也被成为from和to区域,他们是两块大小相等,可以互换角色的内存空间。 在多数情况下...

Java虚拟机一

Java发展至今,出现了很多Java虚拟机,从最初的Classic的Java虚拟机到Exact VM虚拟机,到现在最终被大规模部署和应用的是Hotspot虚拟机。 整数在Java虚拟机中的表示 在Java虚拟机中,整数有byte、short、int、long四种,分别表示8位、16位、32位、64位有符号整数。 整数在计算机中使用补码表示,在Java虚拟机中也不例外。 原码:就是符号位加上数字的二进制表示。以int为例,第一位表示的符号位,其余3...

Java虚拟机学习:方法调用的字节码指令【图】

我们在写java程序的时候会进行各种方法调用,虚拟机在执行这些调用的时候会用到不同的字节码指令,共有如下五种: 1. invokespecial:调用私有实例方法; 2. invokestatic:调用静态方法; 3. invokevirtual:调用实例方法; 4. invokeinterface:调用接口方法; 5. invokedynamic:调用动态方法;这里我们通过一个实例将这些方法调用的字节码指令逐个列出。实例共两个java文件,一个是接口另一个是类,先看接口源码,很简单只有一...

了解java虚拟机—CMS回收器(8)【图】

CMS(Concurrent Mark Sweep)回收器它使用的是标记清除算法,同时又是一个使用多线程并行回收的垃圾回收器。 CMS主要工作步骤CMS工作时主要步骤有初始标记、并发标记、预清理、重新标记、并发清除和并发重置。其中初始标记和重新标记是独占系统资源的,而预清理、并发标记、并发清除和并发重置是可以和用户线程一起执行的。因此它可以在应用程序运行过程中进行垃圾回收。根据标记清除算法,初始标记、并发标记和重新标记都是为了标记...

了解java虚拟机—G1回收器(9)

G1(Garbage-First)回收器是在JDK1.7中正式使用的全新垃圾回收器,G1拥有独特的垃圾回收策略,从分代上看,G1依然属于分代垃圾回收器,它会区分年代和老年代,依然有eden和survivor区,但从堆的结构上看,它并不要求整个eden区、年清代或者老年代都连续。它使用了全新的分区算法。其特点如下:l 并行性:G1在回收期间,可以由多个GC线程同时工作,有效利用多核计算能力。l 并发性:G1拥有与应用程序交替执行的能力,因此一般来说,不...

虚拟机ubuntu16.4下安装java,mysql,ecplise,tomcat,nginx,并使用他们,部署一个项目【代码】【图】

虚拟机Linux ubuntu16.4下安装java,mysql,ecplise,tomcat,nginx,并使用他们,部署一个项目 前置准备1.安装jdk可能出现的问题 2.安装MySQl可能出现的问题 3.安装ecplise可能出现的问题 4.将项目导成war包可能出现的问题 5.配置tomcat可能出现的问题 6.安装nginx可能出现的问题 7.设置代理可能出现的问题前置准备 一台虚拟机,一个ubuntu系统,若干需要的文件(java,mysql,ecplise,tomcat,nginx),最后会附上文件资源视频资...

linux卸载mysql====安装新的虚拟机 自带的基本都要卸载!? mysql tomcat java Python可以不用卸载【图】

linux卸载mysql //rpm包安装方式卸载查包名:rpm -qa|grep -i mysql删除命令:rpm -e –nodeps 包名 //yum安装方式下载1.查看已安装的mysql命令:rpm -qa | grep -i mysql2.卸载mysql命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64查看mysql的其它依赖:rpm -qa | grep -i mysql //卸载依赖yum remove mysql-libsyum remove mysql-serveryum remove perl-DBD-MySQLyum remove mysql

JDK1.8-Java虚拟机运行时数据区域和HotSpot虚拟机的内存模型

目录介绍官方文档规定的运行时数据区域演示方法区溢出演示堆内存溢出虚拟机栈和本地方法栈溢出程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池HotSpot虚拟机的内存模型JVM实现的堆内存和方法区新生代和老年代.新生代中的内存划分由JDK1.7及以前的永久代到JDK1.8的元数据区参考资料介绍初学Java虚拟机几天, 被方法区, 永久代这些混杂的概念搞混了. 我觉得学习这部分知识应该把官方定义的虚拟机运行时数据区域和虚拟机内存...

Java虚拟机详解(二)------运行时内存结构【图】

Java虚拟机详解(二)------内存结构  首先通过一张图了解 Java程序的执行流程:    我们编写好的Java源代码程序,通过Java编译器javac编译成Java虚拟机识别的class文件(字节码文件),然后由 JVM 中的类加载器加载编译生成的字节码文件,加载完毕之后再由 JVM 执行引擎去执行。在加载完毕到执行过程中,JVM会将程序执行时用到的数据和相关信息存储在运行时数据区(Runtime Data Area),这块区域也就是我们常说的JVM内存结...

Java虚拟机详解(六)------内存分配【代码】【图】

Java虚拟机详解(六)------内存分配  我们说Java是自动进行内存管理的,所谓自动化就是,不需要程序员操心,Java会自动进行内存分配和内存回收这两方面。前面我们介绍过如何通过垃圾回收器来回收内存,那么本篇博客我们来聊聊如何进行分配内存。对象的内存分配,往大方向上讲,就是堆上进行分配(但也有可能经过JIT编译后被拆散为标量类型并间接的在栈上分配),对象主要分配在新生代 Eden 区上,如果启动了本地线程分配缓冲,将...

java基础教程----VMWare虚拟机安装教程【图】

目录步骤 1 : VMWare 安装程序步骤 2 : 安装向导界面步骤 3 : 协议步骤 4 : 安装地址步骤 5 : 用户体验设置步骤 6 : 快捷方式步骤 7 : 确认安装步骤 8 : 完成步骤 9 : 运行步骤 10 : 界面步骤 11 : 安装Linux步骤 1 : VMWare 安装程序vmware 官网地址https://www.vmware.com/ 咳咳,虽然官网地址在这里,但是呢。。。你要找到在哪里下载 vmware, 给你10分钟,你都不一定找得到。。。。 所以呢,我就先下载下来,放下载区(点击进入)...