JVM学习
1.Java虚拟机内部有哪些线程共享,那些线程隔离
程序计数器:
通过改变这个计数器的值来选取下一条需要执行的字节码命令
Java虚拟机栈:
栈,每个方法被执行时,Java虚拟机都会同步的创建一个栈帧用于存储局部变量表,操作数栈,动态连接,方法出口等信息。
本地方法栈:
本地方法服务
堆:
所有线程共享
方法区:
存储已加载的类型信息:常量,静态变量,即时编译器编译后的缓存数据
常量池:是方法区的一部分
作用:减少重复创建和销毁,类似于缓存,提升速度
为什么有时候运行Java很卡?
大量IO操作占用本地内存
2.什么是内存溢出,栈溢出,内存泄漏?
内存溢出:创建对象内存不够
栈溢出:方法太多
内存泄漏:数据没用还占据内存倒是空间无法使用
3.如何进行JVM调优
通过Java visual VM jvisualvm.exe(位于bin目录下)
4.jvm中如何判定是否为垃圾
可达性分析算法
5.几种引用方式?
强引用:
传统引用的定义,只要强引用关系还在,垃圾收集器就不会回收被引用的对象
软引用:
用来描述一些还有用,但非必须的对象。只被软引用关联着的对象,在系统将要发生内
存溢出异常前,会把这些对象列进回收范围之中进行第二次回收,如果这次回收还没有足够的内存, 才会抛出内存溢出异常。
弱引用
用来描述那些非必须对象,但是它的强度比软引用更弱一些,被弱引用关联的对象只
能生存到下一次垃圾收集发生为止。当垃圾收集器开始工作,无论当前内存是否足够,都会回收掉只 被弱引用关联的对象。
虚引用
6.垃圾收集算法目的?有哪些:
性能损耗最低。
标记清除算法:
标记出所有需要回收的对象,标记完成后统一回收掉所有标记的对象,也可以反过来。
缺点:1.执行效率不稳定,如果存在大量的需要回收的对象,那么执行效率就会降低。
2.内存空间碎片化。
标记-复制算法:
为了解决标记清除算法面对大量对象回收效率低的问题
缺点:可用内存缩小了一半。
标记-整理算法:
标记过程仍然与标记-清除算法一样,但是后续由清理改为将所有存活的对象都向空间的一端移动。
7.有哪些垃圾收集器
CMS收集器
特点:并发收集,低停顿。依赖多核:降低CPU浪费的情况下是快的。无法处理“浮动垃圾”(在标记清除阶段因为线程还在运行,所以就会产生垃圾,但是发生在标记清除阶段之后,所以只能等到下一次处理)
Garbage First(G1)收集器
二者的区别:
CMS:垃圾收集的目标要么是老年代,要么是整个新生代
G1:面向堆内存的任何部分组成回收集,衡量标准改为内存中哪个部分存放的垃圾数量多,回收效益大。G1在小内存表现下不是很好,不如CMS。
8.介绍垃圾回收策略
大对象直接进入老年代
长期存活的对象直接进入老年代(大于15岁)
在Survivor空间中相同年龄的总和大于一半,大于或者等于改年龄的对象直接进入老年代。
9.什么情况下会触发垃圾回收?
内存满了的情况下
10.jvm调优有哪些参数
jps:虚拟机进程状况工具
jps [ options ] [ hostid ]
jstat [ option vmid [interval[s|ms] [count]] ]
jinfo [ option ] pid
jmap [ option ] vmid
jhat eclipse.bin //分析dump文件
jstack [ option ] vmid
11.内存分配与回收策略
12.类加载有哪几个过程?都有什么用
13.那种情况会触发类的初始化?
1)遇到new、getstatic、putstatic或invokestatic这四条字节码指令时,如果类型没有进行过初始 化,则需要先触发其初始化阶段。
能够生成这四条指令的典型Java代码场景有:
2)使用java.lang.reflect包的方法对类型进行反射调用的时候,如果类型没有进行过初始化,则需要先触发其初始化
14.类加载器
作用:寻找类,并且加载类
如果自己写一个类加载器
/**
* 类加载器与instanceof关键字演示
*
* @author zzm
*/
public class ClassLoaderTest {public static void main(String[] args) throws Exception {ClassLoader myLoader = new ClassLoader() {@Overridepublic Class<?> loadClass(String name) throws ClassNotFoundException {try {String fileName = name.substring(name.lastIndexOf(".") + 1)+".class";InputStream is = getClass().getResourceAsStream(fileName);if (is == null) {return super.loadClass(name);}byte[] b = new byte[is.available()];is.read(b);return defineClass(name, b, 0, b.length);} catch (IOException e) {throw new ClassNotFoundException(name);}}};Object obj = myLoader.loadClass("org.fenixsoft.classloading.ClassLoaderTest").newInstance();System.out.println(obj.getClass());System.out.println(obj instanceof org.fenixsoft.classloading.ClassLoaderTest);}
}
15.通过什么方式寻找这个类
双亲委派模型
在哪里破坏双亲委派?tomcat
16.什么是热部署?
再不清空内存的情况下,不重启的情况下,更新内存中的类信息
相关文章:

