牛客网刷题(3)(Java的几种常用包)
目录
一、牛客网案例题目。
二、Java常用包的总结。
<1>JAVA常用包(图片)。
<2>java.lang包。
<3>java.util包。
(1)集合框架。
1、Collection接口。
2、List接口。
3、Set接口。
4、Queue接口。
5、Map接口。
6、Collections类与Arrays类。
7、集合框架图。
(2)日期和时间。
1、Date类。
2、Calendar类。
3、TimeZone类。
(3)随机数生成。
1、Random类。
(4)其他实用工具类。
1、Properties类。
2、StringTokenizer类。
3、UUID类。
4、Stack类。
<4>java.sql包。
(1)基本概念。
(2)主要功能。
1、数据库的连接。
2、执行SQL语句。
3、处理结果集。
4、管理连接。
5、异常处理。
(3)关键类与接口。
1、DriverManager。
2、Connection。
3、Statement、PreparedStatement、CallableStatement。
4、ResultSet。
5、SQLException。
(4)JDBC的工作流程。
1、加载数据库驱动程序。
2、建立数据库连接。
3、创建Statement对象。
4、执行SQL语句。
5、处理结果集。
6、关闭资源。
(5)JDBC的优势。
1、平台无关性。
2、简单易用。
3、安全性。
4、可扩展性。
<5>java.io包。
(1)Java IO的基本概念。
(2)Java IO的分类。
1、基于字节操作的I/O接口。
2、基于字符操作的I/O接口。
3、基于磁盘操作的I/O接口。
4、缓冲流。
5、序列化流。
6、数据流。
(3)Java IO的常用类和方法。
1、File类。
2、InputStream和OutputStream类。
3、Reader和Writer类。
4、缓冲流类。
5、序列化流类。
(4)Java IO的异常处理。
(5)Java IO的编码与解码。
(6)Java IO的性能优化。
1、使用缓冲流。
2、选择合适的字符编码。
3、关闭流资源。
(7)try-with-resources语句。
1、基本介绍。
2、基本语法结构。
3、补充说明。
一、牛客网案例题目。
题目:提供java存取数据库能力的包是?
答案:A。没有java.db包!
优秀评论:
二、Java常用包的总结。
<1>JAVA常用包(图片)。
- java.awt。
- java.io。
- java.lang。
- java.util。
- java.sql。
<2>java.lang包。
(java.lang是Java编程语言的核心包,它提供了Java程序的基础类和接口)
- Object类(所有Java类的基类)
- String类(用于处理不可变的字符序列,提供了丰富的字符串操作方法)
- Class类(代表正在运行的Java类或接口的信息,是反射机制的核心)
- Thread类(代表线程,用于实现多线程编程)
- 包装类(如Integer、Double、Boolean等,为每种基本数据类型提供了对应的包装类,实现了对象和基本类型的互换,支持泛型、集合操作等面向对象特性)
- Math类(提供了一系列静态方法进行数学运算,如平方根、随机数生成、最大最小值等)
- Exception与Error类(作为异常处理体系的基础类,Exception表示程序运行时可能需要捕捉并处理的异常情况,Error则通常指示严重的错误,一般不被捕获)
<3>java.util包。
(java.util是Java标准库中一个非常核心的包,提供了许多实用的类和接口。主要用于处理集合数据结构、日期时间、随机数生成、工具操作等)
(1)集合框架。
1、Collection接口。
- 所有集合类的根接口,定义了集合的基本操作,如添加、删除、包含等。
- Collection接口没有直接实现,它的子接口List、Set和Queue实现了具体的集合类型。
2、List接口。
- 表示有序的集合,可以包含重复的元素。主要实现类有ArrayList和LinkedList。
- ArrayList基于动态数组实现,支持快速随机访问,但在插入和删除操作上较慢;
- LinkedList基于双向链表实现,支持快速插入和删除,但在随机访问上较慢。
3、Set接口。
- 表示不允许重复元素的集合。主要实现类有HashSet、LinkedHashSet和TreeSet。
- HashSet基于哈希表实现,元素没有顺序,提供高效的查找、添加和删除操作;LinkedHashSet继承自HashSet,保持插入顺序;
- TreeSet基于红黑树实现,元素按照自然顺序或指定比较器排序。
4、Queue接口。
- 表示先进先出的队列。
- 主要实现类有LinkedList和PriorityQueue。
- LinkedList实现了Queue接口,支持队列操作;
- PriorityQueue基于优先级堆实现,元素按照优先级顺序排序。
5、Map接口。
- 用于存储键值对的集合。
- 主要实现类有HashMap、LinkedHashMap和TreeMap。
- HashMap基于哈希表实现,允许null键和null值,键值对没有顺序;
- LinkedHashMap继承自HashMap,保持插入顺序;TreeMap基于红黑树实现,键按照自然顺序或指定比较器排序。
6、Collections类与Arrays类。
- Collections类提供了对集合进行操作的静态方法,如排序、查找、同步等;
- Arrays类提供了对数组进行操作的静态方法,如排序、搜索、转换等。
7、集合框架图。
(2)日期和时间。
1、Date类。
- 表示一个特定的时间点,包含年月日时分秒等信息。
- 但Date类设计不够灵活,已被新的日期时间API所取代。
2、Calendar类。
- 用于处理日期和时间,提供了对日期的各种操作,如加减日期、获取日期组件等。Calendar是一个抽象类,有多个实现类。如GregorianCalendar表示公历的日期和时间。
3、TimeZone类。
- 表示时区,用于处理不同地区的时间。
(3)随机数生成。
1、Random类。
- 提供伪随机数生成器,可以生成各种类型的随机数,包括整数、浮点数、布尔值等。
(4)其他实用工具类。
1、Properties类。
- 扩展自Hashtable,用于存储和操作键值对的集合,通常用于读取和写入配置文件。
2、StringTokenizer类。
- 用于分割字符串,但它是旧版的字符串分割工具,现代Java推荐使用String.split()方法。
3、UUID类。
- 提供生成唯一标识符的功能,常用于生成唯一的ID。
4、Stack类。
- java.util包还包括了Stack类(基于Vector实现的栈结构,但现代Java推荐使用Deque接口的实现类如ArrayDeque来替代实现栈功能)、BitSet类(用于处理位集合)、EventObject类(用于事件处理机制中的事件对象)等实用工具类。
<4>java.sql包。
(java.sql是Java编程语言中专门用于数据库访问和处理的包。它提供了一套完整的API,允许Java程序与各种数据库进行交互,包括连接数据库、执行SQL语句、处理结果集以及管理数据库连接等)
(这些功能是通过JDBC技术实现的,JDBC是Java数据库连接的标准API,它使得Java程序能够以一种统一的方式访问不同类型的数据库)
(1)基本概念。
- java.sql包。Java标准库中的一个包,包含了用于数据库访问和处理的类和接口。
- JDBC(Java Database Connectivity)。Java数据库连接,是java.sql包实现的核心技术,它提供了一套用于执行SQL语句的Java API。
(2)主要功能。
1、数据库的连接。
- 通过DriverManager类,可以建立与数据库的连接。
- DriverManager:这是java.sql包中的一个核心类。它负责加载数据库驱动程序,并根据提供的数据库URL、用户名和密码等信息建立与数据库的连接。
- DriverManager类维护了一个已注册的JDBC驱动程序的列表,并管理这些驱动程序的连接请求。
2、执行SQL语句。
- Statement:这是一个接口,用于执行静态SQL语句并返回结果。
- 通过Connection对象可以创建Statement对象。Statement对象可以执行简单的SQL查询、更新和删除操作。
- PreparedStatement:这是Statement的一个子接口,它代表一条预编译的SQL语句。
- 与Statement相比,PreparedStatement允许将SQL语句中的参数进行参数化,从而提高了SQL语句的安全性和性能。PreparedStatement还可以用于执行带有IN参数的批量更新操作。
- CallableStatement:这是另一个Statement的子接口,它用于执行数据库中的存储过程。
- CallableStatement对象可以调用数据库中的存储过程,并处理存储过程的输出参数和结果集。
3、处理结果集。
- ResultSet:这是一个接口,它代表数据库查询操作的结果集。
- ResultSet对象可以逐行遍历查询结果,并访问每一列的数据。ResultSet还提供了许多方法来获取不同类型的数据,如getString()、getInt()等。
- ResultSetMetaData:这是一个接口,它提供了关于ResultSet对象中列的信息。
- 通过ResultSetMetaData对象,可以获取ResultSet中列的数量、列名、列的数据类型等信息。
4、管理连接。
- Connection:这是一个接口,它代表与数据库的连接。
- 通过Connection对象,可以创建Statement对象、管理事务(如提交和回滚)、设置连接属性等。Connection对象还提供了关闭连接的方法,以释放数据库资源。
5、异常处理。
- SQLException:这是java.sql包中的一个异常类,它表示在数据库操作中发生的错误或异常。
- SQLException类提供了许多方法来获取关于异常的详细信息,如错误代码、SQL状态、异常原因等。
(3)关键类与接口。
1、DriverManager。
- 管理数据库驱动程序的加载和建立数据库连接。
2、Connection。
- 代表与特定数据库的连接。
3、Statement、PreparedStatement、CallableStatement。
- 用于执行SQL语句。
4、ResultSet。
- 表示数据库查询的结果集。
5、SQLException。
- 表示在数据库操作中发生的异常。
(4)JDBC的工作流程。
1、加载数据库驱动程序。
- 在使用JDBC之前,需要先将数据库驱动程序加载到Java虚拟机中。
- 这通常是通过调用Class.forName()方法来实现的,该方法会加载指定类的字节码,并触发该类的静态代码块的执行,从而加载数据库驱动程序。
2、建立数据库连接。
- 通过DriverManager类的getConnection()方法,可以根据提供的数据库URL、用户名和密码等信息建立与数据库的连接。
3、创建Statement对象。
- 通过Connection对象的createStatement()方法,可以创建一个Statement对象,用于执行SQL语句。
4、执行SQL语句。
- 使用Statement对象的executeQuery()、executeUpdate()或execute()方法执行SQL语句。
- 其中,executeQuery()方法用于执行查询操作,并返回一个ResultSet对象;
- executeUpdate()方法用于执行更新、插入或删除操作,并返回一个表示受影响的行数的整数;
- execute()方法则可以执行任何SQL语句,并返回一个布尔值来表示是否返回了一个结果集。
5、处理结果集。
- 如果SQL语句是一个查询操作,那么执行后会返回一个ResultSet对象。
- 通过ResultSet对象可以逐行遍历查询结果,并访问每一列的数据。
6、关闭资源。
- 最后,需要关闭ResultSet、Statement和Connection对象以释放数据库资源。
- 这通常是通过调用它们的close()方法来实现的。
(5)JDBC的优势。
1、平台无关性。
- JDBC为Java程序提供了统一的数据库访问接口,使得Java程序可以跨平台运行,无需针对不同数据库编写不同的代码。
2、简单易用。
- JDBC提供了丰富的API,使得数据库操作变得简单直观。
3、安全性。
- 通过PreparedStatement等接口,可以避免SQL注入等安全问题。
4、可扩展性。
- JDBC支持自定义类型和复杂类型的数据映射,使得Java程序可以处理更加复杂的数据结构。
<5>java.io包。
(Java的核心库java.io提供了全面的IO(输入/输出)接口,涵盖了从文件读取和写入到网络通信的各种功能)
(1)Java IO的基本概念。
- I/O是输入和输出的简写,指的是数据在计算机内部和外部设备之间的流动。
- 简单来说,当你从键盘输入数据、从鼠标选择操作,或者在屏幕上看到图像,这些都是I/O操作。它就像是计算机与外部世界沟通的桥梁,没有I/O,计算机就不知道如何接收和发送信息。
- Java IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
- 在Java中,流是一个抽象的概念。当程序需要读取数据的时候,就会开启一个通向数据源的流;当程序需要写入数据的时候,就会开启一个通向目的地的流。
(2)Java IO的分类。
1、基于字节操作的I/O接口。
- 包括InputStream和OutputStream。InputStream用于从数据源读取字节数据,OutputStream用于向数据目标写入字节数据。
2、基于字符操作的I/O接口。
- 包括Reader和Writer。Reader用于从数据源读取字符数据,Writer用于向数据目标写入字符数据。
3、基于磁盘操作的I/O接口。
- 主要是File类,用于操作文件和目录,如创建、删除、重命名文件等。
4、缓冲流。
(如BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter等)
- 用于提高读写效率;
5、序列化流。
(如ObjectInputStream、ObjectOutputStream等)
- 用于对象的序列化和反序列化
6、数据流。
(如DataInputStream、DataOutputStream等)
- 用于以与机器无关的方式读取和写入基本Java数据类型。
(3)Java IO的常用类和方法。
1、File类。
- 用于表示文件和目录路径名的抽象表示形式。
- 常用方法有exists()、createNewFile()、delete()、isDirectory()等等。
2、InputStream和OutputStream类。
- 这两个类是字节流的基类。
- InputStream的常用方法有read()、close()等;
- OutputStream的常用方法有write()、flush()、close()等。
3、Reader和Writer类。
- 这两个类是字符流的基类。
- Reader的常用方法有read()、close()等;
- Writer的常用方法有write()、flush()、close()等。
4、缓冲流类。
- 如BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter等,通过内部缓冲区提高了读写效率。
5、序列化流类。
- 如ObjectInputStream、ObjectOutputStream等,用于对象的序列化和反序列化操作。
(4)Java IO的异常处理。
- 在IO操作中,异常处理非常重要。常见的IO异常有IOException,它是所有IO异常的基类。
- 在进行IO操作时,通常需要使用try-catch语句来捕获和处理可能的异常。
(5)Java IO的编码与解码。
- 在字符流操作中,涉及到编码和解码的过程。
- 编码是将字符转换为字节的过程,解码是将字节转换为字符的过程。
- Java提供了InputStreamReader和OutputStreamWriter类来实现字符流和字节流之间的转换。这两个类分别用于将字节输入流转换为字符输入流和将字符输出流转换为字节输出流。在转换过程中,需要指定字符编码(如UTF-8、GBK等),以确保字符的正确转换。
(6)Java IO的性能优化。
1、使用缓冲流。
- 缓冲流通过内部缓冲区提高了读写效率,减少了实际I/O操作的次数。
2、选择合适的字符编码。
- 在字符流操作中,选择合适的字符编码可以减少编码和解码过程中的性能损耗。
3、关闭流资源。
- 在完成IO操作后,应及时关闭流资源以释放系统资源。可以使用try-with-resources语句来自动关闭流资源。
(7)try-with-resources语句。
1、基本介绍。
try-with-resources
语句是 Java 7 引入的一个特性,它简化了资源管理。- 特别是那些实现了
AutoCloseable
接口(或其子接口Closeable
)的资源。如文件、数据库连接等。这些资源在try
语句执行完毕后会自动关闭,无需显式地在finally
块中关闭!!!
2、基本语法结构。
(简写:try(...){...}catch(...){...} 注意括号!!)
try (声明并初始化一个或多个资源) { // 使用资源的代码 } catch (异常类型 变量名) { // 处理异常的代码 }
3、补充说明。
- 这里的资源是指在括号中声明的、实现了
AutoCloseable
接口的对象。- 当
try
块执行完毕后,无论是正常结束还是由于异常而结束,这些资源都会被自动关闭。关闭操作是通过调用资源的close()
方法来实现的。
- 虽然
try-with-resources
语句提供了自动关闭资源的功能,但它并不能处理所有类型的资源。只有那些实现了AutoCloseable
接口的资源才能被自动关闭。- 对于其他类型的资源,我们仍然需要在
finally
块中手动关闭它们。
- 此外,
try-with-resources
语句中的资源声明必须是局部的。它们必须在try
语句的括号中声明并初始化,而不能是已经存在的变量。"()"中声明初始化。- 这是为了确保资源在
try
块执行完毕后能够被正确地关闭。
相关文章:

牛客网刷题(3)(Java的几种常用包)
目录 一、牛客网案例题目。 二、Java常用包的总结。 <1>JAVA常用包(图片)。 <2>java.lang包。 <3>java.util包。 (1)集合框架。 1、Collection接口。 2、List接口。 3、Set接口。 4、Queue接口。 5、Map接口。 …...

PyTorch nn.Conv2d 空洞卷积
torch.nn.Conv2d() 中 dilation 参数控制卷积核的间隔 dilation controls the spacing between the kernel points 当 dilation1 时, 表示卷积核没有额外的空白间距, 也就是标准卷积当 dilation>1 时, 表示空洞卷积(dilated convolution) 动画演示: 手动计算 以 2*2 的卷…...

像素、分辨率、PPI(像素密度)、帧率的概念
文章目录 前言一、像素1、定义2、像素点也不是越多越好 二、分辨率1、定义 三、PPI(像素密度)1、定义2、计算公式3、视网膜屏幕 四、帧率1、帧 (Frame)2、帧数 (Frames)3、帧率 (Frame Rate)4、FPS (Frames Per Second)5、赫兹 五、其他1、英寸2、为何显示器尺寸以英寸命名 总结…...
两步GMM计算权重矩阵
在广义矩方法(GMM)中,权重矩阵(W)的选择是关键的一步。理想情况下,(W)应该等于矩条件的协方差矩阵的逆矩阵。这是因为使用这样的权重矩阵可以使得估计量达到最小方差,从而提高估计效率。 两步GMM计算权重矩阵(W) 第一…...

leetcode452. 用最少数量的箭引爆气球
有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。 一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 x 处射出一…...

【Android】使用TextView实现按钮开关代替Switch开关
介绍 Android 本身自己带的有开关控件,但是很多时候我们是不愿意使用这种开关的,感觉使用起来比较麻烦,特别是遇到需要延迟操作的情况。 比如有一个需求是这样的:我们需要打开一个设置,但是这个设置是否打开需要经过…...

(49)MATLAB实现迫零均衡器原理与代码
文章目录 前言一、迫零均衡器设计说明二、迫零均衡器MATLAB源代码1.函数说明2.代码实现3.辅助函数 前言 使用MATLAB实现迫零均衡器。给出完整的MATLAB设计源代码。 一、迫零均衡器设计说明 理想的迫零均衡器有无限多个抽头权系数,是不能实现的,本文考虑…...

滚柱导轨出现异常损坏的原因
滚柱导轨是一种精密的直线滚动导轨,具有较高的承载能力和较高的刚性,对反复动作、起动、停止往复运动频率较高情况下可减少整机重量和传动机构及动力成本。滚柱导轨可获得较高的灵敏度和高性能的平面直线运动,在重载或变载的情况下࿰…...
架构师考试系列(6)论文专题:论分布式架构设计
论分布式架构设计 摘要: 2020年2月,我司中标了某省电力公司的配网运维管控项目,该项目接入电力公司营销、设备和调度等多个部门的专业数据,为配网运行、配网检修、配网抢修、配网工程、供电服务等核心业务提供数据支撑。由于本项目是省级项目,系统可靠性、可用性要求比较…...
leetcode hot100【LeetCode 230. 二叉搜索树中第K小的元素】java实现
LeetCode 230. 二叉搜索树中第K小的元素 题目描述 给定一个二叉搜索树的根节点 root,和一个整数 k,请你找出其中第 k 小的节点。 注意: 题目保证 k 的有效性。 示例: 给定二叉搜索树: 5/ \3 7/ \ \ 2 4 …...

从0开始深度学习(23)——图像卷积
上节了解了卷积层的原理,本节以图像为例,介绍一下它的实际应用 1 互相关运算 严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cross-correlation)。 首先,我们暂时忽略通…...
编程小白如何成为大神
成为编程大神的过程需要时间、耐心和实践。以下是一些适合大学新生的入门攻略: 1. 确定学习目标 选择语言:选择一门编程语言作为起点,如 Python、Java 或 JavaScript。Python 是初学者的热门选择,因为其语法简洁易懂。设定目标&…...

