自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

【小熊学Java】专注于记录自己所整理的Java技术干货、学习经验、面试资料、刷题记录以及遇到的问题和解决方案,记录自己的成长的点滴

  • 博客(311)
  • 资源 (3)
  • 收藏
  • 关注

原创 推荐一个Java全能学习+面试指南的站点,yyds

从这出的docsify部署,再到用vuepress部署,然后再使用一些主题reco,最后到现在的主题hope,折腾路上真的很难,有时候没解决,查各种也没查到解决办法,好之,结果还是不错的,达到了自己理想的效果,后续也会持续不断完善自己的网站!另外,最近创建了一个编程资料共享群,不定期分享最新资料,有需要的朋友可以扫码进群xiaobear_docsify地址:https://yhx1001.github.io/xiaobear_docsify/#/部分内容有密码,公众号回复密码。

2023-07-14 16:18:05 342 1

原创 2024年最新整理的Zookeeper常问的面试题汇总

ZooKeeper是一个分布式协调服务,提供了高度可靠且具有高性能的分布式应用协调服务。Zookeeper = 文件系统 + 通知机制脑裂是在分布式系统中经常出现的问题之一,它指的是由于网络或节点故障等原因,导致一个分布式系统被分为多个独立的子系统,每个子系统独立运行,无法相互通信,同时认为自己是整个系统的主节点,这就会导致整个系统失去一致性和可用性。网络分区:当Zookeeper集群中的某些节点无法与其他节点通信时,就会出现网络分区现象。这时,无法确定哪个节点是主节点,容易导致多个主节点的情况。

2024-09-26 23:59:56 68

原创 【毕设项目推荐】springboot+vue大学新生报到管理系统

经过调查,目前现代人的生活节奏加快,生活压力也在逐渐的增加,网络的发展给人们带来的便利,随着网上大学生新生报到信息不断的增加,越来越多的学生开始加入了大学生新生报到大潮中,但是我国对于网上大学生新生报到系统的信息管理效果低下,而且出错率也很高。因此大家都在寻找一款更加专业化的大学生新生报到系统。随着大学生新生报到系统的不断出现,学生需求不断增多,大学生新生报到系统也不断的得到壮大,本系统主要根据学生和管理员的实际需要,同时让管理者可以通过这个系统对学生实际需求以及各大学生新生报到信息的所有信息进行操作。

2024-09-26 23:57:41 112

原创 一口气说出 6种 延时队列的实现方案,面试稳稳的

为了让大家更容易理解,上边的代码写的都比较简单粗糙,几种实现方式的demo已经都提交到github,感兴趣的小伙伴可以下载跑一跑。这篇文章肝了挺长时间,写作一点也不比上班干活轻松,查证资料反复验证demo的可行性,搭建各种RabbitMQRedis环境,只想说我太难了!可能写的有不够完善的地方,如哪里有错误或者不明了的,欢迎大家踊跃指正!!!!资料获取👇 最后面就是领取暗号。

2024-09-23 13:43:33 945

原创 多维系统下单点登录之生产实践(2种方案3种实践)

首次请求第二次请求跨域请求注销流程访问:http://xxlssoclient1.com:8081/登陆成功,写入 Cookie,保存 sessionId 信息跨域访问访问另外一个域名:http://xxlssoclient2.com:8081/自动登陆,并且写入 SessionId 至 Cookie 当中采用 Debug 方式跟踪解析。关键断点:统一认证服务, 登陆入口:WebController 的 login 方法应用服务 Web 过滤器:XxlSsoWebFilter 的 doFilter 方法应用

2024-09-21 23:18:07 1216

原创 基于协同过滤算法Spring Boot+Vue的图书商城系统

协同过滤推荐是一种基于用户历史行为和兴趣相似性的推荐算法,是市场上各类推荐系统中应用最广泛的技术之一。它基于“人们喜欢什么和谁喜欢什么”这一原理,通过分析不同用户之间的行为数据,找到具有相似行为模式的用户,然后将这些用户之前喜欢的内容或产品推荐给当前用户。协同过滤推荐算法通常分为两种类型:基于用户的协同过滤和基于物品的协同过滤。(1)基于用户的协同过滤推荐基于用户的协同过滤推荐算法是基于用户之间的相似性来进行推荐的。

2024-08-27 10:04:13 1088

原创 多维系统下单点登录的技术深入详解

