自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 这篇文章带你彻底理解红黑树

红黑树并不是一个_完美_平衡二叉查找树,从图1可以看到,根结点P的左子树显然比右子树高,但左子树和右子树的黑结点的层数是相等的,也即任意一个结点到到每个叶子结点的路径都包含数量相同的黑结点(性质5)。所以我们叫红黑树这种平衡为黑色完美平衡。介绍到此,为了后面讲解不至于混淆,我们还需要来约定下红黑树一些结点的叫法,如图2所示。图2 结点叫法约定我们把正在处理(遍历)的结点叫做当前结点,如图2中的D,它的父亲叫做父结点,它的父亲的另外一个子结点叫做兄弟结点,父亲的父亲叫做祖父结点。前面讲到红黑树能自平

2022-04-29 19:45:14 248

原创 读Java虚拟机类加载引发的血案

public class TestSingleton {public static void main(String args[]){Singleton.forTest();}}看完资料的我,逐渐膨胀,毕竟100多斤的胖子,我想的输出应该是:Singleton static blockSingleton block !!!Singleton new instance然后运行一看,懵逼了,结果是:Singleton block !!!Singleton new instanceSi

2022-04-29 19:41:07 907

原创 详解二叉搜索树(BST)的Java实现和五种遍历方式

[](()4.查找一个元素当我们需要在BST中查找一个节点时,就从根节点从下扫描,直到找到匹配的元素或者达到一个空子树(树中不存在当前要查找的元素),下面我们来看下它的Java实现://返回true表示查询成功,false表示没右查询到public boolean search(E o) {//记录遍历时的当前节点TreeNode current = root;while (current != null) {//小于当前节点元素遍历其左子树if (o.compareTo(current.

2022-04-29 19:38:54 312

原创 设计模式—— 五

public class GroupLeader {//清查女生数量public void countGirls(List listGirls){System.out.println(“女生数量是:”+listGirls.size());}}女生类:public class Girl {}场景类:public class Client {public static void main(String[] args) {Teacher teacher= new Teacher();//

2022-04-29 19:36:27 111

原创 编码习惯-函数编写建议

Locale locale, MessageSource messageSource) {Map<String, Object> data = new HashMap<String, Object>();try {String name = (String) params.get(“name”);String value = (String) params.get(“value”);//示例代码,省略其他代码}catch (Exception e) {logger.e

2022-04-29 19:32:41 68

原创 程序员都在抄代码,而且还拿着高薪?这合理吗

所谓,天下代码一大抄,亦不过在程序员心中就是复制和粘贴。那么这么做到底对不对呢?首先需要肯定的是在软件开发中代码复用情况是非常普遍的,判断这种代码复用是否是抄袭行为的标准,要根据被复用的代码版权协议。这种行为非但不应该受到批评,而且应该受到肯定。只要他抄代码的时候遵守了被抄袭的代码的知识产权或分发协议。从社会角度而言,这个世界上,最应该受到批评的不是抄袭;恰恰相反,应该是重复劳动。重复劳动是对宝贵社会资源(人力物力财力精力时间等)的极大浪费。目前,我们身处在共享经济当中,可是殊不知我们这是一个伪共享的

2022-04-29 19:27:08 214

原创 知乎上这个程序员火了,竟是因为给老板修了一 次U盘

当然不是!以我多年的经验,(心虚)嗯,这肯定是插口的问题。之后我拆开看了一下。没错,引脚断了三根,在我拆开它的时候全断了…天啊,要让我要修这玩意吗??我陷入了沉思,这…完全不属于我该做的了吧~~~但是!!!做为一个程序员,永远不能说不!于是我今天带着这玩意来上班了。开始点了几下,发现没用,点不上,要焊锡丝才行,但是我的已经用完啦。《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】上某宝看了一下。价格有点

2022-04-29 19:23:44 120

原创 看完这篇还不懂高并发中的线程与线程池你来打我

int len;void* start_point;…};接下来就是起名字时刻。这个数据结构总要有个名字吧,这个结构体用来记录什么信息呢?记录的是程序在被 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 加载到内存中的运行状态,程序从磁盘加载到内存跑起来叫什么好呢?干脆就叫进程(Process)好了。我们的指导原则就是一定要听上去比较神秘,总之大家都不容易弄懂就对了,我将其称为“弄不懂原则”。就这样进程诞生了。CP

2022-04-29 19:22:07 148

原创 目前总结最新最系统的Java程序员未来职业规划路线,请收藏

(你的工资水平大概在10K~20K左右)高级程序员到了这个阶段,你的技术已经非常棒了,很多人开始走设计路线,你比如系统设计等等。公司会有很多的技术难题需要靠你去解决,这个时候是属于大神级别了。(你的工资水平大概在20K~30K左右)转折点再往上走,就面临一个转折点了,或者叫“换乘站”,你需要考虑自己走哪个方向,一个路线是走管理路线,另一个路线是走技术路线。走管理路线的话,你需要有较好的管理能力;而走技术路线,你的技术要过硬,要有牛逼的技术。4. 程序员需要不断的学习=============

2022-04-28 17:46:04 3761

原创 用Java实现JVM第四章《运行时数据区》

}JvmStack.javapackage org.itstack.demo.jvm.rtda;/**http://www.itstack.orgcreate by fuzhengwei on 2019/4/26虚拟机栈*/public class JvmStack {private int maxSize;private int size;private Frame _top;public JvmStack(int maxSize) {this.maxSize

2022-04-28 17:38:58 804

原创 爱了爱了,这篇寄存器讲的有点意思

中断标志位 (Interrupt) :1 - 允许;0 - 禁止陷入位 (Trap) :确定每条指令执行完成后,CPU 是否应该停止。1 - 开启,0 - 关闭进位 (Carry) : 设置最后一个无符号算术运算是否带有进位溢出 (Overflow) : 设置最后一个有符号运算是否溢出符号 (Sign) : 如果最后一次算术运算为负,则设置 1 =负,0 =正零位 (Zero) : 如果最后一次算术运算结果为零,1 = 零辅助进位 (Aux Carry) :用于第三位..

2022-04-28 17:28:07 167

原创 源码分析RocketMQ消息过滤机制下篇-FilterServer、ClassFilter模式详解

从图中可以看出,如果使用了类模式过滤,Consumer 不是直接从Broker拉取,而是从FilterServer上拉取。那么问题来了,FilterServer 是什么、Consume 如何与 FilterServer 打交道。我们知道,一个客户端,一个专门的消息拉取线程(PullMessageService)专门负责拉取消息,多种过滤模式公用一套消息拉取机制【消息队列负载机制】,那 ClassFilter 模式是如何工作呢?首先,ClassFilter 模式,顾名思义就是消费端可以上传一个Class类.

2022-04-28 17:26:28 528

原创 校招黑名单:好家伙,GitHub 上这个仓库火了

可能有些读者访问 GitHub 的时候会比较慢,我这里简单帮大家梳理一下。作者开源这个仓库的用意是:收集校招有污点的公司或组织,帮助学弟学妹避雷。污点行为包括但不限于:毁意向书、毁两方协定、毁三方协定、试用期裁员、大量裁应届生。作者不希望看到的是,往年经常毁约的公司却在第二年依旧简历爆满的情况。我在浏览名单的时候,竟然看到了一些风评甚佳但依然多次上榜的互联网头部公司上,着实有点吃惊。当然了,并不是说在榜单上的公司就不能再投了,不能因噎废食。这里面的原因可能是公司单方面造成的,也可能是应聘

2022-04-28 17:19:05 545

原创 有空就来学Hystrix RPC保护的原理,RPC监控之滑动窗口的实现原理

最后,桶滑动统计流以桶计数流作为来源,按照步长为1、长度为设定的桶数(配置的滑动窗口桶数)的规则划分滑动窗口,并对滑动窗口内的所有桶数据按照各事件类型进行汇总,汇总成最终的窗口健康数据,并将其弹射出去,形成最终的桶滑动统计流,作为Hystrix熔断器进行状态转换的数据支撑。以上介绍的Hystrix健康统计滑动窗口的执行流程如图5-13所示。图5-13 Hystrix健康统计滑动窗口的执行流程为了帮助大家学习Hystrix滑动窗口的执行流程,这里设计一个简单的Hystrix滑动窗口模拟实现用例,对Hy

2022-04-28 17:15:39 178

原创 数据结构系列第一部分:表

/**1.2 在链表中间,根据节点的序号来插入节点,这样的话,上述在链表尾部增加节点可以看成是这种情况的特例@param heroNode 加入的节点*/public void addMiddleNode(HeroNode heroNode) {//flag来判断该节点的序号在链表中是否存在//要考虑三种情况://1 新加入节点的序号在尾节点//2 新加入的节点的序号在链表中已经存在,所以,要做一个报错处理//3 新加入的节点的序号在链表中不存在,允许加入boolean f

2022-04-28 17:14:03 136

原创 数据结构与算法-树与二叉树

2)非叶子姐弟啊的度一定为2.3)在同样深度的二叉树中,满二叉树的节点个数最多,叶子数最多。完全二叉树除了最后一层都是满的(都有两个子节点),并且最后一层的节点是从左往右排列的。完全二叉树,通俗点说就是节点按层从左往右排列。如果最后一层排满了就是满二叉树,没有满则是完全二叉树二叉树性质1)在二叉树的第i层上最多有2^(i-1) 个节点 。(i>=1)2)二叉树中如果深度为k,那么最多有2^k-1个节点。(k>=1)3)n0=n2+1 n0表示度数为0的节点数,n2表示度数为

