自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JDK8 Stream性能测试,看看到底有多快

JDK8 Stream性能测试,看看到底有多快JDK8 Stream 数据流效率分析Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型:Stream 代表对象引用流。此外还有一系列特化流,如 IntStream,LongStream,DoubleStream等 ),Java 8 引入的的Stream主要用于取代部分Collection的操作,每个流代表一个值序列,流提供一系列常用的聚集操作,可以便捷的在它上面进行各种运算。集合

2021-07-01 16:35:10 279

转载 JDK 1.8 流式编程在数据处理方面的应用

JDK 1.8 流式编程在数据处理方面的应用Stream流式编程在JDK 1.8版本中与Lambda表达式一起推出,这一特性标志着JDK 1.8成为Java历史上的又一里程碑。之前在公司接手的关于数据分析及展示需求中就会频繁地使用到Stream流式编程。今天来看一看Stream流式编程在数据分析方面的应用及原理,并且这里会再次带大家回顾一下Lambda表达式的使用。一、Lambda表达式1.1、基本使用在介绍Stream流式编程之前,需要先了解Lambda表达式的使用及基本原理。一般使用Lam

2021-07-01 16:34:23 212

原创 Java日期时间API系列37-----时间段是否有重叠(交集)的计算方法

Java日期时间API系列37-----时间段是否有重叠(交集)的计算方法在日程安排或预约排期等场景中,经常会需要对比2个或多个时间段是重叠的功能,我经过整理和验证,发现了下面的算法比较好一些,分享一下。1.只有2个时间段的情况例如:存在区间A、区间B,重叠的情况很多,但不重叠的情况只有2种,A在B前或者B在A前。如图:得出,不重叠算法:A.end< B.start || A.start > B.end那么重叠的算法对上面取反就可以了:! (A.end< B.start ||

2021-07-01 16:33:33 3756

原创 Java设计模式|建造者模式Builder Pattern

Java设计模式|建造者模式Builder Pattern前言:在日常生活中,我们可能会遇到这一类型的需求,例如一个实体类里有很多个属性,但是我们只想要其中的几种组合成一个新的对象,这个时候就可以使用建造者模式了,它提供了一种创建对象的最佳方式。建造者模式虽然比较好用,但是大家平时写代码的时候要谨记,不要滥用设计模式,不然的话可能会适得其反啊!建造者模式介绍:建造者模式又被称呼为生成器模式,这种类型的设计模式属于创建型模式,使用多个简单的对象一步一步构建成一个复杂的对象,将一个复杂对象的构建与它

2021-06-29 17:31:11 112 1

原创 JDK 序列化, 碰到serialVersionUID 不一致问题,怎么处理?

JDK 序列化, 碰到serialVersionUID 不一致问题,怎么处理?公司有个子服务较多,交互频繁的系统,有一些需要共享传输的对象,它们通过 JDK 序列化(Java Object Serialization)后进行交互;但是由于一些不可描述的历史原因,这些对象存在多个版本,每个版本中的属性不一致,且未设置 serialVersionUID。这阵子在做梳理/统一代码的工作,打算统一这些对象的版本和固定serialVersionUID,但是由于服务较多,上线发版时会有一段新老版本共存的时期,所以得

2021-06-25 17:32:17 322

原创 Java设计模式|建造者模式Builder Pattern

Java设计模式|建造者模式Builder Pattern前言:在日常生活中,我们可能会遇到这一类型的需求,例如一个实体类里有很多个属性,但是我们只想要其中的几种组合成一个新的对象,这个时候就可以使用建造者模式了,它提供了一种创建对象的最佳方式。建造者模式虽然比较好用,但是大家平时写代码的时候要谨记,不要滥用设计模式,不然的话可能会适得其反啊!建造者模式介绍:建造者模式又被称呼为生成器模式,这种类型的设计模式属于创建型模式,使用多个简单的对象一步一步构建成一个复杂的对象,将一个复杂对象的构建与它

2021-06-25 17:31:33 77

原创 Java测试框架系列:PowerMock使用系列-3:抑制不想要的行为

Java测试框架系列:PowerMock使用系列-3:抑制不想要的行为抑制不想要的行为总览在测试用例的类上使用 @RunWith(PowerMockRunner.class)注解。在测试用例的类上结合使用@PrepareForTest(ClassWithEvilParentConstructor.class)和suppress(constructor(EvilParent.class))注解,以禁止调用EvilParent类的所有构造函数。使用Whitebox.newInstance(Class

2021-06-25 17:30:46 717

原创 MQ选型对比RabbitMQ RocketMQ ActiveMQ Kafka(外加redis对比及其实现)

MQ选型对比RabbitMQ RocketMQ ActiveMQ Kafka(外加redis对比及其实现)rocketmq 4.3开始支持事务https://www.cnblogs.com/hzmark/p/rocket_txn.html参考:rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较redis vs rabbitmq可靠消费Redis:没有相应的机制保证消息的消费,当消费者消费失败的时候,消息体丢失,需要手动处理RabbitMQ:具有消息消费确认,即使

2021-06-24 13:58:14 272

原创 MQ - RocketMQ底层原理和源码解析

RocketMQ底层原理和源码解析本文的内容主要包括:MQ的对比和选型、RocketMQ原理、RocketMQ源码解析、事务消息。Rocketmq性能压测客户端:https://github.com/Force-King/rocketmq-test一、MQ的对比和选型目前业界主要的消息中间件有:ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。其中开源的,社区比较活跃的是ActiveMQ、RabbitMQ、Kafka、RocketMQ。所以,我们做技术选型

2021-06-24 13:57:30 175

原创 JVM收集器CMS与G1区别和优缺点分析

【JVM性能优化】问题故障排查的解决方案(上)前提概要线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top三连,然后依次jstack、jmap伺候,具体问题具体分析即可。CPU的问题一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。

2021-06-24 13:56:31 597

原创 Spring源码系列- Spring Beans - 核心类的基本介绍

Spring源码系列- Spring Beans - 核心类的基本介绍读过上一篇文章的读者应该都能对Spring的体系结构有一个大致的了解,在结尾处,我也说过会从spring-beans包开始分析,在重复一下beans它主要与配置文件的解析、管理、创建bean及IOC/DI相关。beans和context就是Spring实现IOC容器的基础,当然在本章只会提及beans不会提及context当然在以后的文章会提及到context包在beans包中最核心的的一个类之一就是DefaultListableB

2021-06-23 14:33:12 226

原创 Spring源码系列 — Bean生命周期

Spring源码系列 — Bean生命周期前言上篇文章中介绍了Spring容器的扩展点,这个是在Bean的创建过程之前执行的逻辑。承接扩展点之后,就是Spring容器的另一个核心:Bean的生命周期过程。这个生命周期过程大致经历了一下的几个阶段在本节中重点介绍实例化、填充装配、唤醒Aware方法、BeanPostProcessor后置处理、初始化等过程。关于Bean的销毁过程这里不再介绍。由于Bean的生命周期的维护过程实际上都是由BeanFactory负责,所以在开始Bean的生命周期过程详解之前

2021-06-23 14:31:43 155

原创 Spring源码搭建教程(超级简单清晰)(完整版)

Spring源码搭建教程(超级简单清晰)(完整版) Hello,大家好!菜鸟程序员又来写文章了。这次给大家带来的是Spring源码搭建,想学习Spring源码的同学,记得一定要收藏! 1.工具下载(注意版本一定要一致,否则组建时会报错) IntelliJ IDEA 2020.3.1 x64    下载地址:https://www.jetbrains.com/idea/JDK 11.0.7     下载地址:htt

2021-06-22 15:27:34 1109

原创 Spring源码分析(一)

Spring源码分析(一) (Spring 4.3.21) 一:Core Container(核心容器)         spring-core和spring-beans模块提供框架的基础部分,包括IOC和依赖注入特征。这 BeanFactory是工厂模式的复杂实现。它消除了对程序化单例的需求,并允许你从实际程序逻辑中分离依赖项的

2021-06-22 15:26:49 141

原创 Spring源代码分析-代码下载

Spring源代码分析-代码下载一. 简介spring的大名想必做过Java后台的同学都不会陌生,什么spring mvc, spring boot,spring全家桶等等,所以想系统学习下spring的源代码。而学习源代码的话,首先得去下载spring的源代码,目前spring的源代码都开放在github上面,在下面地址,大家去用git clone即可。https://github.com/spring-projects/二. spring结构简介spring有3个基础框架,其他的服务是基于这

2021-06-22 15:26:00 265

原创 从B站到网易,再从网易到阿里,我的跳槽生涯也太顺利了(Java岗面经),你知道怎么面上的嘛?

背景非211大学本科毕业,因实习表现突出留在了B站,后来从B站辗转到了网易,总的算下来也有5年的Java经验了,今年经过朋友内推拿到了阿里的面试机会,最终历经5面斩获了阿里海外购团队的offer,不得不感叹一下自己的跳槽生涯实在是太顺了。下面简单分享一下我这次5面阿里的一个真题情况,希望能够对大家有所帮助。跳槽阿里巴巴(淘宝海外购团队)面经分享:技术面共4轮+HR面阿里巴巴技术一面:按照惯例自我介绍,自我介绍着重讲自己会的一些技术细节、项目经历等等。开始聊项目吧(然后针对项目的细节发问,让我画.

2021-05-23 22:37:38 211

原创 Redis持久化--Redis宕机或者出现意外删库导致数据丢失--解决方案

Redis持久化–Redis宕机或者出现意外删库导致数据丢失–解决方案.Redis持久化的方案其实是很多人接触的比较少的,因为相对应的数据故障不会很多,一次初始化的设置就能保证后续故障的全部顺利解决。本文讲述一下该机制的主要设置方法和持久化方案的对比,同时也会讲述一些持久化的原理。如果对于Redis持久化比较熟悉的希望能够给到你帮助,如果不熟悉的,你大可参考本文对你的Redis进行设置。什么是Redis的持久化?可能很多人很少接触这个词,总觉的我们Redis的所有数据都是全部能够永久存储的。然而你

2021-05-22 20:09:43 392

空空如也

空空如也

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

TA关注的人

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