Java JVM 0: Basic

避坑指南:从JDK版本冲突到配置项详解,我的CMAK 3.0.0.5安装踩坑实录 本文详细记录了CMAK 3.0.0.5安装过程中遇到的JDK版本冲突、配置参数混淆及端口冲突等问题,并提供了解决方案。特别强调了JDK 11的必要性和正确配置方法,帮助用户顺利完成Kafka集群管理工具的部署。 阅读详情

我们常说的JVM一般指的Sun的HotSpot VM,其具备热点探测功能,可将一个被频繁调用的方法或代码块标记为“热点代码”,然后通过内置的JIT(Just In Time Compiler)编译为本地机器指令。
除了HotSpot,市面上还有IBM J9VM,各大linux发行版预装的openjdk等,Java在中国最大的用户淘宝有基于openjdk深度定制的TaobaoVM,改写了大量的HotSpot源码,详见:AliJVM。

JVM运行时数据区

  1. 栈
    栈帧,保存局部变量表、操作数栈等。
  2. 本地方法栈
  3. PC寄存器
  4. 堆
    存储对象,自动GC;分为新生代(eden区、s0/from区、s1/to区,from/to又叫survivor区)、老年代(tenured)。(关于Java堆内存分代概述)
  5. 方法区
    存储类信息(常量池、字段描述、方法描述等),jdk1.6/1.7也叫永久代,JDK1.8为元数据区,是堆外的直接内存
  6. 直接内存
    注意随着JVM技术的发展,对象未必就一定分配在堆上,基于逃逸分析技术的栈上分配就会把对象放在栈里。

垃圾判别算法

  • 引用计数:存在循环引用问题。
  • 可达性分析:是否在GC root的引用链中。找到所有的GC的根结点(GC Root), 将他们放到队列里,然后依次递归地遍历所有的根结点以及引用的所有子节点和子子节点,将所有被遍历到的结点标记成live。
    GC root包括:
    • 虚拟机栈引用的对象
    • 方法区静态属性引用的对象
    • 方法区常量引用的对象
    • 本地方法栈引用的对象方法

引用级别:

  • 强引用:不回收
  • 软引用:空间不足时回收
  • 弱引用:发现即回收
  • 虚引用:对象回收跟踪

垃圾回收算法

分代垃圾回收(Generational Collecting)
新生代、老年代。
分代垃圾回收的一大优点是不同分代可依据其特性使用最适合的垃圾收集算法。
卡表数据结构加速新生代的回收。

  • 标记清除(Mark-Sweep):会造成内存空间不连续;
  • 复制(Coping):内存空间一分为二(具体根据实际情况,Java新生代中eden:s0:s1默认为8:1:1),回收后内存无碎片,在新生代串行垃圾回收器中有应用;
  • 标记整理(Mark-Compact):不会产生内存碎片,也不需要两块相同的空间,在老年代的回收。
  • 分区算法(Region):G1回收器采用该思想。
java从入门到精通basic 文章目录Day01--Java开发环境+HelloWorld计算机基础知识计算机计算机硬件计算机软件软件开发计算机语言人机交互方式键盘功能键及快捷键介绍常用的DOS命令Java语言概述Java语言发展史Java语言平台版本Java语言特点JDK概述下载与安装配置环境变量目录介绍Eclipse概述下载与安装工作空间workspaceHelloWorld案例创建day01工程创建包创建HelloWorld类创建方法测试运行与工作原理1.6 拓展:1.6.1 在自己电脑上安装jdk1.6.2 下载最新版本ecli 阅读详情

相关推荐

Java实现的Basic语言解释器完整教程

本文还有配套的精品资源,点击获取 简介:本压缩包包含Java语言编写的Basic解释器,该解释器能够读取和执行Basic源代码。解释器通过两个主要阶段进行工作:词法分析和语法分析。其中,词法分析将代码分解为标记,而语法分析则构建语法树以便于执行。用户可以输入或加载Basic程序进行逐行读取和执行。Java的跨平台特性使得该解释器可以在任何支持Java的平台上运行。开发者可借...

