当前位置: 首页 > news >正文

重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(一)

第一部分:走近Java

第1章:走近Java

1.1 Java的技术体系

SUN 官方所定义的 Java 技术体系包括:Java程序设计语言、Java虚拟机、Class文件格式、Java API类库、第三方(商业机构和开源社区)Java类库。

其中,「Java程序设计语言」、「Java虚拟机」、「Java API类」这三个被称为 JDK(Java Deployment Kit),即 Java 程序开发的最小环境。

而 JRE(Java Runtime Environment),即 Java 程序运行的标准环境,则包括:Java虚拟机和JavaAPI类库中的Java SE API子集。

按着 Java 重点关注的业务领域来划分,Java技术体系可以分为 4 个平台:

  • Java Card
    支持一些Java小程序运行在小内存设备上的平台,例如:智能卡。
  • Java ME(Micro Edition)
    支持 Java 程序运行在移动终端上的平台,例如:手机、PAD。对J avaAPI 有所精简,并加入了对移动终端的支持,也就是以前称之为 J2ME 的版本。
  • Java SE(Standard Edition)
    支持面向桌面应用的 Java 平台,例如:Windows下的应用程序,提供了完整的 Java 核心 API,也就是以前称之为 J2EE 的版本
  • Java EE(Enterprise Edition)
    支持使用多层架构的企业应用的Java平台,例如:ERP、CRM应用。除了提供Java SE以外,还对其进行了大量的扩充并提供了相应的部署支持。也就是以前称之为J2EE的版本。
1.2 虚拟机的发展史
  • Classic VM
    JDK 1.0 时期,所带的虚拟机为 Classic VM,该虚拟机只能使用纯解释器的方式来运行 Java 代码,如果要使用 JIT 编译器,只能通过外挂的方式。但是编译器和解释器无法配合工作,也就意味着如果使用 JIT 编译器来运行 Java 代码,编译器则会将每一行代码和每一个方法都进行编译,无论它们是否存在被编译的价值。
  • Exact VM
    JDK 1.2 时期,SUN 的虚拟机团队曾在 Solaris 平台上开发了 Exact VM,该虚拟机的执行系统已经具备了现代高性能虚拟机的雏形:如两级即时编译器,编译器和解释器混合工作模式等。该虚拟机为准确式内存管理,这也是该虚拟机名字的由来,虚拟机可以知道内存中某个位置上的数据的类型。
  • HotSpot VM
    该虚拟机是 SUN JDK 和 Open JDK 所带的虚拟机。HotSpot 一开始就是准确式GC(与Exact VM一致),具备热点代码探测能力(这一点Exact VM也具备)。该虚拟机的热点代码探测能力是通过程序计数器找出具有编译价值的代码,然后通知 JIT 编译器以方法为单位进行编译。

相关文章:

重温《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版)》 –– 学习笔记(一)

第一部分:走近Java 第1章:走近Java 1.1 Java的技术体系 SUN 官方所定义的 Java 技术体系包括:Java程序设计语言、Java虚拟机、Class文件格式、Java API类库、第三方(商业机构和开源社区)Java类库。 其中&#xff0…...

定向减免!函数计算让轻量 ETL 数据加工更简单,更省钱

作者:澈尔、墨飏 业内较为常见的高频短时 ETL 数据加工场景,即频率高时延短,一般均可归类为调用密集型场景。此场景有着高并发、海量调用的特性,往往会产生高额的计算费用,而业内推荐方案一般为攒批处理,业…...

git checkout和git switch的区别

git checkout 和 git switch 是 Git 中用于切换分支的命令,但它们在某些方面有一些区别。需要注意的是,git switch 是在 Git 2.23 版本引入的,它提供了一种更直观的分支切换方式。 git checkout: 分支切换: 在 Git 2.…...

故障树分析蒙特卡洛仿真程序(附MATLAB完整代码)

故障树是一种特殊的倒立树状逻辑因果关系图,它用事件符号、逻辑门符号和转移符号描述系统中各种事件之间的因果关系,通过对引起系统故障的各种因素进行逻辑因果分析,确定导致故障发生的各种可能的原因,并通过定性和定量分析找出系…...

数据结构-线性表

文章目录 数据结构—线性表1.线性表的定义和基本操作线性表的定义线性表的特点线性表的基本操作 2.线性表的顺序存储和链式存储表示顺序存储链式存储单链表循环链表双向链表 数据结构—线性表 1.线性表的定义和基本操作 线性表的定义 定义:线性表是具有相同数据类…...

java金额数字转中文

