自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IDEA查看Jar包是由哪个依赖引入的

IDEA查看Jar包是由哪个依赖引入的

2024-01-16 09:47:56 1342 1

原创 22.高并发秒杀

高并发秒杀场景,通过分布式锁解决超卖以及一人多单问题。

2023-03-30 22:09:44 199

原创 3.5 Optional类

1.简介Optional类位于java.util包下,是一个可以为 null 的容器对象,如果值存在则isPresent()方法会返回 true ,调用 get() 方法会返回该对象,可以有效避免空指针异常。

2023-03-30 21:57:39 184 1

原创 3.4 流式操作

1.简介(1).概念Stream是数据渠道,用于操作数据源所生成的元素序列,它可以实现对集合的复杂操作,例如过滤、排序和映射等。集合是一种静态的数据结构,存储在内存中,而Stream是通过CPU来实现计算的(并不会存储数据)。Stream不会改变源对象,而是返回一个新的持有结果的Stream(不可变)。

2023-03-30 21:54:28 241

原创 3.3 方法引用

1.简介(1).概念方法引用本质上就是Lambda表达式,Lambda表达式是函数式接口的实例,所以说方法引用也是函数式接口的实例。(2).使用场景当要传递给Lambda体的操作,已经有实现的方法了,就可以使用方法引用。(3).使用条件接口中的抽象方法的形参列表和返回值类型与方法引用的方法形参列表和返回值相同。

2023-03-30 16:54:22 76

原创 3.2 Lambda表达式

1.简介Lambda表达式实际上就是接口实现类的对象,它简化了之前匿名内部类的冗长代码的编写。Lambda表达式能使代码变得更加紧凑,增强代码的可读性。另外,Lambda表达式使并行操作大集合变得很方便,可以充分发挥多核CPU的优势,更易于为多核处理器编写代码。

2023-03-30 16:05:09 59

原创 3.1 函数式接口

1.简介只有一个抽象方法的接口,就是函数式接口(Functional Interface),可以通过Lambda表达式来创建函数式接口的对象。Java中的Lambda表达式就是一个函数式接口的对象,之前使用匿名实现类表示的对象,都可以使用Lambda表达式来表示。

2023-03-30 16:02:01 57

原创 批量分批处理

1.分割 2.处理

2023-03-27 10:40:58 75

原创 21.CompletableFuture

1.使用场景(1).提交任务runAsync:无返回值supplyAsync:有返回值(2).两个任务编排thenRunAsync:不能接收上一次的执行结果,也没返回值thenAcceptAsync:能接收上一次的执行结果,但没返回值thenApplyAsync:能接收上一次的执行结果,又可以有返回值(3).三任务编排runAfterBothAsync:前两个任务都完成,才执行任务3,不感知任务1、2的结果,也没返回值thenAcceptBothAsync:前两个任务都完成,才执行任

2023-03-27 10:22:46 96

原创 xxl-job

1.构建本地数据库2.修改配置(1).admin数据库密码(2).admin日志路径(3).sample日志路径3.启动后,访问http://localhost:8080/xxl-job-admin,默认登录账户名admin,登录密码123456。5.继承IJobHandler的模式。(1).admin数据库密码。(3).sample日志路径。(2).admin日志路径。

2023-03-21 15:58:32 106

原创 8.多模块项目

1.创建父工程(1).创建movies_parent工程(2).删除无用文件

2023-03-19 19:00:13 81

原创 7.Maven隔离

1.简介在企业项目开发时,开发环境和生产环境的配置信息是不一样的,比如连接MySQL、Redis等配置,如果每次部署或者开发都要更改配置文件就太麻烦了,这时就可以使用Maven的环境隔离。

2023-03-19 18:56:12 116

原创 6.Maven继承

1.简介在Maven项目中,多个项目之间会重复使用同一个构建,为了提高构建利用率,可以将其抽出来单独作为父构建,使新项目继承此父构建。

2023-03-19 17:37:19 106

原创 5.Maven聚合

