自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(178)
  • 收藏
  • 关注

原创 【面经总结】Java集合 - Map

链表查询复杂度取决于链表长度,为 O(n)。为了降低开销,Java8 中当容量达到 64,且元素达到 8 个时会转为红黑树,降低复杂度为 O(logN)Java7 使用 Entry 表示数据节点,Java8 使用 Node 和 TreeNode。优点:能使用32位计算哈希,避免因为高位没有参与下标的计算而碰撞。计算 hash 方式:高16位不变,低16位和高16位做异或。在 HashMap 的基础上,维护一个双向链表,实现插入顺序。实现机制:**数组 + 链表,**通过链表解决哈希冲突。

2024-06-15 20:45:26 546 1

原创 【面经总结】Java集合 - List

/ 类定义// 类定义 public class ArrayList < E > extends AbstractList < E > implements List < E > , RandomAccess , Cloneable , java . io . Serializable。

2024-06-15 20:43:16 950

原创 【面经总结】Java基础 - SPI

提供给服务提供者去使用的一个接口。

2024-06-14 10:39:51 311

原创 【面经总结】Java基础 - 反射

在运⾏时获得类的信息,创建类的对象,调⽤其中的⽅法和属性。

2024-06-14 10:38:28 277

原创 【面经总结】Java基础 - Java8 新特性

用于函数式编程,替代匿名内部类来实现函数式接口。

2024-06-13 10:24:13 815

原创 【面经总结】Java基础 - IO

序列化:将对象转换为二进制数据反序列化:将二进制数据转换为对象。

2024-06-13 10:22:36 279

原创 【面经总结】Java基础 - 注解

创建注解创建注解处理器Class<?// 确保可以访问私有字段测试并使用@NotNulltry {try {

2024-06-12 08:04:47 173

原创 【面经总结】Java基础 - 常见类

equals() 方法比较对象的内容,但默认情况下与 == 的行为相同(比较引用)。可以覆盖 equals() 方法以便在内容上进行比较,例如 String、Integer、Double 等。equals 方法和 hashCode 方法应该具有一致性吗,从而保证哈希表等数据结构的正确性和一致性。为对象生成一个整数哈希值,该值可以用于哈希表等数据结构中快速查找和比较对象。浅拷贝实现方式:clone 方法默认实现就是浅拷贝。深拷贝:复制并创建了一个新对象。浅拷贝:复制了对象引用。

2024-06-12 08:03:13 745

原创 【面经总结】 Java基础 - 异常

继承 Exception 类。super(msg);

2024-06-11 10:09:13 496

原创 【面经总结】Java基础 - 数据类型

深入理解 Java 基本数据类型

2024-06-11 10:07:07 413

原创 【面经总结】Java基础 - 语言特性

形参:方法定义的参数实参:调用方法实际传入的参数。

2024-06-10 10:44:19 419

原创 【面经总结】Java基础 - 面向对象

以对象为核心。类是对象创建的模板,对象是类的实例。内部类的主要作用是可以访问外部类的私有成员。匿名内部类是只有类体没有类名的类,通常用于创建只需要使用一次的类的实例。可以简化代码书写,不需要单独定义一个实体类。

2024-06-10 10:40:26 839

原创 【MySQL】锁

全局锁:对整个数据库实例加锁,加锁后整个实例就处于只读状态,其他语句都将被阻塞。使用场景是:全库的逻辑备份语法:1、加全局锁2、数据备份3、释放锁。

2024-05-11 21:52:47 1156

原创 【MySQL】索引

索引在引擎层实现索引结构描述B+Tree索引最常见的索引类型,大部分引擎都支持B+树索引Hash索引底层数据结构是用哈希表实现的,只有精确匹配索引列的查询才有效,不支持范围查询R-tree(空间索引)空间索引是MyISAM引擎的一个特殊索引类型,主要用于地理空间数据类型,通常使用较少Full-text(全文索引)通过建立倒排索引,快速匹配文档的方式。类似于Lucene, Solr, ES索引InnoDBMyISAMMemoryB+tree索引支持支持支持Hash索引不支持。

2024-05-11 16:05:06 740

原创 MySQL存储引擎详解