weixin_35972981的博客 1085

JVM(Java虚拟机)

JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。常见的虚拟机:JVM、VMwave、Virtual Box。1. VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器;2. JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进 行了裁剪。JVM 是一台被定制过的现实当中不存在的计算机。

qq_59561046的博客 3393

JVM详解-淘宝内部资料

有了它,你将学到这些:java虚拟机的生命周期,JVM的体系结构,各部分详解,GC机制等

阿里巴巴产品-arthas,JVM高性能调优工具

1、arthas-boot.jar下载地址:https://arthas.aliyun.com/arthas-boot.jar

撸起袖子加油干 1029

3D高斯泼溅实战:如何用自采数据集训练出高质量3D模型(附COLMAP避坑指南)

本文详细介绍了使用自采数据集训练高质量3D高斯泼溅模型的完整实战流程。从数据采集规范、COLMAP稀疏重建的深度配置与避坑指南,到数据格式转换及3DGS训练调优策略,提供了针对自采数据的关键参数调整与问题排查方案,帮助读者高效构建专属3D场景。

g9h0i1的博客 976

Aras Innovator系统配置-01对象类(一)

对象类配置-对象类属性说明

企业信息化(PLM,ERP.MES) 2032

阿里版JVM

很多人已经知道,阿里广泛使用Java技术。由于阿里对Java使用的广泛和深入,以至于阿里开始了自己的JVM实践。业界中Twitter也有JVM的定制优化实践,但细节不太了解。2010年开始,阿里核心系统部专用计算组基于OpenJDK6 Hotspot JVM定制优化自己的JVM,经过几次双11的考验。2013年开始,改为基于OpenJDK7,并改名为阿里JVM,阿里JVM是开源的,感兴趣的可以点击...

weixin_34221332的博客 441

LabVIEW通过ActiveX控件实现与三菱FX5U PLC的高效数据交互

本文详细介绍了如何利用LabVIEW的ActiveX控件,通过三菱官方MX Component工具包实现与FX5U PLC的高效数据交互。文章从环境配置、控件插入到实战代码解析,系统讲解了连接建立、数据读写及资源释放的全流程,并提供了关键的避坑指南,帮助工程师快速构建稳定可靠的上位机通讯系统。

weixin_29197051的博客 373

Jvm性能调优+监控工具Arthas【阿里开源】

Jvm性能调优+监控工具Arthas【阿里开源】

zhaoshuangjian 702

关于基于Midas Civil API的二次开发——PyMiMi

现在写了第一条博客,希望是一个好的开始,能够每天抽出一两个小时或者更多的时间来写写代码,研究研究。我发现在我的工作中存在着大量的重复性工作,对于文档的开发是好办的,毕竟网上有现成库,只需要pip一下拿来用就好,但是对于Midas而言,在24版本之前官方都是没有一个可以使用的接口的,可能mct文件算半个?

ManiacsTraitor的博客 1850

关于Fluent模拟中的动态接触角UDF实现,详细设计

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1145

Ali架构师爆肝整理JVM与性能优化核心知识文档,简直不要太全

