多线程 编程模型线程 安全名词串行、并发和并行 串行:一个人,将任务一个一个完成 并发:一个人,有策略地同时做多件事情 并行:多个人,每人做一个事情 竞态 名词 竞态 共享变量 竞态产生的条件 read-modify-write check-then-act 线程安全性 如果一个类在多线程环境下无需做任何改变也能运作正常 ......
288
0
0
2023-05-24
一、搭建注册中心1.1 需求分析回顾技术方案如下: 分布式系统认证技术方案1、UAA认证服务负责认证授权。 2、所有请求经过网关到达 微服务 。 3、网关负责 鉴权 客户端以及请求转发。 4、网关将token解析后传递给微服务,微服务进行授权。1.2 注册中心所有的微服务的请求都经过网关,网关从认证中心读取微服务的地址,将请求转发至微服务,注册中心采用Eur ......
386
0
0
2023-05-24
SpringBoot2.x中使用@Scheduled创建定时任务POM 包导入 pom 包里面只需要引入springboot starter包即可 <dependencies> <dependency> <groupId>org.springframework.boot</groupId&gt ......
280
0
0
2023-05-24
Java数据类型最全讲解首先我们得知道,java有两大数据类型: 基本数据类型 (又叫内置数据类型) 引用数据类型 基本数据类型比较简单,就是int、long这样的,引用数据类型类似c++的指针,它指向一个对象,我们用的所有的对象或数组都属于引用数据类型,它的默认值都是null。 本篇文章关注的是基本数据类型,但是同时也会说明这些基本类型对应的包装 ......
273
0
0
2023-05-24
什么是 线程池 在 Java 中,创建一个线程可以通过继承Thread或者实现Runnable接口来实现,但是,如果每个请求都创建一个新线程,那么创建和销毁线程花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。为了解决这个问题,就有了线程池的概念,线程池的核心逻辑是提前创建好若干个线程放在一个容器种。如果有任务需要处 ......
216
0
0
2023-05-24
概念Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。 Stream` 的操作符大体上分为两种:`中间操作符`和`终止操作符中间操作符 对于数据流来说,中间操作符在执行指定处理程序后,数据流依然可以传递给下一级的操作符。 中间操作符包含8种(排除了parallel,seq ......
236
0
0
2023-05-23
1:事务原理1.1:aop/动态代理类路径:org/springframework/aop/framework/ cglib AopProxy.java ReflectiveMethodInvocation#proceed 后续: 作用:采用aop/动态代理的作用是为了在调用@ transaction al 注解修饰的方法之前,对目标方法做一次增强。 1 ......
278
0
0
2023-05-23
集合就是一组数的集合,就像是一个容器,但是我们应该清楚的是集合中存放的都是对象的引用,而不是真正的实体。而我们常说的集合中的对象其实指的就是对象的引用。 我们可以把集合理解为一个小型数据库,用于存放数据,我们对集合的操作也就是数据的增删改查,在 Java 中有两个顶层接口 Collection 和 Map 用于定义和规范集合的相关操作。这篇文章主要说一下集合 ......
330
0
0
2023-05-23
前言多线程 大家肯定都不陌生,理论滚瓜烂熟,八股天花乱坠,但是大家有多少在代码中实践过呢?很多人在实际开发中可能就用用@Async,new Thread()。 线程池 也很少有人会自己去建,默认的随便用用。在工作中大家对于多线程开发,大多是用在异步,比如发消息,但是对于提效这块最重要的优势却很少有人涉及。因此本篇文章会结合我自己的工作场景带大家去发掘项目中的 ......
291
0
0
2023-05-23
前言通过前面数据结构与算法基础知识我们知道了数据结构的一些概念和重要性,那么我们今天总结下线性表相关的内容。当然,我用自己的理解解分享给大家。 其实说实话,可能很多人依然分不清 线性表 , 顺序表 ,和 链表 之间的区别和联系! 线性表: 逻辑结构 , 就是对外暴露数据之间的关系,不关心底层如何实现,数据结构的逻辑结构大分类就是 ......
272
0
0
2023-05-23
目录一、概述1、统一异常处理介绍2、原理和目标二、Assert(断言)1、概述2、Assert自定义实战2.1 自定义接口Assert2.2 自定义异常2.3 Enum整合2.4 实战检测三、统一异常处理器1、异常处理器说明1.1 handleServletException1.2 handleBindException和handleValidExcepti ......
308
0
0
2023-05-23
系统架构师思考 秒杀活动是指网络商家为促销等目的组织会网上限时抢购活动,这种活动具有瞬时并发量大、库存量少和业务逻辑简单等特点。 设计一个秒杀系统需要考虑的因素很多,比如对现有业务的影响、网络带宽消耗以及超卖等因素。本文会讨论秒杀系统的各个环节可能存在的问题以及解决方案。 四大核心课题思考 一、 Jvm 调优(调优原理,上线调优细节,掌握基 ......
277
0
0
2023-05-23
1 Byte Buddybyte Buddy 是一个代码生成和操作库,用于在 Java 应用程序运行时创建和修改 Java 类,而无需编译器的帮助。除了 Java 类库附带的代码生成实用程序外,Byte Buddy 还允许创建任意类,并且不限于实现用于创建运行时代理的接口。此外,Byte Buddy 提供了一种方便的 API,可以使用 Java 代理或 ......
389
0
0
2023-05-23
前文提到在 create bean Instance 中实例化 Bean一共有四种方式:Supplier 回调 :obtainFromSupplier()工厂方法初始化:instantiateUsingFactoryMethod()构造函数自动注入初始化:autowireConstructor()默认构造函数注入:instantiateBean()这篇就来分 ......
263
0
0
2023-05-23
目录一、引入类型别名二、typeAlias的三种配置方式三、TypeAliasRegistry源码分析三种配置方式源码解析校验过程Mybatis默认的别名配置四、总结一、引入类型别名当配置 XML 文件,需要指明Java类型时,类型别名可替代Java类型的全名,一般会设置一个简单缩写的类型别名去替代它,用于XML配置,以降低冗余的全限定类名书写。(说白了其作 ......
286
0
0
2023-05-23