JetCache启动循环依赖分析
问题呈现 项目性能优化,需要将本地内存(JVM内存)替换为本地Redis(同一个Pod中的Container),降低JVM内存和GC的压力,同时引入了JetCache简化和统一使用(对JetCache也做了扩展&#x…...

【科研绘图】3DMAX管状图表生成插件TubeChart使用方法
3DMAX管状图表生成插件TubeChart,一款用于制作3D管状图表的工具。可以自定义切片的数量以及随机或指定切片颜色。 【版本要求】 3dMax 2008及更高版本 【安装方法】 TubeChart插件无需安装,使用时直接拖动插件脚本文件到3dMax视口中打开即可࿰…...

基于SSM土家风景文化管理系统的设计
管理员账户功能包括:系统首页,个人中心,用户管理,景点分类管理,热门景点管理,门票订单管理,旅游线路管理,系统管理 前提账号功能包括:系统首页,个人中心&…...
C++超强图片预览器
下载 文件打开关联 关键代码 uint32_t getSrcPx3(const cv::Mat& srcImg, int srcX, int srcY, int mainX, int mainY) const {cv::Vec3b srcPx = srcImg.at<cv::Vec3b>(srcY, srcX);intUnion ret = 255;if (curPar.zoomCur < curPar.ZOOM_BASE && src…...

网络搜索引擎Shodan(2)
声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章 声明:本文主要用作技术分享,所有内容仅供参考。任何使用或依赖于本文信息所造成的法律后果均与本人无关。请读者自行判断风险,并遵循相关法律法规。 感谢泷…...
【Tableau】
Tableau 是一款强大且广泛使用的数据可视化和商业智能(BI)工具,用于帮助用户分析、探索和呈现数据。它通过直观的拖放界面,允许用户轻松创建动态仪表板和报告,而无需编写代码。Tableau 可处理多种数据源,如…...

分类与有序回归
分类问题 分类问题,例如分类猫、狗、猪时,使用数字进行表示为1,2,3。而1、2、3之间有大小,分类算法为了平衡标签之间的差异,使得损失公平,会使用one-hot编码。例如,分别使用&#x…...

Mac如何实现高效且干净的卸载应用程序
使用Mac卸载应用程序,你还在使用废纸篓这个办法吗,看不见卸载了什么,看不见清理了多少,真的不会有残留吗 XApp Mac上的卸载专家,强大的垃圾逻辑检测,垃圾扫描更全面,卸载更干净 使用简单&#…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...

【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...