【JAVA】JVM

java JVM设置 freeMemory()为当前JVM空闲内存,因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小,而 JVM实际可用内存并不等于freeMemory(),而应该等于maxMemory()-totalMemory()+freeMemory()。-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。 阅读详情

1. 计算机存储系统金字塔模型

在一定程度上,JVM在软件层面仿真出来了计算机的硬件部分,包括寄存器,CPU等,所以在了解JVM之前重温一下计算机存储系统的金字塔模型:
计算机存储系统金字塔模型


2. JDK/JRE/JVM之间的关系

老生常谈的东西,包含关系上是:
- JDK 包含 JRE 和 javac,jar,debugging tools, javap
- JRE 包含 JVM 和 java, javaw, libraries, rt.jar
- JVM 包含 JIT (Just In Time Compiler)

JDK/JRE/JVM 关系图


3. JVM运行原理

JVM的工作原理,层次结构以及GC原理

上面链接中基本讲好了3和4中要讲的东西,很重要!!!。有点扩展的概念这里说一下:

继承 vs. 组合
  • 类继承允许我们根据自己的实现来覆盖重写父类的实现细节,父类的实现对于子类是可见的,所以我们一般称之为白盒复用。

  • 组合(对象持有)要求建立一个号的接口,但是整体类和部分类之间不会去关心各自的实现细节,即它们之间的实现细节是不可见的,故成为黑盒复用。

  • 更多参考:
    面向对象之继承和组合浅谈

4. GC原理

如果系统学习与了解可以参考:
博客 深入理解java虚拟机;
书籍:《深入理解java虚拟机》

JVM-java文件到运行在JVM过程 JVM官方介绍: 1)JVM是JAVA平台基石,负责屏幕操作系统跟硬件,保护我们的程序免受恶意攻击。 2)JVM是虚拟的计算机,独立的指令集及不同运行内存区域。 3)JVM对JAVA的语法不感冒,JVM只在乎Class File 字节码文件。 4)JVM能够运行有效的Class file的文件,JVM是一个多语言平台 java文件到运行在JVM过程如图下: java到Class过程: javac解析过程:词法分析器->语法分析器->语法树/抽象语法树->语义分析器->注解抽象语法树 阅读详情

相关推荐

CCF CSP历年题解(python)

菜鸡一枚,没参加过算法竞赛,单纯为了抵研究生考试复试才刷题,通过写博客记录下来,希望能和大家互相交流,代码质量不高,大家见谅。 因为考研等原因,题目不定期更新… 第一题 201312-1出现最多次数的数 ...

weixin_44690402的博客 5006

JVM——JVM与Java体系结构

JVM简介、OpenJDK和OracleJDK、虚拟机与JVM、JVM整体结构、Java代码执行流程、JVM的架构模型、JVM生命周期、JVM的明星产品

码说芯语的博客 1868

Android定位权限全解析:从基础配置到后台持续定位的完整解决方案

本文全面解析Android定位权限体系,从基础配置到后台持续定位的完整解决方案。涵盖LocationManager和FusedLocationProviderClient等主流API的对比选型,详细讲解动态权限申请、精确定位与模糊定位的智能切换,以及Android 10+的后台定位适配策略。帮助开发者构建兼顾精准度与电量友好的定位方案,适用于导航、运动轨迹记录等多种场景。

weixin_29310605的博客 615

这是一篇给Java小白看的JVM文章

很多Java开发人员,还不清楚JVM是什么,就直接涉足JVM调优。很多Java开发人员,说起JVM,只知道运行时数据区域(或称之为JVM内存布局或JVM内存结构)。还有很多Java开发人员,在被问起:“你知道Java内存模型吗?”,答:“知道,Java内存模型分为方法区、堆、…”。虽说“概念”这个词发明出来是为了方便交流和说明问题的,不用太过于较真。但是,答非所问就是你的不对了。如果你属于其中一者,我劝你看完这篇文章。本文就一个目的:认识JVM。

二蛋的博客 1472

Qt for Android:基于libusb实现CH340x串口通信的高效开发方案

本文详细介绍了在Qt for Android环境下,基于libusb实现CH340x串口通信的高效开发方案。通过绕过Android高版本系统的权限限制,利用libusb+JNI技术实现稳定通信,适用于工业手持终端等场景。文章涵盖环境搭建、核心实现、常见问题解决方案及性能调优经验,帮助开发者快速掌握这一关键技术。

weixin_42715608的博客 428

【Flink】状态编程: 订单超时告警

