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

JVM、MySQL常见面试题(尽力局)

JVM篇

一.谈一谈JDK、JRE、JVM分别是什么,有什么联系? 

        1.JDK是Java工具包,里面包含了JRE、Javac编译器等。

        2.JRE是java运行环境,里面包含了JVM、JavaSE标准库类等。

        3.JVM是Java虚拟机,运行编译后的.class的文件,调用系统API运行。

        JDK = JRE+Javac编译器    JRE = JVM+JavaSE标准库

二.JVM运行时数据区由哪几部分构成,分别有什么作用 

        1.程序计数器:保存执行下一条指令的地址。(线程私有化)

        2.虚拟机栈:保存局部变量,形参、调用函数关系等。(线程私有化)

        3.本地方法栈:和虚拟机栈差不多,底层是C或C++代码,方法应Native修饰(线程私有化)

        4.堆区:保存new的对象(线程共享)

        5.方法区(元数据区):存放静态变量、常量(线程共享)

三.JVM类加载器有哪些?

        1.BootstrapClass loader 标准库类加载器

        2.ExcetionClass loader 扩展类加载器

        3.ApplicationClass loader 第三方库类加载器

        4.自定义类加载器

四.谈一谈类加载的过程以及什么是双亲委派模型

类加载的过程:

        1.加载:找到对应的.class文件,打开并读取

        2.验证:验证读取到的.class文件是否符合JVM规范

        3.准备:为读取到的.class类分配内存空间,并且初始化为零

        4.解析:将常量池中的符号引用替换为直接引用

        5.初始化:执行静态代码块、静态方法等进行初始化。

双亲委派模型:

        1.当请求需要加载自己的类时,首先不会自己加载,将加载的任务交给父类,如果此时父类能够加载,子类就不会加载。如果此时父类没有对应的类,才会加载自己的类。

        2.双亲委派模型保证了标准库类加载器的优先级最高,保证类不会被重复加载。

        3.双亲委派模型保证了加载过程中的稳定性与安全性。

五.谈一谈JVM是如何发现垃圾的有几种方法?

        1.引用计数法:

        JVM回收的对象主要是堆区里的不再被引用的对象,如果该对象被引用,那么计数器+1,如果该对象被断开引用,计数器-1,直到计数器为0时,回收该对象。

        造成的问题: 循环引用问题,可能会导致回收错误等问题。

        2.可达性分析:

        可以专门拿出一条线程处理,进行全局扫面,从GCroot 开始扫描所有对象,最终构成一条引用链,如果有对象周期性扫描结束后没有在该引用链上时,就被标记为需要回收的垃圾。

        一般可以选定为GCroot的引用对象的是:

        1.虚拟机栈中引用的对象

        2.方法区中静态成员变量所引用的对象

        3.方法区中常量引用的对象

        4.本地方法栈中引用的对象

六.回收垃圾的方式有几种?

        1.标记-清除法

        经过可达性分析之后,被视为垃圾的被标记一下,经过周期性扫面后,直接将被标记的对象清除。

        缺点:会造成内存碎片化,不能够充分利用内存空间。

        2.标记-清楚整理法

        该方法时标记清除法的延申,当标记清除结束后,再将内存空间中存活的对象进行整理。

        缺点:整理需要耗费大量时间,效率低下。

        3.复制算法

        每次只使用一般的空间,当使用的空间中出现垃圾,首先将存活的对象全部移动到另一半空间中,之后之间将使用过的一半空间直接清除。

        缺点:空间利用率较低

        4.分代回收法

        将堆区划分为新生代和老年代,新生代划分为伊甸区和幸存区,当对象被创建时,首先放入伊甸区,之后经过周期性的可达性分析标记出需要回收的垃圾,通过复制算法将伊甸区的不可用对象进行回收,经过几轮筛选,将幸存的对象放入幸存区,之后同样经过可达性分析之后,经过复制算法进行垃圾回收,经过几轮筛选将还存活的对象放入老年代。此时老年代也是需要进行可达性芬分析和垃圾回收的,只不过相较于新生代频率会比较低。

        大多是垃圾回收器采用分代回收的思路。

七.谈一谈JVM中所用的垃圾回收器

        1.多线程垃圾回收器G1 GC :将内存划分为多个区域,优先回收垃圾最多的区域,基于复制算法回收,不再是一次性回收,而是少量多次,降低了STW发生的时间。

        2. CMS收集器,以获取最短停顿时间为目标,采用标记-清除算法,降低STW发生的时间,但是会造成内存碎片化问题。