1.简介多个本地Maven项目如果都要安装到本地仓库中,就要依次执行install 命令,Maven提供了只需执行一次install即可将多个项目全部安装至本地仓库的方式,这种方式就叫做聚合。

2023-03-19 17:09:13 74

原创 4.Maven依赖

1.依赖范围一个项目要想使用别的jar包提供的功能,需要通过依赖将jar包引入到项目的classpath路径中。Maven提供了编译、测试、运行三种classpath,因此,依赖范围就是控制依赖与三种classpath的关系,依赖范围有以下5个取值。

2023-03-19 16:50:55 440

原创 3.pom文件详解

1.pom配置2.build配置项

2023-03-19 01:25:55 140

原创 2.Maven示例

1.编写(1).新建一个Maven工程

2023-03-18 21:57:59 79

原创 1.Maven简介

1.概念Maven是一个项目管理工具,它包含了一个项目对象模型、一组标准集合、一个项目生命周期以及一个依赖管理系统,当使用Maven时,用一个明确定义的项目对象模型来描述项目,然后Maven可以应用横切的逻辑(共享或者自定义的插件)。

2023-03-18 16:55:38 87

原创 从头开始学Maven

1.Maven简介2.Maven示例3.pom文件详解4.Maven依赖5.Maven聚合6.Maven继承7.Maven隔离8.多模块项目

2023-03-18 16:29:26 73

原创 2.5 FastJSON

1.简介FastJSON是一个Java语言编写的标准的JSON库,可以将Java对象转换为JSON格式,也可以将JSON字符串转换为Java对象。2.常用方法(1).JavaBean类

2023-03-17 09:04:11 74

原创 2.4 对象的序列化与反序列化

1.简介(1).序列化把对象转换为字节序列的过程称为对象的序列化。(2).反序列化把字节序列恢复为对象的过程称为对象的反序列化。(3).为什么要进行序列化或者反序列化程序在运行时实例化出对象,这些对象存在于内存中,随着程序运行停止而消失,但如果想把某些对象(一般都是各不相同的属性)保存下来或者传输给其它进程,在程序终止运行后这些对象仍然存在,可以在程序再次运行时读取这些对象的信息,或者在其他程序中利用这些保存下来的对象信息恢复成实例对象。这种情况下就要使用对象的序列化和反序列化。

2023-03-17 09:04:02 64

原创 2.3 Java注解

1.简介(1).概念为程序元素(字段、方法、类、包)设置额外信息,然后在编译或者运行时使用。(2).功能作为特定的标记,用于告诉编译器一些信息:@Override编译时动态处理,动态生成代码:@Dada运行时动态处理,作为额外信息的载体:@Controller @Service @Repository

2023-03-17 09:03:51 52

原创 2.2 Java反射

1.简介(1).概念反射是指程序在运行时,可以动态获取对象所有成员和方法,并且对其进行访问或修改的机制。(2).Class类类是用来描述事物的,那么描述类的类就是Class类。Class类的对象只能由JVM创建,JVM中只有唯一一个和类相对应的Class对象。(3).reflect类库Field:表示类中的成员变量Method:表示类中的成员方法Constructor:表示类中的构造方法

2023-03-17 09:01:40 42

原创 2.1 Java范型

1.简介(1).概念Java允许在定义方法、类和接口时不指定具体的数据类型,而是在范型方法被调用、范型类被实例化、范型接口被实现时再指定具体数据类型,这样便可以让数据类型变得参数化。(2).范型擦除和补偿泛型技术是给编译器使用的,编译器在检查完后,生成的.class文件中不带泛型,原因是泛型是 JDK5.0以后出现的技术,类加载器不能识别,这叫做擦除。在运行过程中,又带有泛型,原因是类加载器获取.class字节码文件,根据运行时类中的数据类型,进行类强制转换,这叫做泛型补偿。

2023-03-16 10:25:36 64

原创 1.8 内存溢出实战

1.代码示例2.设置堆最小和最大内存并让应用在堆内存溢出的时候,进行一次堆Dump

2023-03-16 09:43:58 144

