自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java基础-IO流

磁盘与内存之间的数据交互,可以看做是一种数据的流动,按照流动方向,以内存为基准,分为输入 input 和输出 output,即流向内存的是输入流,流出内存的是输出流。Java IO操作主要是指使用 java.io包下的内容,进行输入、输出操作。输入也叫读取数据,输出也叫写出数据。根据数据的流向分为:输入流和输出流。根据数据的类型分为:字节流(以字节为单位)和字符流(以字符为单位)。输入流输出流字节流字符流ReaderWriter。

2024-07-26 09:00:00 441

原创 Java基础-Atomic原子类

/枚举类//1.提供类的属性,声明为private final//2.声明为final的属性,在构造器中初始化。//3.通过公共的方法来调用属性//4.创建枚举类的对象:将类的对象声明public static finalpublic static final Season SPRING = new Season("spring", "春暖花开");

2024-07-26 08:00:00 282

原创 百日筑基第三十一天-对象池复用实践

【1】是Apache提供的一个通用对象池技术实现,可以方便定制化自己需要的对象池。【2】Maven依赖</</</</【3】使用案例@Override@Override@Overridestatic {// 根据需求自定义配置// 资源耗尽时,是否阻塞等待获取资源,默认 true// 回收资源线程的执行周期,默认 -1 表示不启用回收资源线程// 对象总数// 最大空闲对象数// 最小空闲对象数// 借对象阻塞最大等待时间// 获取资源的等待时间。

2024-07-25 23:33:04 204

原创 百日筑基第三十一天

隔壁组新来的内门弟子和我研习同一门筑基功法,因此师傅安排我明日上午讲解我所学,顺便再看一看我对这门功法的理解如何。真羡慕有些天才少年,进来就是内门弟子啊。明日下午师门论道,我也参与,还是分享我所钻研的筑基功法第一卷,以及第二卷上半,看来明日还挺忙。筑基功法第一卷重修遍,感觉还有精进的空间,第二卷练至一半,明日应该能完成。

2024-07-25 23:03:17 58

原创 都4202年了为什么大厂程序员还在用java8?

而对于第四个示例没有起始值的 reduce(),由于可能没有足够的元素,返回的是 Optional,请留意这个区别。Stream 操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回 Stream 本身,这样你就可以将多个操作依次串起来。你也可以通过 map 来将对象转换成其他类型,map 返回的 Stream 类型是根据你 map 传递进去的函数的返回值决定的。当然你也可以直接通过接口创建对象,然后实现接口中的默认方法就可以了,我们通过代码演示一下这种方式。

2024-07-25 10:00:00 1015

原创 百日筑基第三十天

三十天整了,修炼时光过得真的快。可惜今天并不是顺利的一天,闭门造车不可取啊道友们,昨天被师傅指点出的问题,今天重修第一卷本以为会很快,没想到按照修改后的思路竟然入此耗费精力,之前是把问题想得太简单了,到休息时分还有一点尾巴没修重修,唉,希望明天能正常开启第二卷吧。

2024-07-24 22:46:42 61

原创 百日筑基第三十天-Java8 Optional 规范化处理NULL值的工具(极其优雅)

第 1-4 步每一个步骤的结果也具备不确定性,所以我们也把它们的结果设计成 Optional。Optional 就像一个处理不确定性的管道,我们在一头丢进一个可能是 null 的东西(接口返回结果),经过层层处理,最后消除不确定性。这篇文章是建立在你对 Optional 的用法有一定了解的基础上的,如果你还不太了解 Optional,可以先去看看相关教程,或者查阅。Optional 的魅力还不止于此,Optional 还有一些神奇的用法,比如 Optional 可以用来检验参数的合法性。

2024-07-24 22:46:09 909

原创 Java基础-枚举类

特殊之处在于,当每一对象需要单独实现 show 方法时,可以通过{}的形式,来完成需求。其他与我们之前创建时一致的。

2024-07-24 10:00:00 151

原创 Java基础-泛型相关总结

【1】解决元素存储的安全性问题。【2】解决获取数据元素时,需要类型强转的问题。【3】可以统一数据类型,便于操作。【4】将运行时的异常提前到了编译时,提高了效率。【5】实现代码的模板化,把数据类型当作参数传递,提高了可重用性。【6】只要在编译时期没有出现警告,那么运行时期就不会出现异常。

2024-07-24 09:00:00 414

原创 Java基础-异常处理

【1】创建自定义异常类继承类。/*** @description: 自定义异常类,包含了有参合无参构造器*/@Data//状态码//异常消息【2】将自定义的异常类添加到拦截的Handler中//拦截自定义异常(20001,“手动异常抛出”);@Autowiredtry{//手动抛出异常throw new BusinessException(20001,"手动异常抛出");

2024-07-24 08:30:00 998

原创 企业级 线上故障排查思路

一旦超出监控的范围,则排查思路很重要,按照流程化的思路来定位问题,能够让我们在定位问题时从容、淡定,快速的定位到线上的问题。上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令可以让之现行。个对象,在循环的时候,所有的数据全部保存在某个方法中无法释放,导致内存堆积到。类引发的,故查询项目代码,获得如下信息:根据代码和日志分析,可知是由于限制值。的打印,代表内存设置过小或者有内存泄漏,此时需要抓取内存快照进行分享。过高的时候,接口性能会快速下降,同时监控也会开始报警。

2024-07-24 08:00:00 836

原创 八日筑基第二十九天-为什么要将Double换成BigDecimal?

浮点数之间的等值判断,基本数据类型不能用 == 来比较,包装数据类型不能用 equals 来判断。想要解决浮点数运算精度丢失这个问题,可以直接使用BigDecimal来定义浮点数的值,然后再进行浮点数的运算操作即可。// 0浮点数没有办法用二进制精确表示,因此存在精度丢失的风险。不过,Java 提供了BigDecimal来操作浮点数。BigDecimal的实现利用到了BigInteger(用来操作大整数), 所不同的是BigDecimal加入了小数位的概念。

2024-07-23 23:16:48 438

原创 百日筑基第二十九天

本来以为自己第一卷功法已经修炼好了,今日修炼时被师傅看到,指出了种种错误,有点受挫但也收获不少,修炼一途果然不可凭空想象,闭门造车很容易把自己困住,还是要多和前辈们交流。明日重修第一卷,也着手准备修炼第二卷,有了第一卷的基础,第二卷应该容易入门一些。

2024-07-23 22:41:17 51

原创 七大设计原则-通过正反例代码学习

接口隔离原则(Interface Segregation Principle, ISP)是面向对象设计的基本原则之一,它的核心思想是:使用多个专门的接口,比使用单一的总接口(总接口包含多个方法)要好。这样客户端仅需要知道它们感兴趣的方法。换句话说,一个类对另一个类的依赖应该建立在最小的接口上。依赖倒置原则高层模块不应该依赖低层模块,两者都应该依赖其抽象:这意味着,在设计系统时,我们应该尽量通过接口或抽象类来定义模块之间的依赖关系,而不是直接依赖于具体的实现类。抽象不应该依赖细节,细节应该依赖抽象。

2024-07-23 08:00:00 813

原创 百日筑基第二十八天

筑基功法第一卷终于参悟,往后的六卷应该就可以快一点了,毕竟百日期限已过三分有一。坚持不懈,方得始终。

2024-07-22 22:42:08 84

原创 百日筑基第二十八天-23种设计模式-行为型总汇

设计模式可以说是对于七大设计原则的实现。创建型模式,共五种:单例模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式。结构型模式,共七种:代理模式、外观模式、享元模式、组合模式、桥接模式、装饰器模式、适配器模式。行为型模式,共十一种:模板方法模式、迭代器模式、访问者模式、观察者模式、命令模式、状态模式、策略模式、备忘录模式、中介者模式、解释器模式、责任链模式。

2024-07-22 22:37:44 640

原创 企业级网站的性能优化方法有哪些?

如果性能测试结果不满足我们预期的需求时,检查请求处理的各个环节的日志,分析哪个环节响应时间不合理,超出预期;然后检查监控数据分析影响性能的主要因素是内存、磁盘、网络、还是 CPU,是代码问题还是架构设计不合理,或者系统资源确实不足。根据网站分成架构,可分为。

2024-07-22 09:00:00 1031 1

原创 开发中Cat是什么?

所有Type汇总报表。

2024-07-22 08:00:00 622

原创 百日筑基第二十七天

一觉睡到晌午,做了两个菜吃吃。下午躺着,晚饭又吃很多。总体来讲在尽兴地休息,明日接着修炼。

2024-07-21 22:46:17 358

原创 百日筑基第二十七天-Java8 stream流常用操作

除了使用Collectors提供了toMap,toList等方法之外,我们还可以自定义Collection的数据结构收集//用LinkedList收集//用TreeSet收集。

2024-07-21 22:43:00 849

原创 百日筑基第二十六天-java8 Stream数据流入门

Stream是Java SE 8类库中新增的关键抽象,它被定义于Stream代表对象引用流,此外还有一系列特化流,如IntStreamLongStream等。Java 8引入的的Stream主要用于取代部分Collection的操作,每个流代表一个值序列,流提供一系列常用的聚集操作,可以便捷的在它上面进行各种运算。集合类库也提供了便捷的方式使我们可以以操作流的方式使用集合、数组以及其它数据结构;

2024-07-20 23:52:26 878 2

原创 百日筑基第二十六天

独自修炼的一天,也要适当休息一下了。

2024-07-20 16:52:17 84

原创 Mockito单元测试教程

Testverify(arrayList, description("size()没有调用")).size();// org.mockito.exceptions.base.MockitoAssertionError: size()没有调用verify(arrayList, timeout(200).times(3).description("验证失败")).add(anyString());

2024-07-20 09:00:00 928 2

原创 百日筑基第二十五天-java开发程序员常犯的错总结

要将数组转换为ArrayList**Arrays.asList()将返回 ArrayList私有静态类的 Arrays,而不是 java.util.ArrayList类。**该 java.util.Arrays.ArrayList有set(),get(),contains()方法,但没有添加元素的任何方法,所以它的大小是固定的。构造函数 ArrayList可以接收 Collection类型,它也是超类型 java.util.Arrays.ArrayList。

2024-07-19 22:55:05 1023

原创 百日筑基第二十五天

缓慢前进的一天,修炼速度比自己想象的慢,伪灵根果真修炼艰难。好在时间尚且还充足,也无他事烦心,一心修炼,终有筑基的一天。

2024-07-19 22:22:02 78

原创 百日筑基第二十四天-23种设计模式-结构型总汇

在现实生活中,一个对象不能直接访问另一个对象,这时需要找中介来访问目标对象,此时的中介就是代理对象。例如:租房子时,我们无法与房东取得联系,只能通过某网站与中介进行交易,获取自己心仪的房间等等。在软件设计中,使用代理模式的例子也很多,例如:访问阿里的 maven 仓库,其就是海外 maven 仓库的代理。还有因为安全原因需要屏蔽客户端直接访问真是对象,如某单位的内部数据等。为一个对象提供一个替身,以控制对目标对象的访问。即通过代理对象访问目标对象。

2024-07-19 00:10:19 917 1

原创 百日筑基第二十四天

开头终于突破了,下午开始再钻研第一套筑基功法,觉得没那么晦涩了。期待明天又更多的收获。长路漫漫,贵在坚持!

2024-07-18 22:23:53 92

原创 百日筑基第二十三天-23种设计模式-创建型总汇

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建(私有的构造器),这个类对外提供了唯一一种访问其实例的方式,对外只能够直接访问,不能实例化此类对象。例如,一台计算机上可以连接多台打印机,但是这个计算机上的打印程序只能有一个,这里就可以通过单例模式来避免两个打印作业同时输出到打印机中,即在整个的打印过程中只有一个打印程序的实例。

2024-07-18 00:01:20 1622 1

原创 百日筑基第二十三天

一个感悟:像《设计原则七招》、《设计模式二十三式》这类思想指导型的基础功法,远比我想象中的重要,修仙届上到仙法下至练气功法,常有二者的影子,而且越是强大的功法,思想越是和二者契合。理解其中深意也是读懂他人所创功法的前提。上午遇到一个瓶颈,绕开了(不重要),下午一心钻研功法,颇有进展。

2024-07-17 22:26:55 69 1

原创 百日筑基第二十二天-七大设计原则

客户端不应该依赖它不需要的接口类,类之间的依赖关系应该建立在最小的接口上。一句话,就是实现接口的类中,有多余的方法时,需要将接口进行拆分。

2024-07-17 00:10:49 895

原创 百日筑基第二十二天

刻苦修炼的一天,中午被孙前辈指点,下午难得和众多前辈一起吃的晚饭,交谈甚欢。

2024-07-16 23:56:48 66

原创 重构-代码坏味道(Mysterious Name)有哪些

重构 改善既有代码的设计第二版》中文版:https://book-refactoring2.ifmicro.com/所谓重构(refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。(形而上的东西,目前能力不足,了解是什么就好)

2024-07-16 22:37:59 575

原创 百日筑基第二十一天-用责任链模式处理复杂业务逻辑

举个例子,SpringMvc 中可以定义拦截器,并且可以定义多个。当一个用户发起请求时,顺利的话请求会经过所有拦截器,最终到达业务代码逻辑,SpringMvc 拦截器设计就是使用了责任链模式。在责任链模式中,多个处理器(参照上述拦截器)依次处理同一个请求。一个请求先经过 A 处理器处理,然后再把请求传递给 B 处理器,B 处理器处理完后再传递给 C 处理器,以此类推,形成一个链条,。在责任链模式中,每个处理者对象都有一个指向下一个处理者对象的引用,这样就形成了一个处理者链。

2024-07-15 23:11:06 693 1

原创 百日筑基第二十一天

实际上是跳过了一天,懈怠了,今天快速恢复修炼。同时修炼两本筑基功法,还是有点吃力的,尤其是师傅安排的这本,更是晦涩难懂,但愿入门之后能顺利些吧。

2024-07-15 22:16:30 65

原创 百日筑基第二十天-一头扎进消息队列3-RabbitMQ

RabbitMQ 主要有 Producer、Broker、Consumer、Exchange、Queue、Route、Bind、 Connection、Channel、ACK 等概念。总结 RabbitMQ,可以从以下七个方面入手:思考题 请你按照基础篇的课程思路,完整描述一下 RabbitMQ 从生产到消费的全过程?协议层基于 AMQP 标准开发。网络层核心数据流基于 TCP 协议通信,并通过 Connection 和 Channel 机制实现连接的复 用,以减少创建的 TCP 连接数量。

2024-07-13 22:53:26 1821

原创 百日筑基第二十天

百日筑基的时日已过十之有二,然而审视自身,筑基的进度却是没有那么多的,唉,遇到一个瓶颈,今天也力不从心,这段时间有点累,适当放松了一下。

2024-07-13 22:06:02 98

原创 百日筑基第十九天-一头扎进消息队列2

从技术上来看,私有协议设计一般需要包含三个步骤。

2024-07-12 23:17:08 1608 1

原创 百日筑基第十九天

累累的一天,上午师傅给安排了筑基路径,十分详细,足足谈了两个时辰,感激。下午效率较低,持续失忆,忘记自己干什么了,似乎什么都没干,于是早早回到家中,适当的休息也是提高筑基成功概率的必要。

2024-07-12 22:02:04 81

原创 百日筑基第十八天-一头扎进消息队列1

当前开源社区用的较多的消息队列主要有 RabbitMQ、RocketMQ、Kafka 和Pulsar 四款。国内大厂也一直在自研消息队列,比如阿里的 RocketMQ、腾讯的 CMQ 和 TubeMQ、京东的 JMQ、字节的 BMQ。只是发展程度不一样,有的开源了成为顶级项目,有的慢慢消亡了,有的仅限在公司内部使用。

2024-07-11 23:42:39 1052

原创 百日筑基第十八天

按照惯例,新晋的外门弟子在进入宗门一段时间后,要举行一次论道,分享近期的修炼心得,尤其是自己感悟较深刻的地方,给其他弟子以修炼参考。也是长老们对于新来弟子修炼天赋的第一次了解,也比较重要。于是今天一天都在准备这件事情,包括苦修钻研一本功法,企图有所感悟,还和前辈探讨了这本功法用作论道的可行性。

2024-07-11 22:50:58 84

java8新特性总结自用

java8新特性自用,为什么都2024年了大厂程序员还在用java8?

2024-07-24

空空如也

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

TA关注的人

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