不同的引擎有不同的应用场景存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。默认:InnoDB查询建表语句查看数据库支持的存储引擎memoryMyISAMInnoDB创建表并指定 MyISAM 存储引擎id int,InnoDB是一种兼顾高可靠性和高性能的通用存储引擎。DML(数据增删改查)操作遵循ACID模型,支持事务行级锁,提高并发访问性能支持外键。

2024-05-10 16:55:48 453

原创 缓存同步策略:Canal

Canal就是把自己伪装成MySQL的一个slave节点,从而监听master的binary log变化。再把得到的变化信息通知给Canal的客户端,进而完成对其它数据库的同步。Canal是基于mysql的主从同步来实现的。Canal提供了各种语言的客户端,当Canal监听到binlog变化时,会通知Canal的客户端。接下来添加一个仅用于数据同步的账户,出于安全考虑,这里仅提供对heima这个库的操作权限。Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主从功能才可以。

2024-05-09 21:33:17 362

原创 Redis + OpenResty 多级缓存

在实际开发中,我们可以利用大数据统计用户访问的热点数据,在项目启动时将这些热点数据提前查询并保存到Redis中。nginx的默认配置文件注释太多,影响后续我们的编辑,这里将nginx.conf中的注释部分删除,保留有效部分。1、在nginx.conf的http下面,添加对OpenResty的Lua模块的加载。2、在nginx.conf的server下面,添加对/api/item这个路径的监听。NGINX_HOME:后面是OpenResty安装目录下的nginx的目录。

2024-05-09 21:32:45 1467

原创 Lua语法入门

Lua声明变量的时候,并不需要指定数据类型。数组、table都可以利用for循环来遍历。函数测试给定变量或者值的类型。

2024-05-08 09:07:20 587

原创 JVM进程缓存 Caffeine

Caffeine是一个基于Java8开发的,提供了近乎最佳命中率的高性能的本地缓存库。

2024-05-08 09:06:46 243

原创 【Redis分布式缓存】分片集群

分片集群需要的节点数量较多,这里我们搭建一个最小的分片集群,包含3个master节点,每个master包含一个slave节点,结构如下:这里我们会在同一台虚拟机中开启6个redis实例,模拟分片集群,信息如下:删除之前的7001、7002、7003这几个目录,重新创建出7001、7002、7003、8001、8002、8003目录:在/tmp下准备一个新的redis.conf文件,内容如下:将这个文件拷贝到每个目录下:修改每个目录下的redis.conf,将其中的6379修改为与所在目录一致:启动

2024-05-07 08:55:03 729 1

原创 【Redis分布式缓存】 哨兵机制

Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。

2024-05-07 08:17:00 1177

原创 【Redis分布式缓存】主从集群

主从集群:提高并发能力,实现读写分离。

2024-05-06 17:42:05 705

原创 【Redis】RDB持久化和AOF 持久化

RDB (Redis Database Backup file):数据快照默认保存在运行目录# 主进程保存快照(阻塞) save # 子进程保存快照 bgsaveRedis 停机时会执行一次RDB。AOF (Append Only File):命令日志。

2024-05-06 17:15:42 684

原创 使用AIGC生成软件类图表

Mermaid 是一个基于 JavaScript 的图表工具,可渲染 Markdown 启发的文本定义以动态创建和修改图表。

2024-05-05 21:52:00 1160

原创 【题解】牛客挑战赛 71 - A 和的期望

【代码】【题解】牛客挑战赛 71 - A 和的期望。

2024-04-25 21:46:57 555

原创 鸿蒙HarmonyOS应用 - ArkUI组件