SAML 2.0 用来在安全域中交换身份验证(Authentication)数据和 授权(Authorization)数据。SAML 2.0基于XML协议,使用包含断言(Assertions)的安全令牌在SAML授权方(即身份提供者IdP)和SAML消费方(即服务提供者SP)之间传递委托人(终端用户)的信息。SAML 2.0 可以实现基于网络跨域的单点登录(SSO), 以便于减少向一个用户分发多个身份验证令牌的管理开销。

2024-08-27 00:29:41 708

原创 多维系统下单点登录之整理解决方案

用户登录之后, 将认证信息存储至Cookie,当再次访问本服务或者访问其他应用服务时,直接从Cookie中传递认证信息,进行鉴权处理。

2024-08-25 22:43:05 1032

原创 Java中大对象复用的目标和注意点,以及优化方案

最后我们总结一下:首先,我们看了比较老的 JDK 版本中,String 为了复用引起的内容泄漏问题,所以我们平常的编码中,一定要注意大对象的回收,及时切断与它的联系。接下来,我们看了 Java 中集合的一些扩容操作,如果你知道确切的集合大小,就可以指定一个初始值,避免耗时的扩容操作。针对大对象,我们有结构纬度的优化和时间维度的优化两种方法:从结构纬度来说,通过把对象切分成合适的粒度,可以把操作集中在小数据结构上,减少时间处理成本;通过把对象进行压缩、转换,或者提取热点数据。

2024-08-24 15:29:28 1080

原创 重新认识一下,从BIO到NIO,再到AIO,响应式编程

今天,我们讲到了BIO、NIO、AIO 等概念和基本的编程模型 Reactor,我们了解到:BIO 的线程模型是一个连接对应一个线程的,非常浪费资源;NIO通过对关键事件的监听,通过主动通知的方式完成非阻塞操作,但它对事件本身的处理依然是阻塞的;AIO 完全是异步非阻塞的,但现实中使用很少。使用 Netty 的多 Acceptor 模式和多线程模式,我们能够方便地完成类似 AIO 这样的操作。Netty 的事件触发机制使用了高效的 ET 模式,使得支持的连接更多,性能更高。

2024-08-22 12:57:34 909

原创 案例分析:常用的Java代码优化法则

代码优化方法从缓冲、缓存、池化对象、大对象复用、并行计算、锁优化、NIO 等优化方法,它们对性能的提升往往是质的飞跃。但语言本身对性能也是有影响的,比如就有很多公司就因为语言的特性由 Java 切换到 Golang。对于 Java 语言来说,也有它的一套优化法则,这些细微的性能差异,经过多次调用和迭代,会产生越来越大的影响。今天我们一起看看一些常用的代码优化法则,从而在编码中保持好的习惯,让代码保持最优状态。

2024-08-21 12:23:31 1031

原创 案例分析:多线程锁该如何优化?

Java 中的 synchronized 有偏向锁、轻量级锁、重量级锁三种形式,分别对应了锁只被一个线程持有、不同线程交替持有锁、多线程竞争锁三种情况。描述重量级锁底层使用的 Monitor 实现,里面涉及到了用户态和内核态的切换、进程的上下文切换,成本较高,性能比较低。轻量级锁线程加锁的时间是错开的(也就是没有竞争),可以使用轻量级锁来优化。轻量级修改了对象头的锁标志,相对重量级锁性能提升很多。每次修改都是 CAS 操作,保证原子性偏向锁。

2024-08-20 12:50:09 899

原创 一次性下发100w的优惠券/短信/二维码,兼顾线程池参数可配置

针对6.18,11.11这种场景,平台一次性发布500w张优惠券,或者对于锁单用户统一发下100w张确认信息,同时我们平时有抢购茅台的场景,京东一次性发布10w个验证码,主要是针对高并发多线程大数据批处理任务的场景,一般用于二维码、优惠券、邮件、短信等场景。前面我们已经提到了其他的场景,比如二维码、优惠券、短信、邮件、理财产品收益等场景,那我们怎么才会坐到通用呢?能否做到通用的设计或工具类,给团队赋能,一开始我们肯定是一次性编写或思考不到,考虑不周的,需要我们先针对某个场景进行编写之后,后续再做到更完美!

2024-08-04 11:01:33 100 1

原创 BigDecimal你了解吗,遇到过哪些坑?

Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作。

2024-08-02 12:23:38 573

原创 案例分析:并行计算让你的代码“飞”起来

现在的电脑,往往都有多颗核,即使是一部手机,也往往配备了并行处理器,通过多进程和多线程的手段,就可以让多个 CPU 核同时工作,加快任务的执行。Java 提供了非常丰富的 API,来支持多线程开发。对我们 Java 程序员来说,。但它如何应用到业务场景中?又有哪些注意事项?今天将从一个并行获取数据的例子开始,逐步讲解这个面试中最频繁的知识点。

