- 博客(13)
- 收藏
- 关注
原创 Java日志框架:slf4j作用及其实现原理
slf4j(Simple Logging Facade for Java)是一个简单的Java日志门面框架,它为开发人员提供了一个通用的、简单的访问log日志的接口,可以方便地切换底层的日志实现,例如log4j、java.util.logging和logback等。它的主要作用是提供统一的日志访问接口,避免应用程序与具体的日志实现绑定在一起,从而使应用程序更容易地进行日志记录以及日志内容的控制和管理。
2023-08-31 21:39:29 2331
原创 项目如何进行压力测试
在日常开发过程中,我们经常需要对项目进行相应的压力测试来衡量项目的各项指标,例如QPS、运行时间等。QPS(Queries Per Second):每秒能够响应的查询次数,也即是最大吞吐能力(吞吐量)。TPS(Transactions Per Second):每秒处理的事务数目。一个事务是指一个客户端向服务器发送请求然后服务器做出反应的过程。TPS 的过程包括:客户端请求服务端、服务端内部处理、服务端返回客户端。
2023-08-22 22:02:52 1653 1
原创 十种经典排序算法(Java版)
数据量规模较小,考虑插入或选择。当元素分布有序时插入将大大减少比较和移动记录的次数,如果不要求稳定性,可以使用选择,效率略高于插入;数据量规模中等,使用希尔排序;数据量规模较大,考虑堆排序(元素分布接近正序或逆序)、快速排序(元素分布随机)和归并排序(稳定性);一般来说不使用冒泡。
2023-08-20 15:01:30 1063 1
原创 MySQL主从复制
与Redis主从复制架构诞生的原因一样,MySQL主从复制主要是为了避免单节点主机出现硬件或主机系统故障时可能导致数据丢失的问题,而对数据进行的冗余备份。备份的从节点不对系统提供服务,仅仅负责同步master节点的数据。主从复制架构一旦搭建完成,不能在slave从节点上执行更新操作(如create、update、insert、delete等),否则会导致主从数据不一致甚至同步失败
2023-08-18 10:35:02 233 1
原创 MySQL8读写分离集群
在MySQL读写分离中:master节点专门用来做数据的修改操作(等),在主库上写,然后主库通过主从复制把数据的更改通过binlog同步到所有从库上再将所有的查询操作都映射到从库上,这样就可以很好的分摊读写的压力,不用全部请求都集中在主库上,这样MySQL的并发处理能力就能得到极大的提高这个过程需要一个中间件(如MyCat等),识别解析客户端的所有请求,将所有的写操作映射到master节点,而读操作都转到slave从库上(支持一主多从的读写分离,多主多从的还是需要引入中间件实现)
2023-08-18 10:23:59 566 1
原创 线程池详解
本文从线程的创建方式为引入点,详细论述了线程池的基本概念、部分源码及常见的使用方法等。基本囊括了工作中用到的线程池的各种情况及使用方法,可供初级开发者用作线程池的学习资料,中高级开发者的问题排查手册。
2023-07-02 12:07:45 241 2
原创 SimpleDateFormat的线程安全性问题
在日常开发中,我们经常会用到时间,我们有很多办法在Java代码中获取时间。但是不同的方法获取到的时间的格式都不尽相同,这时候就需要一种格式化工具,把时间显示成我们需要的格式。最常用的方法就是使用类。这是一个看上去功能比较简单的类,但是,一旦使用不当也有可能导致很大的问题。提起SimpleDateFormat类,想必做过Java开发的程序员都不会感到陌生。这里,为什么说Simple DateFormat 类有线程安全问题呢?
2023-06-04 16:27:37 1160 1
原创 由浅入深剖析 Apollo(阿波罗)架构
Apollo(阿波罗)是携程框架部研发并开源的一款生产级的配置中心产品,它能够集中管理应用在不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。Apollo 目前在国内开发者社区比较热,在Github上有超过 5k 颗星,在国内众多互联网公司有落地案例,可以说 Apollo 是目前配置中心产品领域 Number1 的产品,其成熟度和企业级特性要远远强于 Spring Cloud 体系中的 Spring Cloud Config 产品。
2023-05-28 16:34:09 3705 1
原创 单元测试规范
单元测试通常的没有一个良好的通用规范,因此本文在阅读大量文章资料的基础上结合开发中自己的心得体会总结出一版单元测试的规范和指南。
2023-05-09 11:45:13 3026 1
原创 Java中的日期时间类详解
Java早期通过使用Date来计算时间,后来大部分Date类的方法都过时了,又转而希望用Calendar类代替Date类,然而Calendar类也是不尽如人意。因此专门在本文中对Java中Date类的基本概念、常见操作及相关类进行总结和归纳,方便日后的开发,希望对大家有所帮助。
2023-04-29 18:53:55 17038 4
原创 Java8 并行流(parallelStream)原理分析及注意事项
众所周知,Java 使用Stream流做多线程处理是非常方便的。随着并行编程越来越流行,Java从1.7就开始提供了Fork/Join 支持并行处理,并且在1.8版本进一步加强了相关功能。并行处理就是将任务拆分子任务,分发给多个处理器同时处理之后进行合并。本文将会对并行流(parallelStream)原理分析及注意事项进行详细介绍。
2023-04-16 17:37:32 29021 2
原创 Stream流和ParallelStream并行流详解及对比
本文详细介绍了Stream流的基本概念和用法,最后简单介绍了parallelStream并行流及与Stream流的对比。通过上述内容基本对工作中可能遇到的概念及常用方法进行了梳理,希望本文可以给读者带来帮助。
2023-04-05 17:16:44 4752 2
原创 接口和抽象类
接口和抽象类看上去十分类似,但是深入挖掘的话会发现许多的异同。本文简单介绍了两者特点及区别。在很多情况下,接口优于抽象类。因为接口没有抽象类严格的类层次结构要求,可以灵活地为一个类添加行为。并且从Java8开始,接口也可以有默认的方法实现,使得修改接口的成本降低。简而言之,抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。
2022-12-07 21:13:22 147 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人