JVM是Java Virtual Machine(Java 虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java语言的一个非常重要的特点就是平台无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需

文章中资料均可获取,有需要请添加yunduoa2019即可 200

【AFAC2026金融智能-赛题四】我做了一个疯狂的决定,把Embedding和Reranker全删了

本文介绍了AFAC2026金融智能挑战赛赛道四的解题思路,核心是在500万token的严格限制下实现金融长文本的高效问答。作者通过四步流水线(规划、BM25检索、记忆压缩、LLM推理)优化流程,重点创新在于: 采用零API调用的纯BM25检索,配合多路查询、封面页加权和页面邻接扩展等策略 设计高效的检索算法,从问题中提取专有名词并构建多路查询组合 深入理解评分公式,平衡准确率和token消耗,最终在准确率提升的同时将token消耗从数百万降至百万级 这些创新使方案在严格限制下实现了性能突破,展示了在资源受限

227

0 Basic Study Java Day01

4、JVM是java的虚拟机,是真正运行java程序的地方;核心类库是java自己写好的程序,给程序员自己的程序调用;JRE是java的运行环境;2、Java有三大技术平台,Java SE(标准版)、Java EE(企业版)、JavaME(小型版)。8、Java程序可以在任何操作系统中运行,在不同操作系统中,安装对应版本的JVM虚拟机。7、Path环境变量是用于配置程序的路径,方便我们在命令行窗口的任意目录下启动该程序。5、java中最重要的2个命令程序是javac(编译工具)、java(运行工具)。

weixin_74327575的博客 25

基于Jeecgboot3.8.1的vue3版本前后端分离的flowable流程管理平台

基于Jeecgboot3.8.1的vue3版本前后端分离的flowable流程管理平台

宁波阿成的博客 1544

Ubuntu Rtx3090 Cuda11.7 安装 pytorch3d

pytorch ubuntu pytorch3d 安装

G果的博客 2273

Java : Basic

Java基本介绍The Java™ Programming Language is a general-purpose, concurrent, strongly typed, class-based object-oriented language. It is normally compiled to the bytecode instruction set and binary format

hackerdotcn的博客 508

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Java学习】2. Basic Java Grammar

2.Basic Java Grammar2.1 Data Type2.1.1 基本数据类型char2.1.2 引用数据类型一、JVM内存结构二、Java程序在内存中的位置2.1.3 Others一、包装类二、Examples三、静态方法四、import和package五、其它 2.1 Data Type 2.1.1 基本数据类型 数值类型:byte, short, int, long, float...

weixin_44042270的博客 496

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java Notes Chapter 0 (Basic)

Java Note Chapter 0 (Basic) Because of College Entrance Examination , my plan was forced to suspend. I only learning a markup language until the end of last year.(it’s just HTML = =) Considering the course arrangement , I am going to study Java first. 0.D

qq_40459116的博客 121

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java_basic

>>>JAVA基础 1.java的特性:面向对象,健壮性,安全性,跨平台性,多线程。 2.计算机语言概述 a.机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。(速度快,0101形式,可读性差) b.汇编语言:汇编语言是一种用助记符表示的仍然面向机器的计算机语言。(不能被计算机直接识别,需要通过汇编程序加工和翻译,成为2进制代码才能被计算机处理)汇编语言亦称

逆流de鱼的专栏 558

1.Java基础总结_Basic

1.Java开发环境: 1)java编译运行过程:-----------常见面试题 1.1)编译期:.java源文件,经过编译,生成.class字节码文件 1.2)运行期:JVM加载.class并运行.class(0和1) 特点:跨平台、一次编程到处使用 2)名词解释:-------------------常见面试题 2.1)JVM:java虚拟机 加载.class并运行.class 2.2)JR...

Frame_X的博客 256

【Java_Basic笔记】一、基本概述

Java基本概述

weixin_41365204的博客 254

basic

【代码】basic。

ithbao 114

Folia 完整上手指南:5 分钟跑起全屏歌词动画播放器

Folia 是一款以全屏沉浸式歌词动画为核心的音乐播放器,支持网易云、QQ 音乐、酷狗、Navidrome 与本地音乐库。本文只解决一件事:国内怎么快速把它跑起来。三条路径任选,总耗时 5 到 10 分钟。 打开后你会看到卡片式曲库主页,搜索和播放都在一屏内完成: [![Folia 主界面卡片式曲库与搜索栏](https://raw.gitcode.com/GitHub_Trending/fo

gitblog_00839的博客 405

RabbitMQ学习笔记:消费者预取消息(basic.qos)

作者简介:大家好,我是哥,前中兴通讯、美团架构师,现某互联网公司联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!消费者预取是信道预取机制的扩展AMQP 0-9-1协议指定basic.qos方法,以便在使用时限制channel(connection)上未确认的消息数(也称之为“prefetch count”)。

smart_an的专栏 431

java学习之Basic(上)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

weixin_45556776的博客 364
上一篇: Design Pattern 7: Flyweight Pattern
下一篇: Maven & Gradle
HackerDotCn
博客等级 码龄11年 3粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值