自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《代码深渊:一个程序员在Git仓库里发现了自己的死亡记录》—— 悬疑烧脑,细思极恐![特殊字符]

我抬头望向天台边缘的栏杆外,城市的灯火在夜色中闪烁,仿佛是另一个世界的召唤。我无奈地叹了口气,狠狠灌下最后一口冰美式,那苦涩中带着一丝甘甜的味道,似乎也无法驱散我心中的疲惫与困惑。由于项目的敏感性和重要性,仓库的权限被严格限制,除了我和张教授,无人能够访问。我浑身一颤,手中的烟掉落在地,火星在冰冷的地面上闪烁了几下,最终熄灭。这一刻,我仿佛站在了生与死的边缘,无法抉择,也无法逃避。电梯门缓缓打开,迎面而来的冷风让我打了个寒颤,但更让我心惊的是,手机在口袋里震动了起来。就在这时,我的手机再次震动起来。

2025-02-13 15:42:49 515

原创 详解Redis缓存穿透、缓存雪崩、缓存击穿:Java程序员高并发必杀技![特殊字符](文末附解决方案对比表和实战代码,建议收藏!)

作为Java程序员,Redis是你简历上的必备技能,但你真的能搞定缓存穿透、雪崩、击穿这三大“高并发杀手”吗?本文不仅教你原理,更给出可直接抄作业的Java代码方案,让你轻松应对大厂级高并发场景!:每秒10万请求直接击穿Redis,MySQL被打挂!:数据库瞬间QPS飙升到10万+,直接宕机!:自动续期锁时间,避免死锁(默认30秒续期):百万请求同时查询数据库,服务器直接冒烟!:双11零点,所有商品缓存同时过期。:微博热搜突然爆炸,但缓存刚好过期。(调整k和m,平衡内存与误判率)的数据(数据库根本不存在)

2025-02-13 11:35:16 637

原创 Spring Boot 3.0 重磅升级实战:性能飙升5倍的新特性,你跟上没?

Spring Boot 3.0 的升级不仅是技术迭代,更是架构思维的转变。GraalVM 原生镜像将彻底改变 Java 在云原生领域的地位,而 Jakarta EE 10 的全面支持则为微服务开发注入新活力。你的项目准备升级了吗?欢迎在评论区讨论遇到的坑!相关资源Spring Boot 3.0 官方迁移指南。

2025-02-11 15:28:00 909

原创 SpringBoot实战:手把手教你创建自定义注解

在SpringBoot开发中,注解(Annotation)是简化配置、提升开发效率的利器。通过自定义注解,我们可以实现业务逻辑与基础功能的解耦,让代码更加优雅。本文将带你从零开始创建自定义注解,并结合AOP实现日志记录功能。@Target(ElementType.METHOD) // 作用于方法@Retention(RetentionPolicy.RUNTIME) // 运行时生效// 模块名称// 操作类型// 操作描述通过自定义注解+AOP的组合,我们可以实现声明式的功能扩展。

2025-02-11 09:36:23 387

原创 为什么普通人无法本地部署DeepSeek?算力成本与模型规模的双重暴击

即便是当前性能最强的消费级显卡RTX 4090(24G显存),也需要至少28张才能满足需求。但在可见的未来,云端服务仍是平衡性能与成本的最优解。DeepSeek-R1模型的参数规模达到惊人的6710亿(671B),这直接宣告了个人设备的死刑。这种"阉割版"模型在实际应用中常出现逻辑混乱、事实错误等问题,在客服、编程等场景中错误率可达40%以上。这还不包括电力成本(A100集群月耗电超$2000)、散热系统和分布式训练框架的运维成本。(每个FP32参数4字节),即使采用混合精度训练也需要近700GB显存。

2025-02-10 17:21:16 737

原创 DeepSeek不再卡顿,从此告别服务器繁忙,实现DeepSeek自由