2024-08-01 20:00:31 812

原创 通过三种不同的系统架构案例加深理解认识

主要是分享了三种不同的系统架构案例。互联网应用系统架构,看一个互联网应用系统的架构是如何设计的,如何利用各种各样的分布式技术,构建一个分布式互联网系统。分布式数据库的架构设计案例,它的架构考量点主要是什么,一个分布式的数据库如何实现高可用、高性能、可伸缩等一系列的分布式特性的。编程框架的架构设计,开发工程师每天在编程的时候都要使用编程框架进行开发。那么架构师除了要做这种整体的架构,还要考虑如何为开发工程师去设计一个易用强大的编程框架。

2024-07-30 12:28:42 680 1

原创 基于Spring Boot+Vue的宠物领养系统

宠物在人类生活中扮演着越来越重要的角色,它们不仅能给人们带来欢乐和陪伴,还能减轻人们的压力和孤独感。同时,随着城市化进程的加快,越来越多的宠物流浪到了城市街头,给城市管理和环境卫生带来了一定的困扰。宠物领养的意义是为收养机构提供一个方便且便捷的管理系统,包括宠物信息管理、领养者信息管理、宠物收养申请处理等功能,减少手工管理的工作量和人工错误;为领养者提供一个方便的查找和筛选宠物的平台,可以根据不同的需求和条件搜索符合要求的宠物信息,减少了去收容所实地寻找的时间和成本;

2024-06-28 19:23:31 920

原创 毕业设计目前现状及避坑指南

这篇文章其实在前天的时候就想写了,但是想了想又没写了,但今天已经有好几个同学来找我说这个事情,所以决定写下这篇毕业设计避坑指南吧。自己接触接私单也差不多两年时间了,也接触了很多同学和商家,就聊聊这个行业目前的情况哈。

2024-04-23 01:53:40 953 2

原创 如何看到 synchronized 背后的“monitor 锁”?

Java全能学习+面试指南:https://javaxiaobear.cn。

2024-04-05 20:05:46 272

原创 面试官:HashMap为什么是线程不安全的?

今天我们主要讲解为什么 HashMap 是线程不安全的?而对于 HashMap,相信你一定并不陌生,HashMap 是我们平时工作和学习中用得非常非常多的一个容器,也是 Map 最主要的实现类之一,但是它自身并不具备线程安全的特点,可以从多种情况中体现出来,下面我们就对此进行具体的分析。

2024-04-05 20:02:55 238

原创 ConcurrentHashMap在Java 7和Java 8中有何不同?

在 Java 8 中,对于 ConcurrentHashMap 这个常用的工具类进行了很大的升级,对比之前 Java 7 版本在诸多方面都进行了调整和变化。不过,在 Java 7 中的 Segment 的设计思想依然具有参考和学习的价值,所以在很多情况下面试官都会问你:ConcurrentHashMap 在 Java 7 和 Java 8 中的结构分别是什么?它们有什么相同点和不同点?所以本课时就对 ConcurrentHashMap 在这两个版本的特点和性质进行对比和介绍。

2024-04-04 03:45:50 146

原创 数据库分析查询语句Explain详解,一步一步带你分析字段的含义

EXPLAIN 关键字可以模拟优化器执行 SQL 语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字 ,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条 SQL注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中官网:https://dev.mysql.com/doc/refman/5.7/en/explain-extended.html。

2024-03-31 11:43:45 153

原创 SpringBoot的图书馆管理系统

借阅记录中可以进行借阅者,书籍详情,未归还书籍的查询;(4)一般用户,只能查询图书,并进行借书操作(提出借书申请),每个用户最多借阅8本,即当目前借书已经是8本,则不能再借书了,只有还书后,才可以再借阅。(3)管理员可以实现对注册用户的管理(查询、删除、密码修改)、用户的借书申请的确定和还书操作,并实现对图书的创建、查询、修改和删除等有关的操作。登录后,系统会根据用户ID自动判别用户类别,如果是r开头的,为读者登录,如果是m开头的则为管理员。除了个人信息更改,还包括用户管理,书籍管理,借阅管理三大模块。

2024-03-28 12:42:49 710

原创 分享SQL的7种进阶用法

在MySQL中ORDER BY排序除了可以用ASC和DESC之外,还可以使用自定义排序方式来实现。('咱们结婚吧', '靳东', 43.2, '2013-04-12'),('四大名捕', '刘亦菲', 62.5, '2013-12-21'),('猎场', '靳东', 68.5, '2017-11-03'),('芳华', '范冰冰', 55.0, '2017-09-15'),('功夫瑜伽', '成龙', 91.8, '2017-01-28'),

