- 博客(53)
- 资源 (1)
- 收藏
- 关注
原创 JDK11新特性【附源码】
JDK 11作为Java的长期支持版本,在语言特性和API方面进行了多项增强。主要包括:允许Lambda参数使用var声明并支持注解;新增字符串处理实用方法如isBlank()、lines()等;标准化HttpClient支持HTTP/2;简化文件读写操作;引入Optional.isEmpty()等新方法。同时新增了ZGC和Epsilon垃圾收集器,并将飞行记录器转为免费功能。这些改进提升了开发效率,优化了性能表现,为Java开发者提供了更现代化的工具支持。代码示例展示了var在Lambda中的使用、字符串
2025-10-13 17:05:37
424
原创 JDK8新特性【附源码】
摘要: JDK 8 是 Java 的重大更新,引入多项革命性特性:Lambda 表达式简化函数式编程,Stream API 提供高效集合操作,接口支持默认/静态方法增强扩展性。Optional 类优雅处理空值,全新的 java.time 包解决日期线程安全问题。其他改进包括方法引用、并行数组、Base64 内置支持等。这些特性显著提升代码简洁性(如 Lambda 替代匿名类)和开发效率(如 Stream 链式处理数据),使 Java 更适应现代编程需求。示例代码展示了核心特性的典型用法,体现 JDK 8 对
2025-10-13 11:44:15
369
原创 10.什么是聚簇索引,什么是非聚簇索引?【面试题】
本文详细对比了数据库中的聚簇索引和非聚簇索引。聚簇索引将数据和索引存储在一起,索引叶子节点直接包含完整数据,一张表只能有一个聚簇索引(通常是主键),数据物理顺序与索引一致,适合主键和范围查询。非聚簇索引则将索引与数据分离存储,叶子节点只保存数据位置信息,支持创建多个,查询时需要回表操作。在InnoDB中,主键索引是聚簇索引,其他索引是非聚簇索引,合理设计索引结构能显著提升查询性能。
2025-09-22 17:35:48
458
原创 9.B树和B+树的区别【面试题】
B树和B+树的核心区别在于:B树所有节点都存储键值和数据,而B+树仅叶子节点存储完整数据,非叶子节点只存索引。B+树通过叶子节点的双向链表支持高效范围查询,且树高更低、IO次数更少。这使得B+树更适合数据库索引场景,尤其擅长磁盘存储和范围查询。相比之下,B树虽然在单值查询上可能更快,但在大数据量和复杂查询中表现不如B+树。
2025-09-22 17:21:42
941
原创 8.MySQL索引类型有哪些?【面试题】
MySQL索引类型与设计原则摘要 MySQL索引按功能分为主键索引(唯一标识行)、普通索引(加速查询)、唯一索引(保证唯一性)、联合索引(多字段优化)和全文索引(文本搜索)。按物理存储分为聚簇索引(数据与索引绑定)和非聚簇索引(分离存储)。底层结构包括B+树(主流)、哈希(等值查询)和空间索引(地理数据)。设计原则:必选主键,根据查询场景选择其他索引,联合索引注意最左前缀,全文索引替代LIKE模糊查询。避免过度创建索引以平衡读写性能。
2025-09-22 16:54:54
511
原创 7.MySQL中哈希索引和B+树索引的区别【面试题】
MySQL索引类型对比:哈希索引与B+树索引 哈希索引和B+树索引是两种不同的索引结构,各有其特点和应用场景。哈希索引适合精确等值查询,但不支持范围查询、排序和模糊查询;B+树索引则功能全面,支持各种查询类型,且查询性能稳定。从底层结构看,哈希索引基于哈希表实现,查找效率在理想情况下可达O(1),但存在哈希冲突风险;B+树采用平衡多路查找树结构,查找效率稳定在O(log n)。实际应用中,99%的场景应优先选择B+树索引,它能够满足绝大多数业务需求,而哈希索引仅适用于特定场景且不可手动创建。
2025-09-22 16:33:37
713
原创 6.MySQL索引的数据结构【面试题】
MySQL索引性能由底层数据结构决定,核心是B+树,适用于大多数场景(主键、普通索引等),支持范围查询和排序。InnoDB与MyISAM的B+树差异在于聚簇与非聚簇索引。哈希索引适用于等值查询但局限明显;R树专用于空间数据;全文索引基于倒排索引,适合文本搜索。关键结论:优先使用B+树索引,避免滥用特殊索引,根据查询条件选择合适结构。B+树在范围查询和排序中表现优异,而哈希索引仅适用于精确匹配。
2025-09-22 15:40:08
1058
原创 5.索引是什么,有什么优缺点【面试题】
MySQL索引通过B+树等数据结构加速查询,类似书籍目录,能显著提升查询、排序和表关联效率。但索引会占用额外存储空间,降低写入性能,并增加维护成本。合理使用索引需权衡“空间换时间”,针对高频查询字段创建,避免滥用,建议单表索引不超过5~8个。正确设计索引是数据库性能优化的关键,而过度索引可能适得其反。
2025-09-22 14:38:58
395
原创 4.MYSQL数据类型有哪些【面试题】
MySQL数据类型主要分为数值型、字符串型、日期时间型、枚举与集合类型等。数值型包括整数类型(TINYINT、INT等)和浮点/定点数(FLOAT、DECIMAL等);字符串型分为定长(CHAR)、变长(VARCHAR)和长文本(TEXT);日期时间型有DATE、DATETIME等;枚举(ENUM)和集合(SET)适合有限选项场景。选择原则包括最小够用、明确精度、业务匹配和查询效率优先,如金额用DECIMAL、手机号用CHAR(11)等。
2025-09-22 14:25:16
975
原创 3.数据库的三大范式【面试题】
数据库范式是设计关系型数据库的重要理论,主要包括三大范式:1NF要求字段原子性(不可再分);2NF在1NF基础上消除非主键字段对主键的部分依赖;3NF在2NF基础上消除传递依赖。范式之间存在递进关系,满足高范式必须先满足低范式。实际应用中通常在规范化和性能之间权衡,主流实践满足3NF即可,既能减少冗余又兼顾性能。过度规范化可能导致表过多、查询效率降低,因此有时会采用反范式设计来优化性能。
2025-09-22 14:05:32
719
原创 2.MySql常用的存储引擎有什么?他们有什么区别
摘要:MySQL常用存储引擎InnoDB和MyISAM的核心区别在于:InnoDB支持事务、行级锁、外键和聚簇索引,适合高并发读写场景;MyISAM采用表级锁,不支持事务和外键,但查询性能较好,适用于读多写少的场景。InnoDB通过事务日志保证数据安全,而MyISAM存储效率更高。
2025-09-22 11:46:14
416
原创 1.什么是MySQL?
MySQL是一款高性价比、易用的开源关系型数据库,被广泛采用的关键在于:开源免费降低成本,跨平台兼容主流系统,轻量高效适合中小数据场景,支持多存储引擎(如事务型InnoDB和高速读MyISAM),SQL语法易学生态完善,且具备主从复制、分库分表等扩展能力,能灵活应对业务增长需求。
2025-09-22 11:29:41
275
原创 正则表达式【阿里版】
摘要: 正则表达式核心规则包括字符匹配(普通字符与元字符)、量词控制重复次数、位置匹配、分组捕获及断言等。常用元字符如.、*、+、?等实现灵活匹配,预定义字符类(如\d、\w)简化书写。分组支持捕获或非捕获,而断言(如(?=pattern))用于复杂验证。修饰符(如i、g)调整匹配行为。典型应用场景包括手机号(^1[3-9]\d{9}$)、邮箱验证等,需结合^$确保完整匹配。
2025-09-19 16:54:45
852
原创 Java25发布【附下载链接】
JDK 25作为最新LTS版本,带来8个核心特性提升开发效率与性能:1)Scoped Values替代ThreadLocal解决线程安全问题;2)简化入门门槛的紧凑源文件和实例主方法;3)Compact Object Headers减少25%内存占用;4)分代Shenandoah GC降低30%停顿时间;5)模式匹配支持基本类型提升代码效率;6)模块导入声明简化依赖管理;7)灵活的构造函数体增强初始化逻辑;8)Vector API提供高性能向量计算能力。其中5项特性已正式转正,3项处于预览/孵化阶段。开发者
2025-09-17 10:38:43
1179
原创 关于MYSQL中ID自动生成问题
MyBatis-Plus提供了多种ID生成策略:数据库自增(AUTO)、雪花算法(默认的ASSIGN_ID)、UUID(ASSIGN_UUID)、手动输入(INPUT)等。数据库自增适合单机应用,雪花算法适合分布式系统生成19位长整型ID,UUID则生成32位字符串ID。可通过@TableId注解或在全局配置中设置策略。选择策略需根据应用场景:单机推荐AUTO,分布式推荐ASSIGN_ID,字符串ID需求可选ASSIGN_UUID。示例代码展示了不同策略的配置方式。
2025-07-30 10:11:14
443
原创 面试题:谈谈你对覆盖索引的理解
覆盖索引(Covering Index)是指,使得数据库引擎无需访问实际数据行即可完成查询。这种技术通过减少磁盘I/O和避免回表操作来提升查询性能:ml-citation{ref=“1,5” data=“citationList”}。
2025-04-16 15:49:26
627
原创 面试题:Eureka和Nocas的区别
选择Nacos:适用于需要高一致性、动态配置管理或复杂企业级场景(如金融、电商):ml-citation{ref=“3,5” data=“citationList”}。保留Eureka:适用于轻量级Spring Cloud项目或历史遗留系统:ml-citation{ref=“1,3” data=“citationList”}。
2025-04-15 20:18:21
809
原创 面试题:商城支付如何实现,订单编号是如何生成的,如何确保用户不会重复下单!!
:采用表示层(处理用户请求)、业务逻辑层(支付状态管理、金额校验)、数据访问层(订单数据持久化)的三层架构,提升代码可维护性。:用户下单 → 生成待支付订单 → 调用第三方支付接口(如支付宝/微信) → 处理支付回调 → 更新订单状态为“已支付”。通过支付网关(如支付宝开放平台、微信支付API)完成交易,需配置商户密钥、回调地址,并使用SDK封装支付请求。以上方案可结合具体业务需求调整,例如金融级系统需增加风控模块(如黑名单校验、交易限额)。电脑 | $1600。
2025-04-15 20:01:17
393
原创 Java基础语法
true、false、null 严格说不应该算关键字,应称其为保留字更合适。4.Java的八种基本类型:(按字节来分)Java中默认的整数类型是int,如果要定义为long ,则要在数值后加上L或者l默认的浮点型是双精度浮点,如果要定义float,则要在数值后面加上f或者F一个字节等于8位,1个字节等于256个数。2^8一个英文字母或者阿拉伯数字占一个字节一个汉字占2个字节...
2022-06-25 08:37:27
237
原创 HTML知识查漏
2.CSS Sprites图片整合技术的优点有:float 可以取值:3.设置框架显示滚动条4.盒子模型之间的关系有5.Css基本布局有:6.水平导航菜单分为两种风格7.CSS视觉滤镜特效中模糊效果关键字是9.HTML的CSS样式表示方式有三种:...
2022-06-13 16:59:31
298
原创 HTML简单介绍
本章目录:一、软件分类二、软件组成三、服务器开发语言四、网页中使用的语言五、开发的两种方式一、软件分类系统软件应用软件游戏软件二、软件组成客户端:用户通过客户端使用软件[ 文字客户端、图形化界面、网页(B/S架构)]服务端:服务器负责在远程处理业务逻辑三、服务器开发语言JavaPHPC#PythonNode.js四、网页中使用的语言HTML (标记语言)、CSS、JavaScript五、开发的两种方式C/S(客户端和服务器端)B/S(
2022-05-20 09:39:15
527
原创 double占几个字节?
8个。double是C语言的双精度浮点类型,对于其占字节数,C语言规范中,并没有明确规定其所占空间,只是要求double类型的整数部分的最小表示范围为1.0E-37到 1.0E+37,小数部分至少要能精确到小数点后10位。所以在实现中,各类编译器均采用8字节空间实现double。...
2021-09-16 10:39:07
4702
原创 numpy-python实例
Numpy库各种实例import numpy as np#第一个print('------------------------------')arr0 = np.array([1, 2, 3, 4]) #通过列表创建一维数组print(arr0)#第二个print('------------------------------')arr1 = np.array([[1, 2], [3, 4]]) #通过列表穿件二维数组print(arr1)#第三个print('-------
2021-03-09 19:29:29
240
原创 007Python-Scrapy爬虫框架
一、Scrapy爬虫框架介绍Scrapy是一个快速功能强大的网络爬虫框架Scrapy 不是一个函数功能库,而是一个爬虫框架爬虫框架是实现爬虫功能的一个软件结构和功能组合集合。爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。二、Scrapy爬虫框架解析1、Scrapy爬虫框架结构Engine:1.控制所有模块之间的数据流2.根据条件触发事件不需要用户修改Downloader:1.根据请求下载网页不需要用户修改Scheduler:1.对所有爬虫请求进行调度管理
2021-03-06 16:55:14
327
原创 006Python-Re库入门(正则表达式)
一、正则表达式的概念:正则表达式是用简洁表达一组字符串的表达式。正则表达式是一种通用的字符串表达式。最主要英语在字符串匹配中二、正则表达式的语法:1.正则表达式的常用操作符操作符说明实例.表示任何单个字符[ ]字符集,对单个字符给出取值范围[abc]表示a、b、c,[a-z]表示a到z单个字符[^ ]非字符集,对单个字符给出排除范围[^abc]表示非a或b或c的单个字符*前一个字符0次或无限次扩展abc* 表示 ab,abc,abc
2021-03-06 15:20:49
382
4
原创 005Python-信息标记与提取方法
一、 信息标记的三种形式:XML <img src = “china.jpg” size = ‘10’/>空元素的缩写形式 <name/><!- -This is a comment, very useful -->JSON有类型的键值对 key:value,key需要加""当value有多组的时候,用[,]组织键值对嵌套用{ , }无类型的键值对key:value,key只能是字符串,不需要加" "YAML缩进表
2021-03-05 18:17:04
190
原创 002Python-Robot协议
Robots Exclusion Standard作用:网站告知网络爬虫哪些页面可以爬取,哪些不行形式:在网站目录下的robots.txt案例:百度RobotsqqRobots网络爬虫,盗亦有道
2021-03-05 17:25:56
198
原创 001Python-Requests库
Requests库的使用1、Requests库的7个主要方法方法说明requests.request()构造一个请求,支持一下各方法的基础方法requests.get()获取HTML网页的主要方法,对应于HTTP的GETrequests.head()获取HTML网页头信息的方法,对应于HTTP的HEADrequests.post()向HTML网页提交POST请求的方法,对应于HTTP的POSTrequests.put()向HTML网页提交PUT请求的
2021-03-04 22:25:18
237
1
原创 004Python -Beautiful Soup库入门
Beautiful Soup 库的基本元素1、Beautiful Soup库的理解:beautiful Soup库是解析、遍历、维护“标签树”的功能库2、 引用方式:from bs4 import BeautifulSoupimport bs4注释:Beautiful Soup 库,也叫beautifulsoup4或bs43、Beautiful Soup库解析器soup = BeautifulSoup(’<html>data<html>’,‘html.pars
2021-03-04 21:04:17
293
3
原创 Python中使用函数和不使用函数的区别
Python中为什么要使用函数?实现代码的重用性易于维护封装性(保密)如果不使用函数会有哪些弊端?复杂度增大组织结构不清晰,代码可读性差代码冗余,可扩展性差
2020-10-22 10:11:04
558
原创 push使用方法
push的使用:push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。例如:a.push(0x99);push() 方法可把它的参数顺序添加到 a 的尾部。它直接修改a ,而不是创建一个新的数组。push() 方法使用数组提供的先进后出栈的功能。...
2020-07-08 11:06:53
15595
学校管理系统数据库(毕设、大作业、大创必备)
2022-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人