JVM学习
1.Java虚拟机内部有哪些线程共享,那些线程隔离 程序计数器: 通过改变这个计数器的值来选取下一条需要执行的字节码命令 Java虚拟机栈: 栈,每个方法被执行时,Java虚拟机都会同步的创建一个栈帧用于存储局部变量表&…...
Visual Studio 20XX中utf-8中文在控制台显示乱码
文章目录 在 Visual Studio 20xx中,如果源码文件是 UTF8编码,要打印中文到控制台时,控制台会显示乱码,可以进行以下设置。 包含<Windows.h>头文件。在main函数初始调用SetConsoleOutputCP(CP_UTF8)设置控制台输出字符集为UT…...

拥抱个人成长与社会进步:自我认知与开放心态的相互影响
拥抱个人成长与社会进步:自我认知与开放心态的相互影响 Embracing Personal Growth and Societal Progress: The Interplay of Self-Awareness and Open-mindedness 一、引言 I. Introduction 在当今急速发展的时代,个人成长与社会进步交织在一起&…...

【PostgreSQL内核学习(二十五) —— (DBMS存储空间管理)】
DBMS存储空间管理 概述块(或页面)PageHeaderData 结构体HeapTupleHeaderData 结构 表空间表空间的作用:表空间和数据库关系表空间执行案例 补充 —— 模式(Schema) 声明:本文的部分内容参考了他人的文章。在…...