2024-03-18 10:41:33 459

原创 使用线程池比手动创建线程好在哪?

今天聊一聊为什么使用线程池比手动创建线程要好,具体好在哪里?

2024-03-15 00:10:20 1079

原创 案例分析:分库分表后,我的应用崩溃了

今天以 Spring Boot 项目常见的分层结构,介绍了每一层可能会引起的内存问题,我们把结论归结为一点,那就是保持输入集或者结果集的简洁。一次性获取非常多的数据,会让中间过程变得非常不可控。最后,我们分析了一个驱动层的数据库中间件,以及对内存使用的一些问题。很多时候我们把这些耗时又耗内存的操作,写了非常复杂的 SQL 语句,然后扔给最底层的数据库去解决,这种情况大多数认为换汤不换药,不过是把具体的问题冲突,转移到另一个场景而已。

2024-03-14 00:00:55 879 1

原创 MySQL大表优化方案(应该是最完整最全的了)

水平拆分是通过某种策略将数据分片来存储,分库内分表和分库两部分,每片数据会分散到不同的MySQL表或库,达到分布式的效果,能够支持非常大的数据量。前面的表分区本质上也是一种特殊的库内分表库内分表,仅仅是单纯的解决了单一表数据过大的问题,由于没有把表的数据分布到不同的机器上,因此对于减轻MySQL服务器的压力来说,并没有太大的作用,大家还是竞争同一个物理机上的IO、CPU、网络,这个就要通过分库来解决前面垂直拆分的用户表如果进行水平拆分,结果是:实际情况中往往会是垂直拆分和水平拆分的结合,即将。

2024-03-13 23:20:59 5205

原创 遇到问题不要慌,轻松搞定内存泄露

今天介绍了很多 Linux 命令,用于定位分析问题,所有的命令都是可以实际操作的,能够让你详细地把握整个 JVM 乃至操作系统的运行状况。其中,jinfo、jstat、jstack、jhsdb(jmap)等是经常被使用的一些工具,尤其是 jmap,在分析处理内存泄漏问题的时候,是必须的。同时还介绍了保留现场的工具和辅助分析的方法论,遇到问题不要慌,记得隔离保存现场。接下来我们看了一个实际的例子,由于 SWAP 的启用造成的服务卡顿。SWAP 会引起很多问题,在高并发服务中一般是关掉它。

2024-01-16 22:17:06 910

原创 Synchronized 和 ReentrantLock 的实现原理是什么?它们有什么区别?

今天讲了 synchronized 和 ReentrantLock 的实现过程,然后讲了 synchronized 和 ReentrantLock 的区别,最后通过源码的方式讲了 ReentrantLock 加锁和解锁的执行流程。接着又讲了 JDK 1.6 中的锁优化,包括自适应式自旋锁的实现过程,以及 synchronized 的三种锁状态和锁升级的执行流程。synchronized 刚开始为偏向锁,随着锁竞争越来越激烈,会升级为轻量级锁和重量级锁。如果大多数锁被不同的线程所争抢就不建议使用偏向锁了。

2024-01-16 21:58:20 1008

原创 【搜索引擎设计:信息搜索怎么避免大海捞针?

PageRank 算法我们现在看起来平平无奇,但是正是这个算法造就了 Google 近 2 万亿美元的商业帝国。在 Google 之前,Yahoo 已经是互联网最大的搜索引擎公司。按照一般的商业规律,如果一个创新公司不能带来十倍的效率或者体验提升,就根本没有机会挑战现有的巨头。而 Google 刚一出现,就给 Yahoo 和旧有的搜索引擎世界带来摧枯拉朽的扫荡,用户体验的提升不止十倍,这其中的秘诀正是 PageRank。

2024-01-13 20:52:15 1424

原创 Java并查集设计以及路径压缩实现

并查集是一种树型的数据结构 ,并查集可以高效地进行如下操作:- 查询元素p和元素q是否属于同一组- 合并元素p和元素q所在的组

2024-01-13 20:10:20 1107

原创 B-树和B+树的特性,以及B+树在数据库中的应用

由于B+树在非叶子结点上不包含真正的数据,只当做索引使用,因此在内存相同的情况下,能够存放更多的key。由于B树的每一个节点都包含key和value,因此我们根据key查找value时,只需要找到key所在的位置,就能找到value,但B+树只有叶子结点存储数据,索引每一次查找,都必须一次一次,一直找到树的最大深度处,也就是叶子结点的深度,才能找到value。在实际应用中B树的阶数一般都比较大(通常大于100),所以,即使存储大量的数据,B树的高度仍然比较小,这样在某些应用场景下,就可以体现出它的优势。