不过不用担心,我已经找到实现DeepSeek自由的小妙招了,不需要本地部署,你只需按照接下来的教程,只需简单几步就可以流畅的使用deepSeek了。新建API密钥,然后复制密钥就可以了(注意,这个密钥一定不要泄露给别人,不然账户里面的钱可能很快就没了。),咱两都能白嫖14块钱额度,高频使用2周到1个月都没问题(真的不是广告,就是分享这个好东西!安装好了之后,如图设置好提供方,API密钥,和模型就可以爽用DeepSeek了!这个东西只要接入的对应ai的密钥,就可以直接使用ai,very nice!

2025-02-10 14:48:05 637 4

原创 2024-2025年AI领域重大事件盘点:技术突破、应用落地与未来趋势

2024-2025年,AI技术从实验室走向大规模应用,生成式AI、多模态融合与具身智能成为核心驱动力。然而,技术突破也伴随伦理、隐私与能源消耗的挑战。未来,AI将不仅是工具,更是人类智慧的延伸,需在创新与治理中寻找平衡点,以实现“技术向善”的终极目标。参考资料AIBase 2024年大事件时间线腾讯科技2025 AI预测欧洲人工智能法案关注优快云 AI技术社区,获取更多深度解析!

2025-02-10 13:18:05 4071

原创 全面搞懂Java反射:核心原理、实战应用与设计模式

反射是Java高级编程的核心技术之一,在框架开发、动态代理、注解处理等场景中不可或缺。合理使用反射可以大幅提升代码的灵活性,但需谨慎处理性能和安全问题。结合设计模式的使用,能让反射技术发挥更大威力。学习建议:通过阅读Spring、MyBatis等开源框架源码,深入理解反射的实战应用。

2025-02-10 13:09:40 418

原创 Java开发日常工作中常见问题汇总:解决方案与优化建议

Java开发中遇到的问题和挑战无处不在。通过合理的代码优化、性能调优、线程管理、日志记录等实践,我们可以显著提升开发效率与代码质量。希望本文汇总的常见问题与解决方案能够帮助你在日常开发中少走弯路,编写更加高效、健壮的Java代码。

2025-02-08 17:29:03 956

原创 工智能时代,Java程序员如何保住饭碗?

人工智能时代的到来,是挑战也是机遇。夯实技术基础:成为Java领域的专家。拥抱新技术:学会与AI工具协同工作,提升工作效率。提升软技能:成为全能型人才,适应团队和项目管理的需求。技术永远是工具,而你是掌握工具的人。通过不断学习、不断创新,你一定能在人工智能时代找到属于自己的位置,保持自己的竞争力!这篇文章讨论了如何在AI时代继续保持竞争力,并给出了具体的行动建议。

2025-02-08 17:14:33 921

原创 如何学习前端开发:从入门到进阶的实用指南

前端开发主要涉及网页或应用程序的用户界面(UI)部分,它使得网站和应用能够展示给用户看,并且通过用户输入来与后端系统进行交互。:网页的结构。:网页的样式和布局。JavaScript:网页的行为和交互。

2025-02-08 16:57:16 1147

原创 如何高效学习算法:从基础到进阶的实用指南

在计算机科学领域,算法无疑是最核心的组成部分之一。无论你是准备进入互联网公司,还是参与技术面试,掌握扎实的算法知识都是必不可少的技能。很多人都曾对算法产生过困惑,觉得它抽象、枯燥,难以入门。但其实,算法不仅仅是程序员的必备工具,它的学习过程充满了挑战与乐趣,一旦掌握,你将能够在解决问题时游刃有余。那么,如何高效学习算法呢?本文将为你提供一条清晰的学习路径,从基础到进阶,逐步深入,让你成为算法高手。

2025-02-08 16:55:39 878

原创 如何高效学习人工智能:从入门到精通的完整指南

监督学习:使用带标签的数据进行训练,目标是学到数据中输入与输出的关系。常见算法有:线性回归、逻辑回归、支持向量机(SVM)、决策树、随机森林、KNN等。无监督学习:使用没有标签的数据进行训练,目标是从数据中找出潜在的规律或结构。常见算法有:K-means聚类、层次聚类、PCA(主成分分析)等。强化学习:通过与环境互动,学习如何采取行动以最大化长期奖励。应用在自动驾驶、游戏AI等领域。学习人工智能是一个长期且持续的过程,需要系统学习理论并进行大量实践。

2025-02-08 16:54:02 941

原创 全面了解DeepSeek:从技术架构到产业落地的深度解析

DeepSeek的技术演进正在重新定义AGI的可能性边界。随着v2系列模型的即将发布,其在多模态理解、具身智能等方向的突破值得期待。对于开发者而言,把握其技术特性并探索创新应用场景,将是参与这场AI革命的关键路径。

2025-02-08 16:25:26 1530

原创 后端开发必学的工具与框架:Spring, Spring Boot, Maven 完全入门指南

Spring 是目前 Java 后端开发中最常用的框架之一,它的核心理念是“简化 Java 开发”,通过依赖注入(DI)和面向切面编程(AOP)等技术,解耦了各个模块之间的关系。Spring 提供了非常丰富的生态系统,几乎可以满足后端开发的所有需求。学习Spring和Maven是每个后端开发者的必修课。通过深入理解这些工具和框架,你将能够更高效地开发和管理企业级应用。随着你对这些工具的掌握,你会发现后端开发变得更加轻松、灵活,并能够应对更复杂的项目需求。

2025-02-08 15:11:01 708

原创 从零到全栈:3年实战总结的全能开发者成长路线

全栈开发者的终极目标不是掌握所有技术,而是建立系统化的问题解决能力。建议每半年挑战一个综合性项目(如开发简易版钉钉),在实践中培养技术判断力。记住:技术栈会过时,但工程思维永不过时。

2025-02-08 15:06:10 932

原创 从Java初级到高级开发,我的三年进阶实战指南

成为高级开发没有捷径,但遵循"深度优先,广度扩展"的学习策略能事半功倍。建议每季度制定技术攻坚计划(如本月专攻JVM调优),同时保持参与开源项目或技术分享。记住:优秀的开发者不是靠年限堆砌,而是解决问题的能力决定的。

2025-02-08 09:15:58 761

原创 如何从Java开发进阶为架构师?5大核心能力+完整成长路径

成为架构师没有捷径,需要持续的技术深耕与项目锤炼。建议制定3年成长计划,每季度攻克一个技术难点。记住:优秀的架构都是迭代出来的,保持学习才能应对技术变革。

2025-02-08 09:08:20 1144

原创 公司代码全是Join到底行不行?

关于分解查询的自己的一点理解:如果数据量少的情况下连两三张表也没什么大的影响,在大数据量的情况下,连接查询会加快性能的消耗,增加数据库的压力,这个时候时牺牲网络IO多次查询来减轻数据库的压力,将原本数据库的压力转移到服务器上。MYSQL是使用了嵌套循环(Neted-Loop Join)的方式来实现关联查询的,就是要通过两层循环,用第一张表做外循环,第二张表做内循环,外循环的每一条记录跟内循环中的记录作比较,符合条件的就输出。数据库需要在执行查询时处理更多的行和列,这可能导致更高的I/O操作和内存使用。

2024-12-25 15:44:05 285

原创 SQL优化心得

除了ORDE BY 显示的排序,数据库内部还有很多运算在暗中进行排序,例如:GROUP BY,ORDER BY, 聚合函数(SUM, COUNT, AVG, MAX, MIN), DISTINCT, 集合运算符(UNION,INTERSECT,EXCEPT),窗口函数(RANK,ROW_NUMBEF,等)SQL中有UNION,INTERSECT,EXCEPT,三个集合运算符,分别代表这集合运算的并集,交集,差集,默认情况下,这些运算符会为了排除掉重复数据而进行排序。如果只在内存中进行排序,那么还好;

2024-12-25 14:12:18 845

原创 如何通过BinLog日志恢复被删除的数据

一次惨痛的经历,实习期间不小心删除了生产上的角色菜单,通过备份紧急恢复了部分数据,但是还是漏了很多,最后导致客户使用的时候权限出现了问题。优点:方便,不需要生成逆向操作,直接执行sql脚本重新插入数据即可,对binlog的模式没有限制,row模式,statement模式都能找到具体的数据。如果被删除的数据比较多,插入的位置比较多,找到插入的位置比较困难。,才能找到被删除的数据,否则,statement模式不会找到具体的数据。优点:只要找到数据被删除的位置,即可找到所有被删除的数据,比较方便。

2024-12-24 14:31:57 1469

原创 【开发技巧】关于Mybatis的巧妙使用

1.批量操作利用MyBatis提供的<foreach>标签,可以有效地进行批量插入、更新或删除操作,从而减少与数据库的交互次数。2.多条件分支查询3.SQL语句优化使用trim可以帮我们优化生成的SQL语句,避免生成多余的AND/OR字段4.自动生成主键插入操作完成后,会自动执行获取新插入记录的ID,并将其赋值给传入的User对象的id属性。5.高级映射一对多映射:可以处理复杂的表关系映射6.MyBatis-Plus集成7.代码生成器。

2024-12-24 11:13:30 470

原创 关于MySQL InnoDB的MVCC

是一种并发控制的方法,实现对数据库的并发访问,在编程语言中实现事务内存。为的是提高数据库并发性能,用更好的方式处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。·快照读:非阻塞式的读取数据,依赖于MVCC,一个数据有多个版本,使得读写没有冲突。读的是事务开始之前的一个快照。最近老是听身边的人说什么Mysql的MVCC机制,一个两个都吹上天了,今天我倒要看看到底是个啥。实现原理主要是依赖记录中的:4个隐式字段,undo日志,Read View来实现。MVCC的读是快照读而非当前读。

2024-12-10 13:13:03 132

原创 【笔记】关于SQL性能优化

对于连接查询,如果其中一个表发生变化,那么整个查询缓存就无法使用。而分解后的多个查询,即使其中一个表发生变化,对其它表的查询缓存依然可以使用。例如使用IN()代替连接查询,可以让MySql按照ID顺序进行查询,这可能比随机的连接更高效。一个大查询如果一次性执行的话,可能一次锁住很多数据,占满整个事务日志,耗尽系统资源,阻塞很多小的但重要的查询。·分解成多个单表查询,这些单表查询的缓存结果更可能被其它查询使用到,从而减少冗余记录的查询。·只返回必要的行:使用LIMIT语句来限制返回的数据。

2024-12-05 15:26:16 223

原创 分享一个Mybatis判断失效的bug

Mybatis判断失效

2024-12-05 14:06:54 167

原创 二叉树的非递归遍历

后序遍历:和前序遍历大差不差,只不过入栈顺序改为了中-左-右,最后还要将结果集反转。对应的代码使用Java实现:(本人的开发语言是Java这里就用Java实现)此时4是栈顶元素,和5的操作一样,弹出4从右到左存入子节点3,2。在递归的时候控制结点的先后进出顺序就可以实现前,中,后序遍历。递归的底层逻辑:底层使用栈来存储每一次递归的代码。存在子节点,将5弹出按照从右到左的顺序存入6,4。先存到树的最左边,然后返回的时候,边存右边边返回。最后就会得到前序遍历的结果5,4,2,3,6。

2024-07-17 15:16:21 284

原创 关于Map集合的源码学习

底层数据结构:JDK1.8之前由数组加链表组成,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在,(即出现hash冲突的时候,比key和hash是否与冲突位相同,如果相同的话就替换,否则就加入到链表中)关于扩容机制:当链表长度大于8的时候看数组有没有大于64如果大于64之后就转化为红黑树。·哈希函数的实现:HashMap实现更加复杂,对哈希值进行了高位和低位的混合扰动处理以减少冲突,而Hashtable直接使用建的hashCode()值。定向搜索,子集操作,逆序视图,边界操作。

2024-07-15 10:53:08 270

原创 关于启动vue项目技巧,Vue环境没有部署成功。。。

很多时候我们部署完nodejs的环境之后需要重启才可以让全局检测到,其实我们可以直接在项目的根目录打开cmd直接npm install, nmp run 服务名。

2024-05-08 20:19:52 154 1

原创 Java课程设计-博客论坛系统

java博客论坛系统

2024-05-08 20:10:56 315 2

原创 代做java课设,帮忙运行项目,修改项目,要的加QQ,价格巨实惠,安装运行环境,java课设

3189310836@qq.com

2024-04-08 20:30:37 284 1

原创 如何在spring中创建全局异常处理器

全局异常处理器在实际项目开发中是一个很重要的工具;对保证代码的正常运行有很重要的作用。@ExceptionHandler:用于指定异常处理方法。当与@RestControllerAdvice配合使用时,用于全局处理控制器里的异常。2.在类中创建方法用于捕获异常:在方法上添加注解:@ExceptionHandler。1.创建一个全局异常处理类:并添加@RestControllerAdvice注解。这样当代码运行出现对应的异常的时候,就会被捕获,并且执行方法中的代码。方法中的形参就是异常的类型。

2023-11-30 13:02:37 460

原创 如何在springboot中使用redis操作各种数据类型

因为redis相对于mysql来说,redis的数据存储在内存中,读取速度大于mysql。在项目中使用redis会提升访问速度,减轻mysql数据库的压力,给用户更好的体验。在创建配置类的时候我们给key创建了序列化器,所以key不会出现序列化问题。针对不同类型的数据,jar包中已经封装好了对应的方法,直接调用即可。测试通过:控制台打印除了文字,并且在数据库中可以看到保存的数据。在对应要使用Redis的项目模块的pom文件中加入以下配置。下面简单说了一下redis在spring中的使用。

2023-11-29 15:58:10 605 1

原创 为什么在编写DTO类的时候我们要实现Serializable接口

序列化,反序列化,Serializable接口

2023-11-28 22:03:14 1097

原创 java循环链表解决约瑟夫环

/要定义两个指针,一个指向当前要出去的节点,一个指向当前的前一个节点,然后用第二个节点跳过当前节点指向下一个节点来起到删除的作用。System.out.println("最后剩下的人"+first.getDate());System.out.println("输入有误请重新输入");System.out.println("输入的数据错误");System.out.println("请输入环开始位置");System.out.println("请输入环的大小");//添加方法,添加数据到环形链表中。

2022-11-12 23:42:00 213

原创 Java数据结构实现一个简单的双向链表

hero2.UpDate02(new HeroNode2(4, "魏智", "同学"));hero2.add02(new HeroNode2(1, "林冲", "豹子头"));hero2.add02(new HeroNode2(3, "宋江", "及时雨"));hero2.add02(new HeroNode2(2, "李逵", "黑旋风"));hero2.add02(new HeroNode2(4, "吴用", "智多星"));System.out.println("没有对应的数据");

2022-11-12 14:55:27 133

原创 java实现一个简单的单链表存放水浒传人物

else if (temp.next.no == heroNode.no) {//有重复的编号不能添加。hero.add2(new HeroNode(1, "林冲", "豹子头"));hero.add2(new HeroNode(3, "宋江", "及时雨"));hero.add2(new HeroNode(2, "李逵", "黑旋风"));hero.UpDate(new HeroNode(5,"魏智","sb"));hero.add2(new HeroNode(4,"吴用","智多星"));

2022-11-10 15:41:47 472

原创 Java数据结构实现一个简单的环形队列

System.out.println("h(head):查看队列头的数据");System.out.println("g(get):从队列中取出数据");System.out.println("a(add):添加数据到队列");System.out.println("s(show):显示队列");System.out.println("e(exit):退出程序");System.out.println("队列满,不能加入数据");System.out.println("输入一个数设置队列的大小:");

2022-11-08 21:23:45 160

原创 Java数据结构之数组实现一个简单的队列

System.out.println("h(head):查看队列头的数据");System.out.println("g(get):从队列中取出数据");System.out.println("a(add):添加数据到队列");System.out.println("s(show):显示队列");System.out.println("e(exit):退出程序");System.out.println("队列已满,不能加入数据");System.out.println("队列为空没有数据");

2022-11-07 16:03:56 274 1

空空如也

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

TA关注的人

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