八.JVM类初始化顺序

        父类静态代码块和静态成员变量 -> 子类静态代码块和子类静态成员变量 -> 父类代码块和普通成员变量 -> 父类构造方法 -> 子类代码块和普通成员变量 -> 子类构造方法

MySQL篇

一.MySQL中什么是聚簇索引和非聚簇索引

         1.聚簇索引指的是叶子节点中保存的是索引对应的完整行信息。

          2.非聚簇索引指的是叶子节点保存的只是索引本身

二.谈一谈MyISUM与InnoBD的区别

        1.MyISUM与InnoDB作为搜索引擎,MyISUM不支持事务,只能在应用层保证数据的一致性与完整性,但是InnoDB支持事务,保证了数据的一致性和完整性

        2.MyISUM仅能够支持表锁,在进行写或读操作时,其他读写操作会被阻塞。InnoDB可以支持行级锁,在事务进行读写操作时,不影响其他事务的读写操作。

        3.MyISUM的所有的索引使用的是非聚簇索引,查询数据时需要进行回表操作,InnoDB主键索引使用的聚簇索引,查询数据高效,但是非主键索引使用的是非聚簇索引,也需要进行回表操作,但是通过索引下推机制可以有效减少回表次数。

        4.MyISUM崩溃后不能进行回复,但是InnoDB崩溃后可以恢复,利用MVCC,redo log ,undo log日志进行恢复。

        5.MyISUM不支持外键约束,无法保证数据的一致性,但是InooDB支持外键约束,可以保证数据的完整性与一致性。

三.谈一谈事务的隔离级别

         1.读未提交:当通过一个事务读取另一个事务未提交的数据

        造成的问题:脏读问题,如果一个事务读完之后,另一个事务进行回滚擦操作,此时读到的数据是错误的。

        2.读已提交:当通过一个事务可以读取另一个事务已经提交的数据。

        造成的错误:不可重复读问题,当一个事务读取结束后,另一个事务对我刚刚的数据进行更新操作,此时下一次读到的数据和这一次会发现不一样了。

        3.可重复读:开启事务后,不可以再进行修改。

        造成的错误:此时一个事务读完数据以后,另一个事务进行数据的增加,数据量变多了,此时就造成了幻读问题。

        4.串行化:该事务级别是最高的,有效避免了上述提到的三个问题,但是由于效率过低,一般不会开启。

四.MySQL中的索引种类:

        1.普通索引:可以允许有多个,没有特殊要求,主要数位了加快查询效率

        2.唯一索引:需确保索引列中的值是唯一的,可以支持NULL,也可以有多个

        3.主键索引:特殊的唯一索引,只能有一个,且该列中的值不可重复,索引列中不支持NULL

        4.复合索引:一个索引包含多个列,在多列查询时效率高效

        5.全文索引:用于处理类型是Text的数据,支持对文本高效查询

五.什么是快照读和当前读

        1.快照读,读的是当前数据的历史版本,且未加锁,读写效率高效,但读到的可能是会过期数据。

        2.当前读,读的是当前数据的最新版本,加了间隙锁与行级锁,支持高并发。

六.MVCC是什么?

         1.MVCC是多版本控制,是为了在读取数据时,不加锁来提高读取效率和并发的一种手段,我们在解决隔离级别中出现的问题时,一般有两种方式。

        2.通过MVCC实现的快照读的基础上解决了读已提交的不可重复读问题与可重复读中幻读问题。

        3.在读已提交的隔离级别下,每次会产生一个新的readview规则,然后每次遵循readview规则的版本连去获取读到的数据。

        4.在可重复读的隔离级别下,每次读只有在第一次读的过程中才产生readview规则的undolog版本链。

   七.为什么不采用B树而采用B+树?

        1.B树叶子节点与非叶子节点都存储了行数据具体信息,导致每个节点能容纳的键值较少,树高相对较高

        B+树非叶子节点只存储键值与指针指向,只有叶子节点才存储完整的数据信息,所以树高较低,导致IO次数减少。

        2.B树的叶子节点之间没有任何关联导致,全表扫描序遍历整棵树,效率较低

        B+树叶子节点存储完整信息,并且节点之间用指针连成链表,查询效率较高。

        3.当表中数据进行变更,B树需要进行整体的移动,维护成本较大。

        B+树只需要对叶子节点进行维护即可。