2024-01-11 12:59:17 1199

原创 Java平衡树--红黑树,如何平衡化以及操作实现

红链接均为左连接没有任何一个节点同时和两条红链接相连该树是完美黑色平衡的,即是任意空链接到根节点的路径上的黑链接数量相同。

2024-01-11 12:57:15 1261

原创 Java平衡树--查找树的新建与树的实现

一棵2-3查找树要么为空,要么满足满足下面两个要求:2-结点含有一个键(及其对应的值)和两条链,左链接指向2-3树中的键都小于该结点,右链接指向的2-3树中的键都大于该结点。3-结点含有两个键(及其对应的值)和三条链,左链接指向的2-3树中的键都小于该结点,中链接指向的2-3树中的键都位于该结点的两个键之间,右链接指向的2-3树中的键都大于该结点。

2024-01-10 13:23:31 932

原创 详解 ThreadPoolExecutor 的参数含义及源码执行流程?

new RejectedExecutionHandler() { // 添加自定义拒绝策略@Override// 业务处理方法System.out.println("执行自定义拒绝策略");});i < 6;i++) {});执行自定义拒绝策略可以看出线程池执行了自定义的拒绝策略,我们可以在 rejectedExecution 中添加自己业务处理的代码。

2024-01-10 13:21:04 1109

原创 Java索引优先队列设计思路与实现

Java 学习+面试指南:https://javaxiaobear.cn。

2024-01-09 17:25:25 924

原创 Java 最小优先队列API设计与实现

Java 学习+面试指南:https://javaxiaobear.cn。

2024-01-09 17:23:57 420

原创 Java最大优先队列设计与实现

Java 学习+面试指南:https://javaxiaobear.cn。

2024-01-07 23:08:48 596

原创 Java 堆的设计,如何用堆进行排序

堆是计算机科学中一类特殊的数据结构的统称,堆通常可以被看做是一棵完全二叉树的数组对象。

2024-01-07 23:05:35 913

原创 Java二叉树的遍历以及最大深度问题

树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家谱、单位的组织架构、等等。树是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。每个结点有零个或多个子结点;没有父结点的结点为根结点;每一个非根结点只有一个父结点;每个结点及其后代结点整体上可以看做是一棵树,称为当前结点的父结点的一个子树;

2024-01-07 23:01:00 1106

基于Spring Boot+Vue的校园兼职平台设计与实现

基于Spring Boot+Vue的校园兼职平台设计与实现

2024-09-18

二叉树的概念,遍历,层次遍历

完全二叉树的层序遍历

2023-12-09

《小熊学Java 面试手册》v1.0.pdf

Java基础:要了解一下Java概述,熟悉基本语法、数据类型、异常的处理,重点是面向对象,封装、继承、多态;面试中高频问点就是多线程与并发、JVM,还有集合的源码等Java高级:高级部分包括Java反射,JVM、并发编程高级篇等计算机基础:计算机基础主要是操作系统、计算机网络、计算机组成原理、数据结构与算法等数据库: 数据库主要以MySQL、Redis为主,这两个基本上是主要问的Java框架: 框架这部分包含很多,入门框架有Spring、Spring MVC、Mybatis,目前SSH很少使用了,微服务生态这边有Spring Boot、Spring Cloud分布式:市面上流行的分布式框架,分布式缓存,消息队列,数据库等源码剖析:面试中必问源码的面试题架构设计面试:自己总结学习的一些架构设计方面的面试题

2023-10-13

基于Java Web的文章发布系统设计与实现

基于Java Web的文章发布系统设计与实现

2023-10-13

基于SSM的电影售票系统

基于SSM的电影售票系统

2023-10-13

【毕设项目推荐】基于Spring Boot+ Vue的人力资源管理系统设计与实现

【毕设项目推荐】基于Spring Boot+ Vue的人力资源管理系统设计与实现

2023-10-13

IT资讯社区系统设计与实现

基于Spring Boot+Vue的资讯社区系统设计与实现,采用BS架构进行设计,代码完整

2023-07-04

李峋同款爱心代码-爱心源码

李峋同款爱心代码,四种风格

2022-12-14

架构师官方教材.zip

系统架构师相关资料

2021-10-13

python语言程序设计(第二版).pdf

python二级指定教材

2021-09-07

空空如也

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

TA关注的人

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