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

JVM和异常

Java 虚拟机(Java Virtual Machine,简称 JVM)

概述

JVM 是运行 Java 字节码的虚拟计算机,它是 Java 程序能够实现 “一次编写,到处运行(Write Once, Run Anywhere)” 特性的关键所在。Java 程序首先被编译成字节码(.class 文件),然后由 JVM 在不同的操作系统和硬件平台上执行这些字节码,屏蔽了底层操作系统和硬件的差异。

体系结构

  • 类加载子系统(Class Loader Subsystem):负责加载字节码文件到 JVM 中。它包括启动类加载器(Bootstrap Class Loader),主要加载 Java 的核心类库,像 java.lang 包下的类等;扩展类加载器(Extension Class Loader),负责加载 Java 扩展库;应用程序类加载器(Application Class Loader),加载用户编写的类路径下的类等。例如,当运行一个简单的 HelloWorld 程序时,应用程序类加载器会把对应的 HelloWorld.class 文件加载进来。
  • 运行时数据区(Runtime Data Areas)
    • 方法区(Method Area):用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。在 HotSpot JVM 中,方法区也常被称为永久代(Permanent Generation,不过在 Java 8 之后,元空间(Metaspace)取代了永久代)。
    • 堆(Heap):这是 JVM 内存管理中最大的一块区域,主要用于存放对象实例。所有的对象实例以及数组都要在堆上分配内存,例如通过 new 关键字创建的对象都会存放在堆中。
    • 虚拟机栈(Java Virtual Machine Stacks):每个线程都有一个私有的虚拟机栈,它描述的是 Java 方法执行的内存模型。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。栈帧中存储了局部变量表、操作数栈、动态连接、方法返回地址等信息。
    • 本地方法栈(Native Method Stacks):和虚拟机栈类似,不过它是为执行本地方法(Native Method,一般是用其他语言编写的与底层系统交互的方法,比如 C 或 C++ 编写的方法)服务的。
    • 程序计数器(Program Counter Register):可以看作是当前线程所执行的字节码的行号指示器。因为在多线程环境下,线程会频繁地切换,而程序计数器能保证每个线程切换回来后能准确地知道下一条要执行的字节码指令。
  • 执行引擎(Execution Engine):负责执行字节码指令。执行引擎会把字节码指令解释执行或者编译成机器码后再执行,像 HotSpot JVM 就采用了即时编译(Just-In-Time Compilation,JIT)技术,对于热点代码(频繁执行的代码)会将其编译成机器码以提高执行效率。

垃圾回收(Garbage Collection,GC)

JVM 自动管理内存,其中很重要的一部分就是垃圾回收机制。它会自动识别并回收那些不再被使用的对象所占用的内存空间。例如,当一个对象没有任何引用指向它时,经过一定的垃圾回收算法(如标记 - 清除算法、复制算法、标记 - 整理算法等)的判断和处理,其占用的内存就会被释放掉,让内存能够得到有效的利用,减少内存泄漏等问题的发生。

重要性及应用场景

JVM 的存在让 Java 开发人员无需过多关注底层硬件和操作系统的差异,专注于业务逻辑开发。在企业级应用开发、安卓应用开发(安卓系统中也有基于 JVM 改造的 Dalvik 虚拟机、ART 虚拟机等)、大数据处理框架(很多大数据框架基于 Java 开发,运行在 JVM 上)等众多场景中广泛应用,保障了 Java 程序稳定、高效地运行。

总之,JVM 是 Java 生态中极为重要的基础支撑,深入理解它对于优化 Java 程序性能、排查内存相关问题等都有着重要的意义。

异常类概述

在 Java 中,异常类(Exception Classes)用于表示程序执行过程中出现的异常情况,它是 Throwable 类的子类。当程序运行过程中发生一些不符合预期的状况,比如试图访问不存在的文件、数组越界、除数为零等,就会抛出对应的异常对象,如果不进行处理,程序通常会终止执行。通过合理地使用异常类,可以更好地控制程序流程,增强程序的健壮性和容错能力。