八.MySQL中有哪些锁?

         1.按属性分:

                共享锁(读锁):又称读锁,一个事务为表加了读锁以后,其他事务只能加读锁,不能加写锁。

                排他锁(写锁):又称为写锁,一个事务为表加写锁以后,其他事务只能加写锁,不能加读锁,避免脏读问题。

        2.按锁粒度分:

                表锁(串行化级别加):整张表粒度大,并发小

                行锁(可以解决不可重复读问题):对行加锁,粒度小,并发大。

                间隙锁(可以解决幻读问题):锁住表的一个区间,只在不可重复读事务下才生效,解决了幻读问题。

九.哪些情况下索引会失效?

         1.对索引列进行函数、计算等操作。

        2.使用OR时,两边的表达式必须均为索引,不然就会失效

        3.使用like进行模糊查询时       

        4.在使用复合索引时,没有遵循最左侧规则

        5.索引字段发生类型转换

        6.所查询的内容较多时,此时全表扫描的效率比用索引查询高,此时索引查询会失效

十.对于慢SQL如何进行优化

        1.定位慢SQL:

        开启慢查询日志,利用MySQL监控工具分析高频慢SQL语句。

        2.分析执行计划:

        使用explain查看sql执行计划,主要关注

        访问类型:如果是ALL(全表扫描)需要优化

        索引使用:如果查询语句中没有命中索引需要优化

        扫描行数:行数过多需优化查询条件或索引等

        3.优化索引:

        对where、order by、join涉及的字段添加索引。

        优化联合索引,遵循最左前缀原则

        覆盖索引,确保索引覆盖所有查询字段,避免回表

        4.重写SQL语句:

        拆分嵌套子查询为join,减少零时表的使用

        避免函数操作字段,函数会导致索引失效

相关文章:

JVM、MySQL常见面试题(尽力局)

JVM篇 一.谈一谈JDK、JRE、JVM分别是什么,有什么联系? 1.JDK是Java工具包,里面包含了JRE、Javac编译器等。 2.JRE是java运行环境,里面包含了JVM、JavaSE标准库类等。 3.JVM是Java虚拟机,运行编译后的.class的文件&am…...

Pytorch 转向TFConv过程中的卷积转换

转换知识基础 图像中使用的卷积一般为,正方形卷积核针对一个同等面积邻域的,进行相乘后邻域叠加到中心,相当于考虑中心像素的周围信息,做了一定的信息融合。 卷积相关参数 卷积前: input c1 卷积中: kernel 卷积核 stride 步…...

基于LabVIEW的伺服阀高频振动测试闭环控制系统

为实现伺服阀在设定位置上下快速移动(1kHz控制频率)的振动测试目标,需构建基于LabVIEW的闭环控制系统。系统需满足高速数据采集、实时控制算法(如PID或自适应控制)、高精度电流驱动及传感器反馈处理等需求。结合用户提…...

QQuick3D-Camera的介绍

QQuick3D-Camera的介绍 Camera的概述 Camera类继承于 Node;Camera定义了怎样将一个3D场景(Scene)投影到2D的表面上;一个场景至少需要一个Camera来可视化其内容。 Camera 可以像场景中任何节点一样,被定位和旋转&…...

django下防御race condition漏洞(竞争型漏洞)

目录 竞争型漏洞 概念 常见类型及示例 环境搭建 ​编辑漏洞复现 ucenter/1/ ucenter/2/ ucenter/3/ ucenter/4/ 总结 悲观锁 乐观锁 竞争型漏洞 概念 竞争型漏洞,也称为竞态条件漏洞(Race Condition Vulnerability),…...

【测试框架篇】单元测试框架pytest(4):assert断言详解

一、前言 用例三要素之一就是对预期结果的断言。 何为断言?简单来说就是实际结果和期望结果去对比,符合预期就测试pass,不符合预期那就测试 failed。断言内容就是你要的预期结果。断言包含对接口响应内容做断言、也包含对落DB的数据做断言。…...

多视图几何--结构恢复--三角测量