封装并导出组件@Componentbuild() {Row() {使用组件Header({ title: "分数列表" })自定义公共样式:封装通用样式(属性必须是公共属性// 定义// 调用。

2024-04-24 16:41:19 739

原创 鸿蒙HarmonyOS应用 - 开发开发准备

TypeScript.具备面向对象编程的基本语法,例如interface、class、enum等。应用复杂时,我们可以把通用功能抽取到单独的ts文件中,每个文件都是一个模块(module)。模块可以相互加载,提高代码复用性。ArkTS基于TS,支持声明式UI、状态管理等。传统前端开发,需要多个语言(HTML、CSS、JS)相互配合。对于环境安装出问题的情况,可以查看环境并重新安装。TS具有静态类型检查功能,每个变量都具有数据类型。等待一段时间的下载之后,选择Finish。下载最新版本,导入插件。

2024-04-24 16:40:06 702

原创 openapi-typescript-codegen:一键生成前端请求代码

openapi-typescript-codegen 是一个用于生成 TypeScript 代码的工具,它可以根据 OpenAPI 规范(以前称为 Swagger)自动生成客户端和服务器端代码。这个工具可以帮助开发人员快速地创建符合 API 规范的 TypeScript 代码,减少手动编写重复代码的工作量。通过使用 openapi-typescript-codegen,开发人员可以更容易地与 API 进行交互,并确保代码的一致性和准确性。

2024-04-20 11:20:34 613

原创 【NEUQ1007】C基础-计负均正

从键盘输入任意20个整型数,统计其中的负数个数并求所有正数的平均值。

2024-04-18 21:02:14 203

原创 Git代码提交规范

尽量保持提交频率较小,每个提交应该只包含一个逻辑上的更改或修复。

2024-04-18 20:49:57 382

原创 蓝桥杯备赛:考前注意事项

求 m^k mod p,时间复杂度 O(logk)。,再去想算法去优化时间/空间。📢 注意:加速命令后。

2024-04-12 10:17:10 562

原创 Redis实现好友关注 共同关注 关注推送

创建数据库表,保存关注信息。

2024-02-15 23:34:42 321

原创 【Redis】签到点赞和UV统计

UV统计在服务端做会比较麻烦,因为要判断该用户是否已经统计过了,需要将统计过的用户信息保存。Hyperloglog(HLL)是从Loglog算法派生的概率算法,用于确定非常大的集合的基数,而不需要存储其所有值。把每一个bit位对应当月的每一天,形成了映射关系。作为代价,其测量结果是概率性的,有小于0.81%的误差。Redis中的HLL是基于string结构实现的,单个HLL的内存。我们按月来统计用户签到信息,签到记录为1,未签到则记录为0。

2024-02-01 22:04:02 1033

原创 【Redis】实现缓存及相关问题

缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。缓存击穿问题也叫热点Key问题:一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。

2024-02-01 22:02:48 849

原创 【Redis】实现购物秒杀及分布式锁

分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。使用一个独立于JVM的锁监视器(分布式锁),让所有集群的JVM共享一个锁监视器,使得只有一个线程运行。Redisson是一个分布式操作 Redis 的 Java 客户端(分布式 Redis 数据网格),可以像在使用本地的集合一样操作 Redis。Redisson还提供了许多分布式服务,其中就包含了各种分布式锁的实现。Redisson 官网消息队列(Message Queue):存放消息的队列。

2024-01-31 13:03:31 895

原创 【深度学习】全连接神经网络

激活函数是非线性的函数(图像不是直线的)。非线性激活函数引入了非线性变换,使得神经网络可以逼近任意复杂的函数,从而更好地完成分类、回归和其他任务。增加神经网络的表达能力,使其能够学习和表示更加复杂的模式和关系。激活函数必须是非线性的,因为如果激活函数是线性的话,无论神经网络有多少层,整个网络都可以被简化为单层网络。a31kx;kc3和a11cxa_{11}=cxa11​cx都是线性回归。

2024-01-31 13:02:48 1435

原创 【深度学习】逻辑回归模型

对于样本不均衡数据(原始的数据中,正类和负类数量不一致),准确率ACC不能完全衡量模型好坏。线性回归模型的结果通过 sigmoid 函数映射到0-1的区间,通过阈值将其二分类。特征数据 x 中不同特征的物理量纲不同,模型依赖数值较大的特征。召回率有局限性:若全猜正类,FN(漏报)为0,召回率100%。召回率(查全率):在所有正类中,预测到的概率。比如及格为正类,不及格为负类。逻辑回归是利用回归的方法进行二分类。表示 sigmoid 函数。精确率:在正类中猜对的概率。F1值:精确率和召回率的均值。

2024-01-25 00:30:00 910

原创 【深度学习】线性回归模型与梯度下降法

fill:#333;color:#333;color:#333;fill:none;特征 x工资 y学历线性回归模型专业...损失函数:用于计算输出和真实值之间的误差lossfx−y2wx−y2线性回归的目标:寻找一组参数w、b,使损失函数最小。(预测结果接近真实数据)如何求w、b --> 枚举法求解:猜呗!慢慢猜w是多少!😅(不现实)

2024-01-24 00:42:18 1057

原创 【深度学习】初识深度学习

关系:fill:#333;color:#333;color:#333;fill:none;人工智能机器学习深度学习卷积神经网络深度学习和机器学习的关系:传统系统和深度学习的区别:#mermaid-svg-6SFwTtaXdRMgA9st {font-family:"trebuchet ms",verdana,arial,sans-serif;fill:#333;color:#333;color:#333;fill:none;规则 f(x)规则 f(x)数据 x数据 x答案 y答案 y。

2024-01-24 00:40:52 950

原创 【Redis】基于Token单点登录

fill:#333;color:#333;color:#333;fill:none;合法不合法beginend提交手机号手机号合法校验保存到Redis发送验证码。

2024-01-18 21:12:32 1676

JavaGUI期末作业-管家婆记账管理软件

JavaGUI期末作业-管家婆记账管理软件是一个基于Java图形用户界面(GUI)的记账管理软件。它提供了方便、直观的界面,帮助用户记录和管理个人或家庭的财务信息。该软件支持账目记录、分类统计、报表生成等功能,旨在帮助用户更好地管理和控制个人财务。 适用人群包括个人用户、家庭用户以及需要进行财务管理的小型组织。无论是个人理财、家庭预算规划还是小型组织的财务管理,该软件都能满足各种需求。 使用场景及目标包括但不限于: 1. 账目管理:用户可以记录各种收入和支出的账目,包括工资、房租、日常开销等,并进行分类和标记。 2. 统计分析:软件提供了分类统计功能,用户可以查看各类收入和支出的总额、占比等信息,帮助用户了解财务状况。 3. 报表生成:用户可以生成财务报表,如月度收支报表、年度预算报表等,以便更好地分析和规划财务。 该软件的目标是提供一个简单易用、功能完善的记账管理工具,帮助用户实现财务管理的自动化和便捷化。它具有用户友好的界面设计和操作流程,旨在提高用户的财务管理效率和准确性。

2023-09-30

C语言数据结构期末项目-学生管理系统

学生管理系统是一个基于C语言数据结构的期末项目,旨在帮助学生管理和组织学生信息。该系统可以记录学生的基本信息,如姓名、学号、年龄和成绩等,并提供相应的功能,如添加、删除、查询和修改学生信息。 学生管理系统适用于学习C语言数据结构的学生和对学生信息管理感兴趣的开发者。通过实现这个项目,学生可以加深对C语言数据结构的理解,并学习如何设计和实现一个简单的信息管理系统。 学生管理系统的使用场景包括但不限于: 1. 学生信息管理:学校、教育机构或班级可以使用该系统来管理学生的基本信息和成绩记录。 2. 学生项目作业:学生可以将学生管理系统作为一个实践项目,来应用所学的C语言数据结构知识,并完成期末作业。 3. 学习和练习:对于对数据结构和算法感兴趣的开发者,学生管理系统可以作为一个练习项目,帮助他们巩固和应用所学的知识。 学生管理系统的目标是提供一个简单而实用的学生信息管理工具,帮助用户轻松管理学生信息,实现基本的增删改查操作,并具备一定的数据结构设计和算法实现能力。

2023-09-30

DevCpp-C/C++语言编译开发工具

Dev-C++是一个集成开发环境(IDE),用于C和C++编程。它是一个免费开源的软件,提供了一套工具和功能,方便开发者编写、调试和编译C和C++程序。Dev-C++具有简单易用的界面和直观的功能,适合初学者和有经验的开发者使用。 Dev-C++适用于学生、教育机构、自学者和专业开发者等。无论是学习编程、进行算法实现还是开发小型项目,Dev-C++都可以满足各种需求。 Dev-C++的使用场景包括但不限于: 1. 学习编程:对于初学者而言,Dev-C++提供了一个友好的开发环境,帮助他们学习和理解C和C++编程的基础知识。 2. 算法实现:Dev-C++支持C和C++编程语言,适用于实现各种算法和数据结构,并进行调试和测试。 3. 小型项目开发:对于小型项目或原型开发,Dev-C++提供了一套完整的开发工具,包括代码编辑器、编译器和调试器等。 Dev-C++的目标是提供一个简单易用、功能完善的C和C++开发环境,帮助开发者提高编程效率和代码质量。它支持多个编译器,包括GNU GCC编译器和其他第三方编译器,以满足不同开发需求。

2023-09-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除