原创 1.7 JVM日志和GC日志

1.JVM参数格式(1).以-开头查看JDK版本。(2).以-X开头设置最大堆内存大小为50m。

2023-03-16 09:43:07 223

原创 1.5 JVM故障排查工具

1.jinfo(1).简介实时查看和调整当前JVM的各项参数。

2023-03-16 09:40:29 170

原创 1.6 JVM可视化工具VisualVM

1.简介VisualVM是JDK内置的可视化工具,使用jvisualvm命令打开。2.概述显示应用的概要信息。

2023-03-16 09:39:48 226

原创 1.4 JVM监控工具

1.jps 查看JVM性能相关信息的监控工具,最主要的就是垃圾回收,显示堆内存的使用情况。查看JVM进程信息的监控工具。

2023-03-16 09:38:36 68

原创 1.3 垃圾收集器

1.术语(1).吞吐量CPU用于运行用户代码的时间与CPU总消耗的比值。(2).全局停顿(Stop The World)是在垃圾回收过程中,需要将JVM内存冻结的一种状态。在全局停顿状态下,除GC线程外,Java其它线程都是停止执行的,本地方法可以执行,但是无法与JVM交互。JVM调优就是尽量减少全局停顿时间,但是并不是越小越好,因为全局停顿时间的减少是以牺牲吞吐量和新生代空间为代价的。(3).并行收集指多个垃圾回收线程并行工作,但在回收过程中,用户线程处于等待状态。(4).并发收集用

2023-03-16 09:29:59 60

原创 1.1 JVM内存结构

1.简介JVM内存结构包含五块区域,分别为线程私有的程序计数器、虚拟机栈、本地方法栈,以及线程共享的堆和方法区。

2023-03-16 09:29:40 69

原创 1.2 垃圾回收机制

1.什么场景下该使用什么垃圾回收策略?(1).对内存要求苛刻的场景想办法提高对象的回收效率,尽可能的多回收一些对象,腾出更多内存(2).在CPU使用率较高的情况下降低高并发时垃圾回收频率,让CPU更多地去执行业务而不是垃圾回收

2023-03-16 09:29:11 61

原创 从头开始学Java基础

第一章 JVM1.1 JVM内存结构 1.2 垃圾回收机制

2023-03-16 09:24:26 76

原创 2.9 监听器模式

1.定义监听器模式,主要由3个角色组成,事件、监听器和事件发布器,其核心流程是由事件发布器发布事件,在事件发布前后放置监听器。2.优点监听器模式更加灵活,可以对不同事件作出相应。

2023-03-15 16:57:04 71

原创 2.8 观察者模式

1.定义定义了对象之间一对多的依赖,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新。举个例子,我在微信朋友圈的某一条动态点赞,那么我就是观察者,动态就是被观察者,当我的好友也评论了该条动态时,微信就会将消息同步给我,而不需要我时刻盯着动态看是否有人评论。2.优点观察者和被观察者之间建立一个抽象的耦合,观察者模式支持广播通信。

2023-03-15 14:53:04 47

原创 2.7 适配器

1.定义将一个类的接口转换成客户期望的另一个接口,使原本接口不兼容的类可以一起工作。2.优点提高类的可复用性,符合开闭原则。

2023-03-15 11:52:52 48

原创 2.6 抽象工厂

1.定义创建工厂的工厂。2.优点易于扩展不同的工厂和产品。

2023-02-10 20:53:07 63

原创 2.5 工厂方法

1.定义创建对象的工作由工厂完成。2.优点屏蔽对象创建的复杂过程,让用户直接使用对象。

2023-02-10 20:38:55 70

原创 2.4 策略模式

1.定义定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化不会影响到使用算法的用户。2.优点符合开闭原则,避免使用多重条件语句。

2023-02-09 21:31:48 68

原创 2.3 模版方法

1.定义定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现。2.优点提高复用性和扩展性。3.结构包括四类方法,模版方法、具体方法、钩子方法和抽象方法。

2023-02-09 21:24:38 73

空空如也

空空如也

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

TA关注的人

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