三角测量 1. 核心公式推导 假设两个相机的投影矩阵为 P P P 和 P ′ P P′,对应的匹配图像点(同名点)为 ( u , v ) (u, v) (u,v) 和 ( u ′ , v ′ ) (u, v) (u′,v′),目标是求解三维点 X [ X x , X y , X z , 1 ] T X [X_x, X_y, X_z, 1]^T X…...

【大模型】WPS 接入 DeepSeek-R1详解,打造全能AI办公助手

目录 一、前言 二、WPS接入AI工具优势​​​​​​​ 三、WPS接入AI工具两种方式 3.1 手动配置的方式 3.2 Office AI助手 四、WPS手动配置方式接入AI大模型 4.1 安装VBA插件 4.1.1 下载VBA插件并安装 4.2 配置WPS 4.3 WPS集成VB 4.4 AI助手效果测试 4.5 配置模板文…...

⭐算法OJ⭐N-皇后问题 II【回溯剪枝】(C++实现)N-Queens II

⭐算法OJ⭐N-皇后问题【回溯剪枝】(C实现)N-Queens 问题描述 The n-queens puzzle is the problem of placing n n n queens on an n n n \times n nn chessboard such that no two queens attack each other. Given an integer n, return the num…...

解锁 AI 量化新境界:Qbot 携手 iTick

在量化投资的汹涌浪潮中,你是否渴望拥有一个强大且便捷的工具,助你乘风破浪,驶向财富的彼岸?如今,Qbot 与 iTick 强强联合,为广大投资者和开发者打造出一个前所未有的 AI 量化生态系统。 Qbot:量…...

vue2设置横向滚动指令

图片横向滑动展示效果 创建directives.js文件 // 横向列表拖拽 const draggleScrollX {inserted(el, binding) {let isDragging false;let startX 0;let scrollLeft 0;el.classList.add("draggle-horizontal");// 添加监听事件-鼠标按下const onMouseDown (eve…...

Git和GitHub基础教学

文章目录 1. 前言2. 历史3. 下载安装Git3.1 下载Git3.2 安装Git3.3 验证安装是否成功 4. 配置Git5. Git基础使用5.1 通过Git Bash使用5.1.1 创建一个新的仓库。5.1.1.1 克隆别人的仓库5.1.1.2 自己创建一个本地仓库 5.1.2 管理存档 5.2 通过Visual Studio Code使用 6. Git完成远…...

【Linux docker】关于docker启动出错的解决方法。