java金额数字转中文 运行结果: 会进行金额的四舍五入。 工具类源代码: /*** 金额数字转为中文*/ public class NumberToCN {/*** 汉语中数字大写*/private static final String[] CN_UPPER_NUMBER {"零", "壹", "贰",…...

Ubuntu findfont: Font family ‘SimHei‘ not found.

matplotlib中文乱码显示 当我们遇到这样奇怪的问题时, 结果往往很搞笑 尝试1不行 Stopping Jupyter Installing font-manager: sudo apt install font-manager Cleaning the matplotlib cache directory: rm ~/.cache/matplotlib -fr Restarting Jupyter. 尝试2 This work fo…...

mysql小知识

什么是sql语句的子查询 SQL语句的子查询是指在一个SQL语句中嵌套另一个SQL语句。子查询可以嵌套在主查询的FROM子句、WHERE子句、HAVING子句、SELECT子句或INSERT语句中。 子查询可以返回一个结果集,这个结果集可以被主查询使用。子查询通常用于获取需要在主查询中使…...

Unity中URP下逐顶点光照

文章目录 前言一、之前额外灯逐像素光照的数据准备好后,还有最后的处理二、额外灯的逐顶点光照1、逐顶点额外灯的光照颜色2、inputData.vertexLighting3、surfaceData.albedo 前言 在上篇文章中,我们分析了Unity中URP下额外灯,逐像素光照中聚…...

Spring Boot3整合Druid(监控功能)

目录 1.前置条件 2.导依赖 错误依赖: 正确依赖: 3.配置 1.前置条件 已经初始化好一个spring boot项目且版本为3X,项目可正常启动。 作者版本为3.2.2 初始化教程: 新版idea创建spring boot项目-CSDN博客https://blog.csdn…...

使用Gin框架,快速开发高效的Go Web应用程序

推荐 海鲸AI-GPT4.0国内站点:https://www.atalk-ai.com 前言 在当今的软件开发领域,Go语言以其简洁的语法和出色的性能逐渐成为开发者们的新宠。而Gin框架,则是Go语言中最受欢迎的Web框架之一,它以高性能和易用性著称。本文将带你…...

【Unity】【游戏开发】Pico打包后项目出现运行时错误如何Debug

【背景】 开发过程中的报错可以通过控制台查看,但是PICO项目这类依赖特定设备环境的应用往往存在打包后在设备端发生运行时错误。这时如何能查看到Debug信息呢? 【分析】 Pico也是安卓系统,所以这个问题就可以泛化为Unity有哪些在安卓端运…...

一种解决常用存储设备无法被电脑识别的方法

一、通用串行总线控制器描述 通用串行总线(Universal Serial Bus,简称USB),是连接电脑与设备的一种序列总线标准,也是一种输入输出(I/O)连接端口的技术规范,广泛应用于个人电脑和移动…...

Spark运行架构以及容错机制

Spark运行架构以及容错机制 1. Spark的角色区分1.1 Driver1.2 Excuter 2. Spark-Cluster模式的任务提交流程2.1 Spark On Yarn的任务提交流程2.1.1 yarn相关概念2.1.2 任务提交流程 2.2 Spark On K8S的任务提交流程2.2.1 k8s相关概念2.2.2 任务提交流程 3. Spark-Cluster模式的…...

短剧APP小程序源码 全开源短视频系统源码/h5/app/小视频系统

主要功能介绍: 小剧场短剧影视小程序源码 全开源 带支付收益等模式 付费短剧小程序源码 多平台小程序支持 项目功能介绍 支持无限滑动 高性能滑动 预加载 视频预览 支持剧情介绍,集合壁纸另外仿抖音滑动效果 支持会员模式,支持用户单独购买等等多功能 本系统&…...

深度学习中图像分类、目标检测、语义分割、实例分割哪个难度大,哪个检测精度容易实现,哪个速度低。请按照难度、精度容易实现程度、速度排名。

问题描述:深度学习中图像分类、目标检测、语义分割、实例分割哪个难度大,哪个检测精度容易实现,哪个速度低。请按照难度、精度容易实现程度、速度排名。 问题解答: 以下是一般情况下深度学习中图像分类、目标检测、语义分割、实…...

【AI视野·今日NLP 自然语言处理论文速览 第七十五期】Thu, 11 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Thu, 11 Jan 2024 Totally 36 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Leveraging Print Debugging to Improve Code Generation in Large Language Models Authors Xueyu Hu, Kun K…...

数据结构:搜索二叉树 | 红黑树 | 验证是否为红黑树

文章目录 1.红黑树的概述2.红黑树的性质3.红黑树的代码实现3.1.红黑树的节点定义3.2.红黑树的插入操作3.3.红黑树是否平衡 黑红树是一颗特殊的搜索二叉树,本文在前文的基础上,图解红黑树插入:前文 链接,完整对部分关键代码展示&a…...

数据结构顺序表

思维导图 练习 头文件 1 #ifndef __HEAD_H__2 #define __HEAD_H__3 4 5 #include <stdio.h>6 #include <string.h>7 #include <stdlib.h>8 9 10 #define MAXSIZE 711 typedef int datatype;12 enum13 {14 FLASE-1,15 SUCCESS16 };17 //定义顺序表&a…...

手把手教你优雅的安装虚拟机 Ubuntu —— 图文并茂

目录 Ubuntu 获取Vmware 安装新建虚拟机Ubuntu 安装虚拟机工具安装更多内容 本文教你如何优雅的在虚拟机中安装 Ubuntu&#xff0c;图文并茂、包教包会&#xff01; Ubuntu 获取 Ubuntu 官网镜像下载速度较慢&#xff0c;建议从国内镜像网站下载&#xff0c;如网易、中科大、…...

3分钟掌握哔哩下载姬:零安装B站视频下载神器使用指南

3分钟掌握哔哩下载姬&#xff1a;零安装B站视频下载神器使用指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#x…...

C++程序发生崩溃闪退后为什么会自动重启?是因为程序中启用了重启管理器,系统感知到程序异常退出后自动重启程序

最近在使用sdkdemo程序测试我们的SDK功能时&#xff0c;发现当我们关闭程序后&#xff08;程序确实关闭了&#xff09;&#xff0c;程序居然又自动启动起来了&#xff01;后来运行Debug版本的sdkdemo&#xff0c;在关闭程序时会弹出报错提示框&#xff1a;估计是程序在退出时产…...

Ostrakon-VL像素UI设计细节:16色限定调色板与可访问性对比度达标

Ostrakon-VL像素UI设计细节&#xff1a;16色限定调色板与可访问性对比度达标 1. 项目背景与设计理念 1.1 从工业UI到像素艺术的转变 在零售与餐饮行业的AI应用场景中&#xff0c;传统工业级UI往往给人冰冷、复杂的印象。Ostrakon-VL扫描终端大胆采用8-bit复古像素风格&#…...

实战指南:从零构建PyTorch版Latent Diffusion Models(含DDPM/DDIM/PLMS全流程解析)

1. 环境准备与项目搭建 在开始构建Latent Diffusion Models之前&#xff0c;我们需要准备好开发环境。这里推荐使用Python 3.8和PyTorch 1.12版本。如果你有GPU设备&#xff0c;建议安装CUDA 11.3以上版本以获得更好的训练性能。 首先创建一个conda虚拟环境&#xff1a; conda …...

7个关键步骤:用Meshroom实现高精度三维重建的完整指南

7个关键步骤&#xff1a;用Meshroom实现高精度三维重建的完整指南 【免费下载链接】Meshroom 3D Reconstruction Software 项目地址: https://gitcode.com/gh_mirrors/me/Meshroom 开源三维重建工具Meshroom凭借摄影测量实战技术&#xff0c;为用户提供了从二维图像到点…...

Alibaba DASD-4B Thinking 对话工具在网络安全领域的应用:智能威胁分析与响应

Alibaba DASD-4B Thinking 对话工具在网络安全领域的应用&#xff1a;智能威胁分析与响应 每天&#xff0c;安全运维团队的工程师们都要面对海量的安全告警。防火墙日志、入侵检测系统的报警、终端防护软件的提示……这些信息像潮水一样涌来。传统的处理方式&#xff0c;往往依…...

AI 开发实战:质量门禁怎么设计,才不会让流程只剩形式

AI 开发实战&#xff1a;质量门禁怎么设计&#xff0c;才不会让流程只剩形式 一、这个问题为什么值得专门拿出来做&#xff1f; 在 AI 工程落地里&#xff0c;真正拖慢团队的往往不是模型本身&#xff0c;而是流程和协作方式没有跟上。 围绕“质量门禁怎么设计&#xff0c;才不…...

Graphormer部署教程(RTX 4090):3.7GB模型显存占用仅18.2GB实测

Graphormer部署教程&#xff08;RTX 4090&#xff09;&#xff1a;3.7GB模型显存占用仅18.2GB实测 1. 项目介绍 Graphormer是一种基于纯Transformer架构的图神经网络&#xff0c;专门为分子属性预测任务设计。这个模型在分子图&#xff08;原子-键结构&#xff09;的全局结构…...

当你的STM32F0没有VTOR:用SRAM重映射实现IAP升级的完整指南(附代码)

当你的STM32F0没有VTOR&#xff1a;用SRAM重映射实现IAP升级的完整指南&#xff08;附代码&#xff09; 在嵌入式开发中&#xff0c;IAP&#xff08;In-Application Programming&#xff09;功能对于远程固件更新至关重要。然而&#xff0c;当使用Cortex-M0内核的STM32F0系列芯…...

小程序对商家私域运营到底有多重要?

小程序对商家私域运营到底有多重要&#xff1f;在企业持续获取客户成本不断上升的背景下&#xff0c;越来越多商家开始关注“私域运营”&#xff0c;而小程序也逐渐成为这一体系中的核心工具。小程序对商家私域运营的重要性&#xff0c;本质上体现在“用户沉淀能力与转化效率的…...