查看网站dns服务器/市场调研报告ppt
JVM?
Java虚拟机,可以理解为Java程序的运行环境,可以执行Java字节码(Java bytecode)并提供了内存管理、垃圾回收、线程管理等功能
java内存区域划分?每块内存中都对应什么?
- 方法区:类的结构信息、常量池、静态变量、即时编译器编译后的代码等。
- 堆:对象实例(堆分为新生代和老生代,新生代对象变化频繁,经常触发GC,老生代变化较缓)。
- 虚拟机栈:每个方法的局部变量表、操作数栈、动态链接、方法出口等。
- 本地方法栈:本地方法的调用和执行状态。
- 程序计数器:当前线程执行的字节码指令地址。
总结:
新生代又分为Eden空间、Survivor空间,Survivor空间又有Survivor1和Survivor2,大部分对象首先被分配到新生代的Eden空间,经过一次垃圾回收后,如果存活则进入Survivor空间,经过多次回收后仍然存活的对象会被晋升到老年代。
一个类的加载流程?
加载(Loading):加载是类加载的第一阶段。在此阶段,类加载器通过类的全限定名(Fully Qualified Name)来查找并读取类的字节码文件(通常是以.class文件形式存储的)。类加载器可以从文件系统、网络、JAR包等位置获取字节码文件的二进制数据,并将其转换成内部数据结构表示的类。
验证(Verification):验证是类加载的第二阶段。在此阶段,虚拟机会对字节码进行合法性校验,确保字节码符合Java语言规范和虚拟机规范,避免安全漏洞和不合规的字节码引起的问题。
准备(Preparation):准备是类加载的第三阶段。在此阶段,虚拟机为类的静态变量分配内存,并设置默认初始值(零值),例如0、null等。这些静态变量通常存储在方法区中。
解析(Resolution):解析是类加载的第四阶段。在此阶段,虚拟机会将类中的符号引用转换为直接引用。符号引用指向类、字段、方法等在运行时才能确定具体内存地址的符号,而直接引用则直接指向内存中的对象、方法等。
初始化(Initialization):初始化是类加载的最后一阶段。在此阶段,虚拟机会执行类的初始化代码,包括静态变量赋值和静态代码块的执行。初始化时,按照静态变量定义的顺序依次执行,并且是线程安全的。初始化完成后,类被标记为已初始化,可以使用了。
垃圾回收算法有哪些?
- 标记清除法,首先,从根对象(gc root)开始标记所有可达对象,即从根对象出发遍历对象图,并给可达对象打上标记。然后,在清除阶段,遍历整个堆内存,将未标记的对象进行回收。标记-清除算法可以解决循环引用的问题,但容易产生内存碎片。
- 标记整理法,为了解决复制和清除算法的缺陷,在回收垃圾后会向内存—边整理对象,这会栖牲比较多的性能。
- 复制算法,该算法将内存分为两个区域,一半为活动区(From Space),一半为空闲区(To Space)。在垃圾回收过程中,将活动区中存活的对象复制到空闲区,并更新引用关系。最后,交换两个区域的角色,即将空闲区变为活动区,原活动区变为空闲区。该算法简单高效,但对内存利用率较低。
- 分代算法,通常将新创建的对象放入新生代(Young Generation),经过多次垃圾回收仍存活的对象会被晋升到老年代(Old Generation)。新生代采用复制算法,而老年代采用标记整理算法。这样能够根据对象的特性进行不同的优化,提高垃圾回收的效率。
总结:
标记删除,实现简单,但是删除过后容易产生内存碎片。复制算法,解决了内存碎片的问题,同是也是比较高效的回收算法,但是使用了比较高昂的内存空间作为代价。标记整理算法,为了解决复制和清除算法的缺陷,在回收垃圾后会向内存—边整理对象,这会栖牲比较多的性能。分代算法是把内存空间划分为不同代,新生代和老年代。每个代因其功能职责不同采用不同的垃圾回收算法,新生代因为对象朝生夕死所以采用复制算法,提高回收效率,老年代则采用标记整理。
什么是双亲委派机制?
当一个类加载器需要加载某个类时,它首先会将该请求委派给它的父加载器,只有在父加载器无法完成加载时,才由子加载器自行加载。
总结:
通过双亲委派机制,Java类加载器构成了一个层次结构,形成了一种从上到下的类加载器链。这种结构保证了类的一致性和稳定性,并且可以防止用户自定义的类库覆盖Java核心类库的安全问题。当一个类被加载后,它会由加载它的类加载器和它的类本身共同确定其在虚拟机中的唯一性。
如何主动触发垃圾回收?
System.gc()
方法是一个静态方法,它会通知JVM进行垃圾回收操作。实际上,这只是一个建议,具体是否进行垃圾回收还是取决于JVM的内部策略。JVM可能会选择立即执行垃圾回收,也可能会忽略该建议。另外,Java虚拟机提供了一个
Runtime
类,它有一个gc()
方法,与System.gc()
具有相同的功能。你可以使用Runtime.getRuntime().gc()
来调用垃圾回收。需要注意的是,频繁地手动触发垃圾回收并不是一个好的做法。JVM通常会根据当前系统资源的使用情况和垃圾回收算法的策略自动进行垃圾回收,手动触发垃圾回收可能会导致不必要的性能开销。通常情况下,我们应该信任JVM的垃圾回收机制,并正确管理对象的生命周期,让JVM自己来决定何时进行垃圾回收。
什么是young GC?什么是full GC?什么是stw?
young GC 就是新生代的垃圾回收,比较频繁,full GC是老生代的垃圾回收,效率比较低,并且会触发 stw,stw就是除了垃圾回收这个线程其他线程都停止。
相关文章:

一零六七、JVM梳理
JVM? Java虚拟机,可以理解为Java程序的运行环境,可以执行Java字节码(Java bytecode)并提供了内存管理、垃圾回收、线程管理等功能 java内存区域划分?每块内存中都对应什么? 方法区:类的结构信息、常量池、…...

【CSS】网格布局(简单布局、网格合并、网格嵌套)
文章目录 CSS网格布局(Grid Layout)1. 简单布局2. 网格合并3. 网格嵌套4. 总结 CSS网格布局(Grid Layout) CSS网格布局(Grid Layout)是一种强大且灵活的CSS布局系统,允许开发者以网格形式组织和…...

06 Ubuntu22.04上的miniconda3安装、深度学习常用环境配置
下载脚本 我依然是在清华镜像当中寻找的脚本。这里找脚本真的十分方便,我十分推荐。 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh 下载十分快速,10秒解决问题 运行miniconda3安装脚本 赋予执…...

【CSS3】CSS3 动画 ② ( 动画序列 | 使用 from 和 to 定义动画序列 | 定义多个动画节点 | 代码示例 )
文章目录 一、动画序列二、代码示例 - 使用 from 和 to 定义动画序列三、代码示例 - 定义多个动画节点 一、动画序列 定义动画时 , 需要设置动画序列 , 下面的 0% 和 100% 设置的是 动画 在 运行到某个 百分比节点时 的 标签元素样式状态 ; keyframes element-move { 0% { tr…...

最优化:建模、算法与理论
最优化:建模、算法与理论 目前在学习 最优化:建模、算法与理论这本书,来此记录一下,顺便做一些笔记,在其中我也会加一些自己的理解,尽量写的不会那么的条条框框(当然最基础的还是要有ÿ…...

拿捏--->打印菱形
文章目录 题目描述算法思路代码示例 题目描述 在屏幕上输出以下图案: 算法思路 代码示例 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() {int n;scanf("%d", &n);//上半部分菱形for (int i 0; i < n; i) //上半部分…...

【SpringBoot笔记】定时任务(cron)
定时任务就是在固定的时间执行某个程序,闹钟的作用。 1.在启动类上添加注解 EnableScheduling 2.创建定时任务类 在这个类里面使用表达式设置什么时候执行 cron 表达式(也叫七子表达式),设置执行规则 package com.Lijibai.s…...

Redis单机,主从,哨兵,集群四大模式
Redis 单机模式 Redis 单机模式是指 Redis 数据库在单个服务器上以独立的、单一的进程运行的模式。在这种模式下,Redis 不涉及数据分片或集群配置,所有的数据和操作都在一个实例中进行。以下是关于 Redis 单机模式的详细介绍: 单一实例&#…...

2023年8月份华为H12-811更新了
801、[单选题]178/832、在系统视图下键入什么命令可以切换到用户视图? A quit B souter C system-view D user-view 试题答案:A 试题解析:在系统视图下键入quit命令退出到用户视图。因此答案选A。 802、[单选题]“网络管理员在三层交换机上创建了V…...

[K8S:命令执行:权限异常:解决篇]:通过更新kubeconfig配置相关信息
文章目录 一:场景复现:1.1:关键信息:1.2:全异常日志输出: 二:解决流程:2.1:更新 kubeconfig:2.1.1:执行命令: 2.2:再次执行…...

帆软设计器报表加载不出折线图的原因
最近在用帆软设计器做可视化图表。偶有遇到因为数据集的字段类型导致加载不出折线,现记录如下。做报表的同行可以参考。 数据库使用了 Oracle 11g。数据集的 SQL 代码片是之前用在另一个单元格报表里面的。页面上有一个率是直接计算得出,我为了方便、就…...

[QCA6174]sdx12平台WiFi QCA6174在驱动加载的时候增加模块参数方法
需求描述 由于开发需要,有时候需要在驱动模块加载的时候增加一个参数,传递给到驱动使用 平台描述 Qualcomm SDX12+QCA6174平台 驱动信息 [ 112.281429] wlan: loading driver v4.0.11.213X [ 112.340262] msm_pcie_enable: PCIe: Assert the reset of endpoint of RC0. …...

Ajax-AJAX请求的不同发送方式
🥔:你一定能成为想要成为的人 发送AJAX请求不同方式 发送AJAX请求不同方式1、jQuery发送AJAX请求2、axios发送AJAX请求(重点)3、fetch发送AJAX请求 发送AJAX请求不同方式 1、jQuery发送AJAX请求 首先需要jquery的js文件…...

简易图书管理系统(面向对象思想)
目录 前言 1.整体思路 2.Book包 2.1Book类 2.2BookList类 3.user包 3.1User类 3.2NormalUser类 3.3AdminUser类 4.operation 4.1IOPeration接口 4.2ExitOperation类 4.3FindOperation类 4.4ShowOperation类 4.5AddOperation类 4.6DelOperation类 4.7BorrowOpera…...

C++ 函数模板与类模板
C最重要的特性之一就是代码重用,为了实现代码重用,代码必须具有通用性。通用代码应不受数据类型的影响,并且可以自动适应数据类型的变化。这种程序设计类型称为参数化程序设计。模板是C支持参数化程序设计的工具,通过它可以实现参…...

Tailwind CSS:简洁高效的工具,提升前端开发体验
112. Tailwind CSS:简洁高效的工具,提升前端开发体验 1. 什么是Tailwind CSS? Tailwind CSS是由Adam Wathan、Jonathan Reinink、David Hemphill和Steve Schoger等人共同创建的一种现代CSS框架。与传统的CSS框架不同,Tailwind CS…...

NR CSI(六) CSI reporting using PUCCH
之前NR CSI(二) the workflow of CSI report有对CSI report的相关流程进行介绍,而这篇主要看下CSI reporting over PUCCH的相关规定。 CSI report在PUCCH上传输的场景如上表红色字体,有三种场景,具体的对应的是Periodic 和Semi-Persistent CS…...

论文阅读---《Unsupervised Transformer-Based Anomaly Detection in ECG Signals》
题目:基于Transformer的无监督心电图(ECG)信号异常检测 摘要 异常检测是数据处理中的一个基本问题,它涉及到医疗感知数据中的不同问题。技术的进步使得收集大规模和高度变异的时间序列数据变得更加容易,然而ÿ…...

5G上行干扰规避的参数策略
LNR干扰避让 1. 干扰避让特性 D1/D2干扰避让:干扰与非干扰带宽独立测量,避免部分频带受干扰拉低整个带宽MCS,基于测量结果, 用户级自适应调度60/80/100M,躲避干扰频带。 窄带干扰避让:避免部分带宽的干扰对…...

CTF流量题解tcp1
用流量工具进行分析。发现消息长度有点异常。右键TCP跟踪。 ....mos.-mos-.-.mos-.-mos..-.mos..-mos-. 摩斯密码生成-网页工具 (adminun.com)...

Django快速入门
文章目录 一、安装1.创建虚拟环境(virtualenv和virtualenvwrapper)2. 安装django 二、改解释器三、创建一个Django项目四、项目目录项目同名文件夹/settings.py 五、测试服务器启动六、数据迁移七、创建应用八、基本视图1. 返回响应 response2. 渲染模板…...

Python “牵手” 淘宝商品详情数据获取方法,淘宝API申请指南
淘宝详情接口 API 是淘宝开放平台提供的一种 API 接口,它可以帮助开发者获取淘宝商品的详细信息,包括商品的标题、描述、图片等信息。在淘宝电商平台的开发中,淘宝详情接口 API 是非常常用的 API,因此本文将详细介绍淘宝详情接口 …...

OpenScene
paper:OpenScene: 3D Scene Understanding with Open Vocabularies code: https://github.com/pengsongyou/openscene 摘要:传统的3D场景理解方法依赖于带标签的3D数据集,在有监督的情况下为单个任务训练模型。我们提出了OpenScene,一种替代性的方法,模型预测CLIP特征空…...

HDFS中的Trash垃圾桶回收机制
Trash垃圾桶回收机制 文件系统垃圾桶背景功能概述Trash Checkpoint Trash功能开启关闭HDFS集群修改core-site.xml删除文件到trash删除文件跳过从trash中恢复文件清空trash 文件系统垃圾桶背景 回收站(垃圾桶)是windows操作系统里的一个系统文件夹&#…...

segment-anything使用说明
文章目录 一. segment-anything介绍二. 官网Demo使用说明三. 安装教程四. python调用生成掩码教程五. python调用SAM分割后转labelme数据集 一. segment-anything介绍 Segment Anything Model(SAM)根据点或框等输入提示生成高质量的对象遮罩,…...

在魔塔社区搭建通义千问-7B(Qwen-7B)流程
复制以下语句 python3 -m venv myvenvsource myvenv/bin/activatepip install modelscope pip install transformers_stream_generator pip install transformers pip install tiktoken pip install accelerate pip install bitsandbytestouch run.py vi run.py复制下面代码粘…...

Redis 加入服务列表自启动
1、下载reids windows版本,选择zip格式下载 2、解压zip,并进入路径; 3、命令提示符(cmd) 进入解压后的路径后,输入指令:redis-server --service-install redis.windows.conf; 4、如…...

MyCat管理及监控——zookeeper及MyCat-web安装
1.MyCat管理 2.MyCat-eye 3.zookeeper安装 第一步:解压 第二部: 切换目录,创建data文件夹 第三步:修改zookeeper配置文件 这样zookeeper安装及配置就完成了 4.MyCat-web安装 注意mycat-web要与zookeeper关联,…...

基于spring boot的餐饮管理系统java酒店饭店菜谱 jsp源代码mysql
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于spring boot的餐饮管理系统j 系统1权限ÿ…...

JVM分析工具JProfiler介绍及安装
目录 一、什么是JProfiler? 二、JProfiler 功能结构 1、分析代理 2、记录数据 3、快照 三、安装 一、什么是JProfiler? JProfiler是一个专业的工具,用于分析运行中的JVM内部发生的事情。当您的生产系统出现问题时,您可以…...