无论遇到什么docker启动不了的问题 就是 查看docker状态sytemctl status docker查看docker日志sudo journalctl -u docker.service查看docker三个配置文件(可能是配置的时候格式错误):/etc/docker/daemon.json(如果存在&#xf…...

程序化广告行业(2/89):从程序化广告深挖数据处理技巧

程序化广告行业(2/89):从程序化广告深挖数据处理技巧 大家好!我一直希望能和大家在技术学习的道路上携手共进,这也是我写这一系列博客的初衷。上次我们一起学习了Python基础的数据处理知识,这次咱们借助一…...

第七课:Python反爬攻防战:Headers/IP代理与验证码

在爬虫开发过程中,反爬虫机制成为了我们必须面对的挑战。本文将深入探讨Python爬虫中常见的反爬机制,并详细解析如何通过随机User-Agent生成、代理IP池搭建以及验证码识别来应对这些反爬策略。文章将包含完整的示例代码,帮助读者更好地理解和…...

时序数据库TimescaleDB基本操作示例

好的&#xff01;以下是使用 TimescaleDB 的 Java 示例&#xff08;基于 JDBC&#xff0c;因为 TimescaleDB 是 PostgreSQL 的扩展&#xff0c;官方未提供独立的 Java SDK&#xff09;&#xff1a; 1. 添加依赖&#xff08;Maven&#xff09; <dependency><groupId&g…...

【CSS 】Class Variance Authority CSS 类名管理工具库

1.背景、什么是 CVA&#xff1f; Class Variance Authority (CVA) 是一个用于管理 CSS 类名 的工具库&#xff0c;特别适合在 React 或 Vue 等前端框架中使用。它可以帮助你更轻松地处理组件的 样式变体&#xff08;Variants&#xff09;&#xff0c;比如按钮的不同状态&#…...

【Linux】36.简单的TCP网络程序

文章目录 1. TCP socket API 详解1.1 socket():打开一个网络通讯端口1.2 bind():绑定一个固定的网络地址和端口号1.3 listen():声明sockfd处于监听状态1.4 accept():接受连接1.5 connect():连接服务器 2. 实现一个TCP网络服务器2.1 Log.hpp - "多级日志系统"2.2 Daem…...

Win 转 MacBook Pro 踩坑指南

前言 Window 和 macOS 系统的差异还是很大的&#xff0c;我从 Thinkpad 转用 M1 的 Macbook pro 已经一年了&#xff0c;几乎没有任何不适应&#xff0c;整体感受那是真的牛&#x1f443;&#xff0c;速度和续航惊艳到我了&#xff0c;同时开启 6个 vscode 加几十个浏览器标签…...

【模拟CMOS集成电路设计】带隙基准(Bandgap)设计与仿真(基于运放的电流模BGR)

【模拟CMOS集成电路设计】带隙基准&#xff08;Bandgap&#xff09;设计与仿真 前言工程文件&部分参数计算过程&#xff0c;私聊~ 一、 设计指标指标分析&#xff1a; 二、 电路分析三、 仿真3.1仿真电路图3.2仿真结果(1)运放增益(2)基准温度系数仿真(3)瞬态启动仿真(4)静态…...

手写一个Tomcat

Tomcat 是一个广泛使用的开源 Java Servlet 容器&#xff0c;用于运行 Java Web 应用程序。虽然 Tomcat 本身功能强大且复杂&#xff0c;但通过手写一个简易版的 Tomcat&#xff0c;我们可以更好地理解其核心工作原理。本文将带你一步步实现一个简易版的 Tomcat&#xff0c;并深…...

QT显示网页控件QAxWidget、QWebEngineView及区别

一.QT种显示网页控件QAxWidget 1.介绍 QAxWidget 属于 QtAxContainer 模块&#xff0c;ActiveX 是微软提出的一种组件对象模型&#xff08;COM&#xff09;技术&#xff0c;允许不同的软件组件在 Windows 操作系统上进行交互和集成。QAxWidget 为开发者提供了在 Qt 应用程序中…...

【AI智能体报告】开源AI助手的革命:OpenManus深度使用报告

一、引言&#xff1a;当开源智能体走进生活 2025年3月&#xff0c;MetaGPT团队用一场"开源闪电战"改写了AI Agent的竞争格局。面对商业产品Manus高达10万元的邀请码炒作&#xff0c;他们仅用3小时便推出开源替代品OpenManus&#xff0c;首日即登顶GitHub趋势榜。 …...

VS Code连接服务器教程

VS Code是什么 VS Code&#xff08;全称 Visual Studio Code&#xff09;是一款由微软推出的免费、开源、跨平台的代码编辑神器。VS Code 支持 所有主流操作系统&#xff0c;拥有强大的功能和灵活的扩展性。 官网&#xff1a;https://code.visualstudio.com/插件市场&#xff1…...

装饰器模式的C++实现示例

核心思想 装饰器设计模式是一种结构型设计模式&#xff0c;它允许动态地为对象添加额外的行为或职责&#xff0c;而无需修改其原始类。装饰器模式通过创建一个装饰器类来包装原始对象&#xff0c;并在保持原始对象接口一致性的前提下&#xff0c;扩展其功能。 装饰器模式的核…...

C 语言数据结构(二):顺序表和链表

目录 1. 线性表 2. 顺序表 2.1 概念及结构 2.1.1 静态顺序表&#xff08;不常用&#xff09; 2.1.2 动态顺序表&#xff08;常用&#xff09; ​编辑 2.2 练习 2.2.1 移除元素 2.2.2 删除有序数组中的重复项 2.2.3 合并两个有序数组 2.3 顺序表存在的问题 3. 链表 …...

TDengine 服务无法启动常见原因

taosd 是 TDengine 的核心服务进程&#xff0c;如果无法启动将导致整个数据库无法使用&#xff0c;了解常导致无法启动的原因&#xff0c;可以帮你快速解决问题。 1. 如何查找日志 无法启动的原因记录在日志中&#xff0c;日志文件默认在 /var/log/taos 的 taosdlog.0 或者 t…...

在 UniApp 中实现stream流式输出 AI 聊天功能,AI输出内容用Markdown格式展示

在 UniApp 中实现流式 AI 聊天功能 介绍 在现代 Web 开发中&#xff0c;流式 API 响应能够显著提升用户体验&#xff0c;尤其是在与 AI 聊天接口进行交互时。本文将介绍如何在 UniApp 中使用 Fetch API 实现一个流式响应的 AI 聊天功能&#xff0c;包括实时更新聊天内容和滚动…...

数据库SQL的配置和练习题

一、MySQL的安装 1.安装包下载 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 2.解压软件包 将MySQL软件包解压在没有中文和空格的目录下 3.设置配置文件 在解压目录下创建my.ini文件并添加内容如下&#xff1a; ​ [client] #客户端设置&…...

Pytorch的一小步,昇腾芯片的一大步

Pytorch的一小步&#xff0c;昇腾芯片的一大步 相信在AI圈的人多多少少都看到了最近的信息&#xff1a;PyTorch最新2.1版本宣布支持华为昇腾芯片&#xff01; 1、 发生了什么事儿&#xff1f; 在2023年10月4日PyTorch 2.1版本的发布博客上&#xff0c;PyTorch介绍的beta版本…...

AI+办公 Task1

作业 题目1&#xff1a;提示词除了三要素“角色”、“背景”、“要求”之外&#xff0c;还有哪些关键要素 提示词有一个框架叫CO-STAR框架&#xff0c;还有的关键要素有风格、任务、响应格式等。 要素适用场景实际案例​Context需要限定领域或场景的任务"作为医学助手&…...

文件系统调用─── linux第17课

目录 linux 中man 2和man 3的区别 文件内容介绍 C语言文件接口 示例: 输出信息到显示器&#xff0c;你有哪些方法 总结: 系统文件I/O 文件类的系统调用接口介绍 示例 open 函数具体使用哪个,和具体应用场景相关&#xff0c; write read close lseek ,类比C文件相关接…...

概念|RabbitMQ 消息生命周期 待消费的消息和待应答的消息有什么区别

目录 消息生命周期 一、消息创建与发布阶段 二、消息路由与存储阶段 三、消息存活与过期阶段 四、消息投递与消费阶段 五、消息生命周期终止 关键配置建议 待消费的消息和待应答的消息 一、待消费的消息&#xff08;Unconsumed Messages&#xff09; 二、待应答的消息…...

Javaweb后端文件上传@value注解

文件本地存储磁盘 阿里云oss准备工作 阿里云oss入门程序 要重启一下idea&#xff0c;上面有cmd 阿里云oss案例集成 优化 用spring中的value注解...

DeepSeek技术演进与发展前瞻

如果喜欢可以订阅专栏哟(^U^)ノ~YO,至少更新6年 以下DeepSeek未来发展的技术分析框架及核心内容示范 # -*- coding: utf-8 -*- """ DeepSeek技术演进模拟器(概念验证代码) 本代码展示动态架构调整的核心逻辑 """class DynamicArchitect…...

Java常见面试技术点整理讲解——后端框架(整理中,未完成)

前言&#xff1a; 对于后端常用框架的技术整理&#xff0c;其实框架在平时就是会用就行&#xff0c;但面试时多半需要描述实现原理&#xff0c;这个要靠自己理解&#xff0c;不推荐死记硬背。 这篇和另外几篇文章区分开&#xff0c;主要用于规整Java后端各种框架&#xff0c;…...

目标检测YOLO实战应用案例100讲-基于毫米波雷达的多目标检测 (续)

目录 3.2 改进的CFAR目标检测算法 3.3 算法步骤描述 3.4 实验结果与分析 基于VGG16-Net的毫米波雷达目标检测算法 4.1 VGG16-Net网络模型 4.2 改进VGG16-Net网络的目标检测算法 4.3 算法步骤描述 4.4 实验结果与分析 知识拓展 基于毫米波雷达的多目标检测:使…...

python爬虫:Android自动化工具Auto.js的详细使用

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 1. Auto.js 简介2. 安装与配置2.1 安装 Auto.js2.2 安装 Python 环境2.3 安装 ADB 工具3. Python 与 Auto.js 结合3.1 通过 ADB 执行 Auto.js 脚本3.2 通过 Python 控制 Auto.js3.3 通过 Python 与 Auto.js 交互4. 常用…...

MyBatis-Plus 注解大全

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 MyBatis-Plus 注解大全 MyBatis-Plus 是基于 MyBatis 的增强工具&#xff0c;通过注解简化了单表 CRUD 操作和复杂查询的配置。以下是常用注解的分类及详细说…...

牛客周赛 Round 84——小红的陡峭值(四)

牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ 小红的陡峭值&#xff08;四&#xff09; 题目&#xff1a; 思路&#xff1a; 题目告诉我们关于树的陡峭值的定义&#xff0c;那一开始看起来无从下手&#xff0c;但是当我们选取某一个节点为根节点时&#…...

Redis 内存淘汰策略深度解析

Redis 作为高性能的内存数据库&#xff0c;其内存资源的高效管理直接关系到系统的稳定性和性能。当 Redis 的内存使用达到配置的最大值&#xff08;maxmemory&#xff09;时&#xff0c;新的写入操作将触发内存淘汰机制&#xff08;Eviction Policy&#xff09;&#xff0c;以释…...

微前端之 Garfish.js 的基础使用教程和进阶配置

前言 在现代前端开发中&#xff0c;微前端架构逐渐成为一种流行的解决方案。它允许将大型应用拆分成多个小型独立的子应用&#xff0c;从而提高开发效率和可维护性。Garfish.js 是一个强大的微前端框架&#xff0c;可以帮助我们轻松实现这一架构。在本文中&#xff0c;通过一个…...

Rabbitmq--延迟消息

13.延迟消息 延迟消息&#xff1a;生产者发送消息时指定一个时间&#xff0c;消费者不会立刻收到消息&#xff0c;而是在指定时间之后才会收到消息 延迟任务&#xff1a;一定时间之后才会执行的任务 1.死信交换机 当一个队列中的某条消息满足下列情况之一时&#xff0c;就会…...

Webshell原理与利用

本文内容仅用于技术研究、网络安全防御及合法授权的渗透测试&#xff0c;严禁用于任何非法入侵、破坏或未经授权的网络活动。 1. WebShell的定义与原理 定义&#xff1a;WebShell是一种基于Web脚本语言&#xff08;如PHP、ASP、JSP&#xff09;编写的恶意后门程序&#xff0c;…...

Android 内存泄漏实战:从排查到修复的完整指南

通过实战示例和工具使用&#xff0c;帮助开发者理解、排查和修复 Android 应用中的内存泄漏问题 1. 什么是内存泄漏&#xff1f; 定义&#xff1a;内存泄漏是指程序中已动态分配的内存由于某种原因未能释放&#xff0c;导致系统内存的浪费&#xff0c;最终可能导致应用崩溃或性…...

Liunx系统 : 进程间通信【IPC-Shm共享内存】

文章目录 System V共享内存创建共享内存shmget 控制共享内存shmctl shm特性 System V System V是Liunx中的重要的进程间通信机制&#xff0c;它包括&#xff08;shm&#xff09;共享内存&#xff0c;&#xff08;msg&#xff09;消息队列和&#xff08;sem&#xff09;信号量。…...

c语言笔记 数组指针

数组指针是指针类型的一种&#xff0c;一般数组指针跟二维数组&#xff0c;一维数组结合比较多&#xff0c;下面我们通过图片来探讨一下数组指针的使用以及结合起来的联系。 1.数组指针与一维数组 int a[3]; //一维数组 int aa[2][3];//二维数组 数组元素类型 int [3] int (*p…...

SpringBoot + vue 管理系统

SpringBoot vue 管理系统 文章目录 SpringBoot vue 管理系统 1、成品效果展示2、项目准备3、项目开发 3.1、部门管理 3.1.1、前端核心代码3.1.2、后端代码实现 3.2、员工管理 3.2.1、前端核心代码3.2.2、后端代码实现 3.3、班级管理 3.3.1、前端核心代码3.3.2、后端代码实现 …...

Python语法核心架构与核心知识点:从理论到实践

一、Python的核心设计哲学 Python以“简洁优雅”为核心理念&#xff0c;遵循以下原则&#xff1a; # Zen of Python&#xff08;输入 import this 可查看&#xff09; >>> import this The Zen of Python, by Tim Peters ... Simple is better than complex. Readab…...

OpenHarmony子系统开发 - 编译构建Kconfig可视化配置指导

OpenHarmony子系统开发 - 编译构建Kconfig可视化配置指导 概述 功能简介 该功能基于Kconfiglib与Kconfig实现&#xff0c;方便用户个性化配置OpenHarmony产品子系统部件。 基于Kconfig实现的可视化配置功能具有以下优点&#xff1a; 能直观且全面地展示软件的部件选项。可…...