文章目录一、基础概念二、Flink状态编程1、支持的状态类型2、Managed Keyed State六种类型基本API状态的生命周期3、Managed Operator State三、案例:订单延迟告警统计1、需求描述2、需求分析3、数据与模型4、详细实现 一、基础概念 在Flink架构体系中,有状态计算可以说是Flink非常重要的特性之一。 有状态计算是指: 在程序计算过程中,在Flink...

一只皮皮熊 2864

Java进程之间以及跟JVM关系

先提出两个问题:1、命令启动了两个java程序,它们之间是什么关系?2、java程序又和JVM之间是什么关系,它们是共用一个JVM,还是每个java程序,都有一个JVM?演示1、用命令启动两个一样的java程序。2、用jvisual观察到有两个WhileTrue程序的进程。进程的概念在多道程序工作的环境下,操作系统必须能够实现资源的共享和程序的并发执行,从而使程序的执行出现了并行、动态和相互制约...

干货 2万+

音频分割:长语音音频 分割为 短语音音频 - python 实现

音频分割:长语音音频 分割为 短语音音频 - python 实现

DATABALL 的博客 1207

JVM是什么,与Java的关系是什么,以及JVM怎么实现的跨平台性

编写代码:程序员编写 Java 源代码。编译为字节码:Java 源代码编译为与平台无关的字节码。JVM 执行字节码:在每个平台上都有适配的 JVM 实现,它加载、验证并解释或编译这些字节码,使其在当前平台上执行。标准库封装平台差异:Java 标准库提供了平台无关的 API,隐藏了平台之间的差异。JVM 是执行 Java 字节码的运行时环境,它负责提供内存管理、线程管理等基础功能。JVM 和 Java 之间的关系非常密切,JVM 是 Java 平台不可或缺的组成部分。

weixin_45056021的博客 1338

AutoSAR配置与实践(基础篇)2.5 RTE对数据一致性的管理

SWC内部不同的Runnable访问共同全局变量,Runnable类似C文件中的函数,这些函数如果被放在不同Task上运行, 可能出现出现同一时刻多个函数共同运行的情况。可以通过为受影响的任务分配相同的优先级,为受影响的任务分配相同的内部操作系统资源,或者将OS的任务配置为非抢占性来实现。数据一致性:当多个操作同时读写同一个数据,由于任务的抢占,出现了数据被篡改的情况,造成非预期的数据结果。SWC内部变量保护,限定局变量的作用域在变量的作用域在SWC的不同runnable间。

nihaoljq2010的博客 2628

【TC397第2篇】TC397 EB MCAL开发指南:ADS MCAL Demo集成深度解析

通过本文的指导,我们完成了TC397 EB MCAL与ADS的深度集成,并成功运行了一个简单的MCAL Demo。这个案例不仅帮助我们理解了MCAL在实际开发中的应用,同时也展示了ADS作为一个强大的开发工具在嵌入式系统开发中的优势。在接下来的系列文章中,我们将进一步探讨MCAL的高级应用、优化技巧以及更多实用的开发案例。敬请关注,共同探索TC397 EB MCAL开发的更多精彩!

一直在水些技术小文 452

从JVM Instructions看Java

我们都知道Java程序是运行在JVM里面的一段一段字节码,JVM需要做的就是把这些字节码转换成机器语言,使得Java程序能正确的运行在计算机上,说的更底层一点就是正确分配内存,执行CPU计算并且释放内存。所以任何一个程序如果能做到以下几件事:读入Java Class文件、分析Class文件格式、为变量对象方法动态分配内存、管理这些变量和内存的回收,都可以做为我们所谓的虚拟机为Java程序员服务。从

Ant Ren的专栏 1833

基于matlab的图像HOG特征提取算法仿真

方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 730

JVM是什么?Java程序为啥需要运行在JVM中?

JVM 代表Java 虚拟机,本质上是一个虚拟机或运行时环境,允许 Java 程序在多个设备和操作系统上运行和操作。Java 程序不能在没有 JVM 支持的机器上运行,它是 Java 运行时环境 (JRE) 的一个组成部分。JVM 具有许多共同运行 Java 程序的规范。它本质上是平台相关的,即每个操作系统都有不同的JVM。规范实现实例规范是正式描述 JVM 实现所需内容的文档,拥有单一规范可确保所有实现都是可互操作的。JVM 实现是满足 JVM 规范要求的计算机程序。

m0_73311735的博客 1250

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Java】JVM