2022-04-28 17:11:38 179

原创 教妹学Java(十):Unicode字符集简介

“二哥,[上一篇](()文章中提到了 Unicode 字符集,说 Java 中的char 类型之所以占 2 个字节,是因为 Java 使用的是 Unicode 字符集而不是 ASCII 字符集,我有点迷,想了解一下,能细致给我说说吗?”“当然可以啊。”Unicode 是一种国际通用的标准字符编码,能够代表世界上大多数的书面语言。在 Unicode 字符集出现之前,已经存在不少字符集了,比如说:ASCII,美国标准信息交换码,一共规定了 128 个字符的编码,比如空格 SPACE 是 32(二进制

2022-04-24 00:12:03 402

原创 搭建JavaWeb开发环境(Eclipse版)

4. 打开tomcat官网[https://tomcat.apache.org/download-90.cgi](()下载对应的tomcat压缩包,并将压缩包解压到Java安装目录下。5. 运行eclipce,并进行相关配置:打开Window->preferences->Server->Runtime Environments6. 点击add->Apache Tomcat v9.0->Next,点击Browse,设置为我们Tomcat压缩包的解压路径。7. 新建一个

2022-04-24 00:09:59 970

原创 技术汇总:第九章:任务调度SpringTask

Cron表达式格式Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:(1)Seconds Minutes Hours DayofMonth Month DayofWeek Year(2)Seconds Minutes Hours DayofMonth Month DayofWeek每一个域可出现的字符如下:Seconds:可出现", - * /"四个字符,有效范围为0-59的整数Minutes:可出现", - * /"四个字符

2022-04-24 00:06:27 79

原创 技术太菜,我很抱歉,阿里四面

[](()阿里二面===============================================================1.双亲委派机制。2.一个父类加载器能不能加载一个子类加载器,为什么3.也是一个类加载器,有点蒙蔽了,没搞懂4.怎么实现分布式锁5.redis分布式锁有什么缺点,怎么解决6.mysql索引7.select * from A where id in (select id from B)怎么优化8.volidate。9.垃圾收集器。10.一个16G

2022-04-24 00:04:49 114

原创 手把手教你掌握高并发高可用系统实战,精解分布式系统一致性文档~

硬核!万字神文精解高并发高可用系统实战,分布式系统一致性文档本文大纲目录======总目录细化的内容知识点==================================================================================================================================================================================================

2022-04-24 00:00:16 457

原创 总结MySQL和Oracle的语法区别

说明:nvl:基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1。nvl2:nvl2函数的是nvl函数的拓展,基本语法为nvl2(E1,E2,E3),意思是E1为null,就返回E3,不为null就返回E2。IFNULL:基本语法为IFNULL(E1,E2),假如E1不为NULL,则返回值为E1,否则为E2。COALESCE:COALESCE(value,…)是一个可变参函数,可以使用多个参数。作用:接受多个参数,返回第一个不为NULL的参数,如果

2022-04-23 23:52:12 472

原创 微服务生态的灰度发布如何实现?

那就要用到我们客户端client的rabbion组件了,这个组件主要用来调用服务实例的,而是可以实现负载均衡;那我们就可以重写负载均衡算法,实现自定义的流量权重这个需求。具体实现就是继承ZoneAvoidanceRule**重写Server choose(Object key),**直接上代码public class ZoneAvoidanceRuleDecorator extends ZoneAvoidanceRule {。。。。。。@Overridepublic Server choose(

2022-04-23 23:49:53 1547

原创 微服务架构深度解析:你知道微服务的主要特性有哪些吗?

● 粒度更细的服务使每一个服务专注做好一件事情。每个服务完成一个单一任务,在功能不变的情况下,应用被拆分为多个可管理的服务,很好地解决了系统的复杂性问题。● 粒度更细的服务有助于新人对工程的学习。对于一个大型的、生命周期比较长的项目,人员的流动和组织变化是经常发生的事情,而庞大的单体架构容易使模块之间相互耦合,功能界限模糊,同时增加了新人的学习成本。● 粒度更细的服务有利于部署。对于大型单体项目,模块之间往往存在紧密的代码耦合, 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目

2022-04-23 23:47:55 538

原创 Java面试之JDBC & Hibernate

😕/localhost:3306/pubs”,”root”,””);处理中文的问题:jdbc:mysql://localhost:3306/pubs?useUnicode=true&characterEncoding=GB23127、事务处理?【基础】答:Connection 类中提供了3 个事务处理方法:setAutoCommit(Boolean autoCommit):设置是否自动提交事务,默认为自动提交事务,即为true,通过设置false 禁止自动提交事务;commit():提交事

2022-04-16 22:57:03 81

空空如也

空空如也

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

TA关注的人

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