2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天
第 五 天 整个网站例 5.1 准备工作 项目目录与版心 base.css 5.2 网页制作思路 5.3 header 区域-整体布局 5.4 header区域-logo 5.5 header区域-导航 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…...
SpringBoot使用Kafka详解含完整代码
1. 前言 随着大数据和实时处理需求的增长,Kafka作为一种分布式流处理平台,与Spring Boot的集成变得尤为重要。本文将详细探讨如何在Spring Boot应用程序中设置和使用Kafka,从基础概念到高级特性,通过实际代码示例帮助读者深入理解…...
解决:java -jar 在cmd中运行 程序卡顿,卡死的 问题。BIO和NIO案例保存
解决 怎么解决,就是 日志别输出到 cmd 就行了。就行了。就行了。 java -jar demo.jar > output.log 2>&1 &最近写东西,遇到了 程序偶尔卡死的情况。是java -jar 启动的。具体卡死为:http请求超级卡顿 或 偶尔反应好多个请求&…...
LeetCode第824题 - 山羊拉丁文
题目 解答 String toGoatLatin(String S) {if (S null) {return "";}S S.trim();if (S.isEmpty()) {return "";}StringBuilder sb new StringBuilder();String[] tokens S.split(" ");for (int i 0, j 1, length tokens.length; i <…...

[Python] 什么是逻辑回归模型?使用scikit-learn中的LogisticRegression来解决乳腺癌数据集上的二分类问题
什么是线性回归和逻辑回归? 线性回归是一种用于解决回归问题的统计模型。它通过建立自变量(或特征)与因变量之间的线性关系来预测连续数值的输出。线性回归的目标是找到一条直线(或超平面),使得预测值与观…...

那些不输于乙游男主人设的国漫男主
最近乙游的势头越来越猛,新宠旧爱一起上阵,叫人应接不暇。在二次元的世界里,乙游男主们凭借着超凡的魅力,成为了无数少女心中的理想对象。他们或冷酷、或温柔、或阳光、或神秘,每一个角色都有着独特的性格和故事。 乙游…...

Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
1概况 本文展示如何使用 Flink CDC Iceberg Doris 构建实时湖仓一体的联邦查询分析,Doris 1.1版本提供了Iceberg的支持,本文主要展示Doris和Iceberg怎么使用,大家按照步骤可以一步步完成。完整体验整个搭建操作的过程。 2系统架构 我们整…...

关于华为应用市场上架,申请权限未告知目的被驳回问题的简单处理方式
关于华为应用市场上架过程中出现的【您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(存储、拍照)等权限,不符合华为应用市场审核标准。】 使用方式: 1、引入 import permision from "/m…...
【ElasticSearch】概述
文章目录 ElasticSearch1.基本介绍2.设计理念3.基本架构与核心概念学习参考资料: ElasticSearch 简单整理ES基本概念,设计理念,构建与使用,供回顾。 1.基本介绍 Elasticsearch 是一个基于 Apache Lucene 的开源的分布式搜索引擎…...
十进制转十六进制 C/C++蓝桥杯基础试题BASIC-10
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是…...

【LVGL环境搭建】
LVGL环境搭建 win模拟器环境搭建一.二.三.四.五. Ubuntu模拟器环境搭建一. 前置准备二. 下载LVGL Source code:三. 安装sdl2:四. 开启VScode执行五. 安装扩展套件六. 按F5执行七. 执行结果 win模拟器环境搭建 一. 二. 三. 四. 五. Ubuntu模拟器环境…...

【c语言】简单贪吃蛇的实现
目录 一、游戏说明 编辑 二、地图坐标 编辑 三、头文件 四、蛇身和食物 五、数据结构设计 蛇节点结构如下: 封装一个Snake的结构来维护整条贪吃蛇: 蛇的方向,可以一一列举,使用枚举: 游戏状态&a…...
2023年09月CCF-GESP编程能力等级认证Python编程六级真题解析
Python等级认证GESP(1~6级)全部真题・点这里 一、单选题(共15题,共30分) 第1题 近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流行,其中包括比较常用的手写板,那么它属于哪类设备?( ) A:输入 B:输出 C:控制 D:记录 答案:A 第2题 以下关于…...

Flink中StateBackend(工作状态)与Checkpoint(状态快照)的关系
State Backends 由 Flink 管理的 keyed state 是一种分片的键/值存储,每个 keyed state 的工作副本都保存在负责该键的 taskmanager 本地中。另外,Operator state 也保存在机器节点本地。Flink 定期获取所有状态的快照,并将这些快照复制到持…...

【C语言刷题系列】喝汽水问题
文章目录 一、文章简介 1.先买再换 1.1 代码逻辑: 1.2 完整代码 1.3 运行结果 1.4 根据方法一总结优化 2.边买边换 2.1 代码逻辑: 2.2 完整代码 2.3 运行结果 一、文章简介 本文所述专栏——C语言经典编程问题 C语言刷题_倔强的石头106的博客…...
[C++] C++ 11的functional模块介绍和使用案例
functional模块介绍 functional模块是C 11提供了一组函数对象和算法,用于增强C的函数式编程能力。该模块中的函数对象和算法可以大大简化代码,并提供了一些有用的工具,例如函数适配器和函数对象的组合。 functional模块中的函数对象包括&am…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...