隔离加载类修改类加载的方式扩展加载类防止源码泄露自定义类加载器的父类加载器由方法设置,该方法返回的是。开发人员可以通过继承抽象类java.lang.classLoader类的方式,实现自己的类加载器,以满足一些特殊的需求在JDK1.2之前,在自定义类加载器时,总会去继承classLoader类并重写loadclass()方法,从而实现自定义的类加载类,但是在JDK1.2之后已不再建议用户去覆盖loadclass()方法,而是建议把自定义的类加载逻辑写在findclass()方法中。

athicket 1934

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java JVM

找到所需要加载的类,并把类的信息加载到 JVM 的方法区中,然后在堆区中实例化一个java.lang.Class 对象,作为方法区中这个类的信息的入口。new对象、读取或者设置类的静态变量、调用类的静态方法、通过反射执行new或调用静态属性、初始化子类触发父类的初始化、调用main方法、接口实现类初始化的时候,会触发直接或间接实现的所有接口的初始化。区别于对象的初始化,类的初始化所做的一起都是基于类变量或类语句的,也就是说执行的都是共性的抽象信息。● 堆内存规整:已使用的内存在一边,未使用内存在另一边。

LQL 1241

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java中的jvm_Java中JVM作用和特征,JVM是什么

首页>基础教程>基础知识>JDK&JRE&JVMJava中JVM作用和特征,JVM是什么JVM简介JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆...

weixin_39631755的博客 909

JAVA面试-JVM

一文带你吃透JVM,斩获大厂offer。

冲击AI顶流!!! 1076

《剑指JVM》Java与JVM——JVM与Java体系结构——引言篇1

🔥本篇概览:详细讲解了JVM与Java体系结构。🌈⭕🔥

做一个善良的人,做好自己的事,如果愿意,再发一份光。 1142

JVM - 如何理解 Java、Jdk、Jre、Jvm ?

Java Virtual Machine(Java虚拟机),是虚拟出来的一个“操作系统”,在这个“操作系统”里面运行java程序的class字节码文件;JVM启动之后,在我们的电脑上或者服务器上表现出来的就是一个java进程,这个进程里面运行的是我们的Java程序;这个JVM本身是C语言开发的,并且不同的电脑操作系统是不同的版本,比如针对windows有windows的jvm,针对Linux有Linux的jvm; 问题思考:为什么说 java 是跨平台(Linux系统,Windows系统,Mac系统)的语

你今天真好看呀 740

JVM——java体系和jvm介绍

JVM——java体系和jvm介绍 文章目录JVM——java体系和jvm介绍1、java的体系2、JVM介绍1.JVM概述2.常见的JVM3.JVM与java的关系3、JVM、JRE和JDK概念1.JVM( **Java Virtual Machine** ):2.JRE(Java RunTime Environment )3.JDK(Java Development Kit):3.三者之间的联系和区别4、java编译过程 1、java的体系 从传统意义上看来,JCP(java社区)官方定义的ja

江哈哈的博客 329

java main jvm_Java当中的JVM

01在使用控制面板时的实质:Hello.java使用javac,然后变成为Hello.class通过运行java这个命令,在类加载器中(含有加载,验证,准备,解析,初始化,使用,卸载),到jvm为Java虚拟机中运行,在jvm中有方法区,堆内存,线程栈,本地方法栈,PC计数器。类加载器:加载,验证,class文件的版本是否能兼容当前的Java虚拟机版本,然后class文件要满足虚拟机的规范。准备,...

weixin_31618799的博客 206

Java中JVM详解

作为Java开发者,掌握JVM的体系结构也是必须的,谈起Java,我们能够想到的它是一门开发语言,但实际上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API),他们之间关系如下图所示: 运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件

u010662668的博客 530

Java-什么是JVM?JVM有什么作用?

在java的学习中会经常见到JVM这个词,但是都没有对JVM有一个明确的解释,我也是在学习过程中遇到了许多知识提及JVM,所以就去查阅资料,写下一些自己查到的理解。 JVM解释 JVM全称为Java Virtual MAchine-Java虚拟机,我们可以直观的从名字上得出一个定义:JVM是java上的一个虚构出来的计算机,是一个位于Java与操作系统之间的中间态。有自己完善的硬件结构,如处理器、...

阿巴卡的博客 1万+

[Java] JAVA和JVM运行原理

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。 编译器负责把Java程序转成Class文件,方便Jvm来读取它. Jvm是java虚拟机,其实它就是解释器,把Class文件中的命令转成某种...

JKX_geek的博客 1949
上一篇: 【JAVA】知识点总结
下一篇: Spring MVC
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值