异常类的层次结构

  • Throwable 类:它是所有异常和错误的超类,位于异常类层次结构的顶层。Throwable 有两个重要的子类,分别是 Exception 和 Error
  • Exception 类:表示程序本身可以处理的异常情况,又可以细分为两类。
    • 受检异常(Checked Exceptions):这类异常是编译器要求必须进行处理的异常,通常是一些在程序运行时可能会出现的可预期的异常情况,比如 IOException(涉及输入输出操作,像文件读取写入时可能出现问题)、SQLException(进行数据库操作时可能产生的异常)等。在方法中如果可能抛出受检异常,要么使用 try-catch 语句块捕获并处理它,要么在方法声明处通过 throws 关键字声明抛出该异常,让调用者去处理。例如:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;public class CheckedExceptionExample {public static void main(String[] args) {try {File file = new File("test.txt");FileInputStream fis = new FileInputStream(file);// 这里如果文件不存在等情况就会抛出IOException,后续代码进行处理} catch (IOException e) {e.printStackTrace();}}
}
  • 非受检异常(Unchecked Exceptions):也叫运行时异常(Runtime Exceptions),这类异常通常是由于程序员编写代码时的逻辑错误导致的,比如 NullPointerException(对空指针进行操作)、ArrayIndexOutOfBoundsException(数组越界)、ArithmeticException(算术运算异常,像除数为零)等。编译器不会强制要求处理这类异常,但如果发生了也会导致程序异常终止,除非在代码中进行合适的处理。例如:
public class UncheckedExceptionExample {public static void main(String[] args) {int[] arr = new int[5];// 下面这行代码会抛出ArrayIndexOutOfBoundsExceptionSystem.out.println(arr[10]); }
}
  • Error 类:表示严重的、不应该被程序捕获处理的错误情况,一般是 JVM 内部错误或者资源耗尽等非常严重的问题,比如 OutOfMemoryError(内存溢出)、StackOverflowError(栈溢出)等。当出现这类错误时,通常很难通过程序本身去恢复,往往意味着程序需要重新启动或者进行系统层面的调整。例如:
public class ErrorExample {public static void main(String[] args) {// 下面的递归调用如果没有终止条件,会导致栈空间不断被占用,最终抛出StackOverflowErrorrecursiveMethod(); }public static void recursiveMethod() {recursiveMethod();}
}

自定义异常类

除了使用 Java 内置的异常类,开发人员还可以根据具体的业务需求自定义异常类。自定义异常类通常需要继承自 Exception 类(如果是受检异常)或者 RuntimeException 类(如果是非受检异常)。例如,假设在一个电商系统中,当库存不足时想要抛出特定的异常,可以这样定义:

// 自定义受检异常类
public class InsufficientStockException extends Exception {public InsufficientStockException(String message) {super(message);}
}

然后在相关业务逻辑代码中使用:

public class Product {private int stock;public Product(int stock) {this.stock = stock;}public void sell(int quantity) throws InsufficientStockException {if (quantity > stock) {throw new InsufficientStockException("库存不足,无法销售这么多商品");}stock -= quantity;}
}

总之,合理运用异常类并对各种可能出现的异常情况进行妥善处理,对于编写高质量、稳定可靠的 Java 程序是至关重要的。

相关文章:

JVM和异常

Java 虚拟机(Java Virtual Machine,简称 JVM) 概述 JVM 是运行 Java 字节码的虚拟计算机,它是 Java 程序能够实现 “一次编写,到处运行(Write Once, Run Anywhere)” 特性的关键所在。Java 程…...

设计模式 创建型 单例模式(Singleton Pattern)与 常见技术框架应用 解析

单例模式(Singleton Pattern)是一种创建型设计模式,旨在确保某个类在应用程序的生命周期内只有一个实例,并提供一个全局访问点来获取该实例。这种设计模式在需要控制资源访问、避免频繁创建和销毁对象的场景中尤为有用。 一、核心…...

idea( 2022.3.2)打包报错总结

一 报错 class lombok.javac.apt.LombokProcessor (in unnamed module 0x4fe64d23) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing …...

基于SpringBoot在线竞拍平台系统功能实现十一

## 一、前言介绍:1.1 项目摘要 随着网络技术的飞速发展和电子商务的普及,竞拍系统作为一种新型的在线交易方式,已经逐渐深入到人们的日常生活中。传统的拍卖活动需要耗费大量的人力、物力和时间,从组织拍卖、宣传、报名、竞拍到成…...

kubernetes学习-Service

kubernetes学习-Service 1. Service说明2. 功能3.Service类型3.1 NodePort3.1.1 创建web-service.yaml3.1.2 创建web-pod.yaml3.1.3 部署3.1.4 验证 3.2 ClusterIP3.2.1 创建web-clusterIp-service.yaml3.2.2 创建web-clusterIp-pod.yaml3.2.3 部署3.2.4 验证 3.3 LoadBalancer…...

【bluedroid】A2dp Source播放流程源码分析(4)

接上集分析:【bluedroid】A2dp Source播放流程源码分析(3)-CSDN博客 蓝牙和AUDIO之间的接口 蓝牙和audio之间的通信是通过socket,管理socket中的文件是UIPC,UIPC管理两条socket。 A2DP_CTRL_PATH /data/misc/bluedroid/.a2dp_ctrl A2DP_DATA_PATH /data/misc/bluedroid…...

vue3基础,小白从入门到精通

目录 一、vue.js 简述 二、 下载 vue.esm-browser.js 这个模块文件 三、创建第一个Vue程序 3.1创建代码过程 四、v-on 五、循环遍历(v-for) 六、判断语法(v-if和v-show) 6.1节点的动态属性v-bind 6.2 用v-bind实现CSS样式绑定 一、vue.js 简述 Vue 3 是一款流行的 J…...

Go 如何优雅退出进程

优雅退出设计步骤 在 Go 项目中,设计优雅退出(Graceful Shutdown)时,通常需要确保在收到退出信号时,程序能够安全地清理资源并优雅地退出。以下是常见的优雅退出设计步骤: 步骤 1:创建 contex…...

#Vue3篇: 无感刷新token的原理JSESSIONID无感刷新和JWT接口刷新

基于这个后端是怎么更新token的 为了理解后端是如何更新 Token 的,我们需要考虑一个典型的基于 Token 的身份验证流程,特别是涉及 JSESSIONID 和自定义 Token(如 JWT, JSON Web Token)的情况。 下面我将介绍两种常见的更新 Token …...

从零开始学桶排序:Java 示例与优化建议

目录 一、桶排序的工作原理 二、适用场景 三、桶排序的时间复杂度 四、Java 实现桶排序 桶排序(Bucket Sort)是一种基于分桶的排序算法,适用于输入数据分布较均匀的场景。它通过将元素分配到不同的“桶”中,然后对每个桶内的元…...

自定义luacheck校验规则

安装运行环境 安装环境及源码解析,参考:LuaCheck校验原理解析 自定义校验规则 从代码中可以看出,定义一条规则有以下关键点: 需要定义告警信息:由键值对组成,key为告警编码(不一定为纯数字&…...

Mac连接云服务器工具推荐

文章目录 前言步骤1. 下载2. 安装3. 常用插件安装4. 连接ssh测试5. 连接sftp测试注意:ssh和sftp的区别注意:不同文件传输的区别解决SSL自动退出 前言 Royal TSX是什么: Royal TSX 是一款跨平台的远程桌面和连接管理工具,专为 mac…...

【react】Redux的设计思想与工作原理

Redux 的设计理念 Redux 的设计采用了 Facebook 提出的 Flux 数据处理理念 在 Flux 中通过建立一个公共集中数据仓库 Store 进行管理,整体分成四个部分即: View (视图层)、Action (动作)、Dispatcher (派发器)、Stor…...

深入解析Android JNI:以Visualizer为例

深入解析Android JNI:以Visualizer为例 引言 Java Native Interface (JNI) 是Java平台提供的一种机制,允许Java代码与本地代码(如C/C++)进行交互。在Android开发中,JNI被广泛用于性能优化、访问底层系统API、以及复用现有的C/C++库。本文将通过Android中的Visualizer类,…...

Java基于SpringBoot的甘肃非物质文化网站的设计与实现,附源码

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…...

Unity小白工作心得(无限记录)

24届毕业,11月才找到工作在一家小公司。工作两个月了,遇到最大的问题就是探索新知识,每天都是摸索式前进,因为工作面临着交付,你不得不想尽办法解决问题然后交给上面,但其他程序员用的引擎不一样&#xff0…...

STC单片机内部常见寄存器及其作用

STC单片机内部常见寄存器及其作用 STC单片机是基于8051架构的增强型单片机,广泛应用于嵌入式系统中。其内部有多个特殊功能寄存器(SFR, Special Function Register),用于控制硬件模块(如定时器、串口、中断等&#xf…...

【亚马逊云】基于Amazon EC2实例部署 NextCloud 云网盘并使用 Docker-compose 搭建 ONLYOFFICE 企业在线办公应用软件

文章目录 1. 部署EC2实例2. 安装 Docker 服务3. 安装docker-compose4. 创建Docker-compose文件5. 创建nginx.conf文件6. 运行docker-compose命令开始部署7. 访问ONLYOFFICE插件8. 访问NextCloud云盘9. 下载并启用ONLYOFFICE插件10. 上传文件测试11. 所遇问题12. 参考链接 1. 部…...

vim、watch、cp和mv

一、vim使用技巧 vim主配置文件:/etc/vimrc (对所有用户都生效) vim子配置文件:vim ~/.vimrc (只对当前用户生效) 可写入: set nu 显示行号 ts2 tab键长度为两个空格(默认为8个空格…...

【Linux】:线程安全 + 死锁问题

📃个人主页:island1314 🔥个人专栏:Linux—登神长阶 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 1. 线程安全和重入问题&…...

HarmonyOS Next 应用元服务开发-应用接续动态配置迁移保持迁移连续性

保证迁移连续性,由于迁移加载时,目标端拉起的应用可能执行过自己的迁移状态设置命令(如:冷启动时目标端在onCreate中设置了INACTIVE;热启动时对端已打开了不可迁移的页面,迁移状态为INACTIVE等情况&#xf…...

重装操作系统后 Oracle 11g 数据库数据还原

场景描述: 由于SSD系统盘损坏,更换硬盘后重装了操作系统,Oracle数据库之前安装在D盘(另一个硬盘),更换硬盘多添加一个盘符重装系统后盘符从D变成E,也就是之前的D:/app/... 变成了现在的 E:/app/...,重新安装…...

《Vue3实战教程》39:Vue3无障碍访问

如果您有疑问,请观看视频教程《Vue3实战教程》 无障碍访问​ Web 无障碍访问 (也称为 a11y) 是指创建可供任何人使用的网站的做法——无论是身患某种障碍、通过慢速的网络连接访问、使用老旧或损坏的硬件,还是仅处于某种不方便的环境。例如,…...

Linux-Redis哨兵搭建

环境资源准备 主机名IP端口号角色vm1192.168.64.156379/26379mastervm2192.168.64.166379/26379slavevm3192.168.64.176379/26379slave 6379为redis服务暴露端口号、26379为sentinel暴露端口号。 安装Redis # 包文件下载 wget https://github.com/redis/redis/archive/7.2.2…...

数据分析思维(六):分析方法——相关分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》,本文内容就是提取…...

Go基础之环境搭建

文章目录 1 Go1.1 简介1.1.1 定义1.1.2 特点用途 1.2 环境配置1.2.1 下载安装1.2.2 环境配置1.2.2.1 添加环境变量1.2.2.2 各个环境变量理解 1.2.3 验证环境变量 1.3 包管理工具 Go Modules1.3.1 开启使用1.3.2 添加依赖包1.3.3 配置国内包源1.3.3.1 通过 go env 配置1.3.3.2 修…...

Flume的安装和使用

一、安装Flume 1. 下载flume-1.7.0 http://mirrors.shu.edu.cn/apache/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz 2. 解压改名 tar xvf apache-flume-1.7.0-bin.tar.gz mv apache-flume-1.7.0-bin flume 二、配置Flume 1. 配置sh文件 cp conf/flume-env.sh.template …...

原生js封装ajax请求以及css实现提示效果和禁止点击效果

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0,user-scalableno"><title>本地模式网络切换</title>&l…...

idea 的 springboot项目spring-boot-devtools 自动编译 配置热部署

1&#xff0c;设置一 2&#xff0c;设置二 设置二&#xff08;旧版本&#xff09; CtrlShiftAlt/ 点击弹出框中Registry... 引入&#xff08;如果报错&#xff0c;换不同的版本&#xff09; <dependency><groupId>org.springframework.boot</groupId><a…...

算法 class 005 (对数器C语言实现)

对数器的概念&#xff1a; 用来测试你的算法是否正确。 怎么做呢&#xff1f; 1&#xff1a;比如&#xff0c;写个冒泡排序&#xff0c;作为对比的对象 2&#xff1a;生成一个随机数 数组&#xff0c;用来测试 3&#xff1a;用冒泡排序和你想要验证的那个排序算法&#xff0c;同…...

靶场搭建问题(技巧)总结

目录 DVWA靶场问题 待续、更新中...... DVWA靶场 问题 错误信息 Parse error: syntax error, unexpected ‘[’, expecting ‘)’ in C:\Softwares\phpstudy\PHPTutorial\WWW\dvwa\dvwa\includes\dvwaPage.inc.php on line 52 原因 phpstudy2018所使用的php版本过低&#xff0c…...

Elasticsearch DSL版

文章目录 1.索引库操作创建索引库&#xff1a;删除索引库&#xff1a;查询索引库&#xff1a;修改索引库&#xff1a;总结 2.文档操作创建文档&#xff1a;查询文档&#xff1a;删除文档&#xff1a;全量修改文档&#xff1a;增量修改文档&#xff1a;总结 3.DSL查询语法&#…...

在K8S中,Pod请求另一个Pod偶尔出现超市或延迟,如何排查?

在Kubernetes中&#xff0c;当Pod请求另一个Pod时偶尔出现超时或延迟&#xff0c;可能是由于多种原因造成的。以下是一些建立的排查步骤&#xff1a; 1. 检查网络配置和插件&#xff1a; 确认你的kubernetes集群使用了合适的网络插件&#xff08;如Calico、Flannel等&#xf…...

Echarts实现大屏可视化2

目录 一、效果展示 二、说明 2.1 销售额统计图表 2.2 全国热榜模块 三、边框图片【border-image】 3.1 使用场景 3.2 边框图片切图原理 3.3 边框图片语法【重要】 四、代码展示 4.1 展示页面 4.2 数据概览区域 4.3 监控区域 4.4 点位分布统计区域 4.5 设备数据统…...

HarmonyOS NEXT 应用开发练习:智能视频推荐

一、整体思路 本DEMO展示了如何在HarmonyOS NEXT平台上开发一个智能视频推荐应用。应用通过模拟的用户偏好数据&#xff0c;为用户推荐可能感兴趣的视频。用户可以通过滑动屏幕查看推荐的视频列表&#xff0c;并点击视频封面进入播放页面&#xff0c;本例中仅模拟点击效果&…...

FPGA(二)组成结构基础内容

1. FPGA的基本结构 FPGA主要由以下部分组成&#xff1a; &#xff08;1&#xff09;可编程逻辑单元&#xff08;CLB&#xff09;&#xff1a;CLB是FPGA中最基本的逻辑单元&#xff0c;由查找表&#xff08;LUT&#xff09;和触发器组成&#xff0c;可实现任意逻辑功能。查找表…...

linux中执行命令

1.1 命令格式 命令格式&#xff1a; 主命令 选项 参数&#xff08;操作对象&#xff09; 命令分为两类&#xff1a; 内置命令&#xff08; builtin &#xff09;&#xff1a;由 shell 程序自带的命令 外部命令&#xff1a;有独立的可执行程序文件&#xff0c;文件名即命令…...

《Java 数据结构》

《Java 数据结构》 1. 概述 Java 数据结构是计算机科学中的一种基础概念&#xff0c;它涉及到数据的组织和存储方式&#xff0c;以便能够高效地访问和修改数据。在 Java 中&#xff0c;数据结构通常通过类和接口来实现&#xff0c;这些类和接口提供了用于操作数据的各种方法。…...

C# 设计模式(结构型模式):装饰器模式

C# 设计模式&#xff08;结构型模式&#xff09;&#xff1a;装饰器模式 在软件开发中&#xff0c;面对需要扩展功能但又不想修改已有代码的情况时&#xff0c;装饰模式&#xff08;Decorator Pattern&#xff09;是一个非常有用的设计模式。装饰模式允许我们在不改变对象自身…...

ubuntu初始配置

ubuntu初始配置 vm下ubuntu安装vmtools安装常用工具ubuntu终端美化安装ssh使用apt安装时出现错误解决办法 vm下ubuntu安装vmtools //安装vmtools sudo apt-get install open-vm-tools //桌面组件提供了更好的集成体验&#xff0c;包括拖放文件和共享剪贴板等功能 sudo apt-get…...

Spark Runtime Filter

Runtime Filter 参考链接&#xff1a; https://docs.google.com/document/d/16IEuyLeQlubQkH8YuVuXWKo2-grVIoDJqQpHZrE7q04/edit?tabt.0https://www.modb.pro/db/557718https://issues.apache.org/jira/browse/SPARK-32268https://github.com/apache/spark/pull/35789https…...

《Vue3实战教程》42:Vue3TypeScript 与组合式 API

如果您有疑问&#xff0c;请观看视频教程《Vue3实战教程》 TypeScript 与组合式 API​ 这一章假设你已经阅读了搭配 TypeScript 使用 Vue 的概览。 为组件的 props 标注类型​ 使用 <script setup>​ 当使用 <script setup> 时&#xff0c;defineProps() 宏函数支…...

【Hadoop】Hadoop安全之Knox网关

目录 一、概述 2.1 knox介绍 2.2 版本信息 二、部署 三、验证Knox网关 3.1 Hdfs RESTFULL 3.2 HDFSUI 3.3 YARNUI 3.4 HBASEUI 一、概述 2.1 knox介绍 Apache Knox网关是一个用于与Apache Hadoop部署的REST api和ui交互的应用程序网关。Knox网关为所有与Apache Hadoop…...

UML之关联

关联指两个类之间的各种联系。UML使用各种单实线表示关联&#xff0c;这个单实线可以是直线&#xff08;垂直的、水平的或者倾斜的&#xff09;、折线甚至曲线。 事实上&#xff0c;关联也是展示类的属性的另一外的一种形式。例如在下图中&#xff0c;我们通过一条实线连接类B…...

大数据面试笔试宝典之大数据运维面试

1.大数据集群节点规划 1.HDFS 集群节点规划 假如业务系统数据量每天增量 50T ,保留周期为 30 天,那么...

Matlab全局变量用法及其实例分析

⭕⭕ 目 录 ⭕⭕ 一、全局变量使用说明二、全局变量的用法实例演示2.1 实例演示2.2 修改global 一、全局变量使用说明 全局变量是指在不同的工作空间以及基本的工作空间中可以共享的变量。用户只需要在主程序或者任何子程序中声明一个或多个全局变量&#xff0c;则函数和主程序…...

leetcode hot 100 跳跃游戏

55. 跳跃游戏 已解答 中等 相关标签 相关企业 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则…...

CG顶会论文阅读|《科技论文写作》硕士课程报告

文章目录 一、基本信息1.1 论文基本信息1.2 课程基本信息1.3 博文基本信息 二、论文评述&#xff08;中英双语&#xff09;2.1 研究问题&#xff08;Research Problem&#xff09;2.2 创新点&#xff08;Innovation/Contribution&#xff09;2.3 优点&#xff08;Why this pape…...

短视频矩阵系统搭建开发指导

在数字化营销的广阔天地中&#xff0c;抖音短视频已迅速崛起为一个拥有巨大影响力的社交媒体平台。随着其受众范围的日益扩大&#xff0c;采用有效的搜索引擎优化&#xff08;SEO&#xff09;策略以增强视频的曝光度和吸引流量变得至关重要。本文旨在阐述一种专为抖音短视频量身…...

LeetCode热题100-移动零【JavaScript讲解】

题目&#xff1a; 根据本题想思路&#xff1a; 快指针和慢指针同时移动&#xff0c;当遍历的值不为0的时候&#xff0c;将快指针的值赋给慢指针&#xff0c;如果遍历到0&#xff0c;快指针继续移动&#xff0c;慢指针不动等待被覆盖。之后使用fill方法填充0。具体答案放在最后…...