- 博客(52)
- 收藏
- 关注
原创 J.U.C并发工具【CountDownLatch,Semaphore,CyclicBarrier】底层源码
J.U.C并发工具【CountDownLatch,Semaphore,CyclicBarrier】底层源码
2022-07-04 17:10:57
124
原创 简单搭建微服务springCloudNetflix服务【Gateway网关服务中间件】(七)
简单搭建微服务springCloudNetflix服务(一)简单搭建微服务springCloudNetflix服务【添加ribbon中间件】(二)简单搭建微服务springCloudNetflix服务【添加Eureka中间件】(三)简单搭建微服务springCloudNetflix服务【添加OpenFeign中间件】(四)简单搭建微服务springCloudNetflix服务【添加Nacos配置中心中间件】(五)简单搭建微服务springCloudNetflix服务【Hyxtrix服务保护中间件】
2022-02-18 18:20:17
720
原创 简单搭建微服务springCloudNetflix服务【Hyxtrix服务保护中间件】(六)
简单搭建微服务springCloudNetflix服务【Hyxtrix服务保护中间件】(六)
2022-01-25 14:49:52
410
原创 简单搭建微服务springCloudNetflix服务【添加Nacos配置中心中间件】(五)
简单搭建微服务springCloudNetflix服务【添加Nacos配置中心中间件】(五)
2022-01-21 14:48:30
646
原创 简单搭建微服务springCloudNetflix服务【添加OpenFeign中间件】(四)
简单搭建微服务springCloudNetflix服务【添加OpenFeign中间件】(四)
2022-01-19 15:29:10
1933
原创 简单搭建微服务springCloudNetflix服务【添加Eureka中间件】(三)
简单搭建微服务springCloudNetflix服务【添加Eureka中间件】(三)
2022-01-18 13:39:41
293
原创 简单搭建微服务springCloudNetflix服务【添加ribbon中间件】(二)
简单搭建微服务springCloudNetflix服务【添加ribbon中间件】(二)
2022-01-13 18:12:23
292
原创 java支付宝APP下单【服务端接入流程】
App 支付 API 必须通过支付宝提供的服务端 SDK 来调用。 private AlipayClient getAlipayClient() { // GATEWAY=网关,APP_ID,private_key return new DefaultAlipayClient(GATEWAY, APP_ID, PRIVATE_KEY, "json", "UTF-8", PUBLIC_KEY, "RSA2"); }public boolean createAppO
2021-12-06 10:39:38
1099
1
原创 微信APP下单API【V3版本】
APP下单API接口说明适用对象: 直连商户请求URL:https://api.mch.weixin.qq.com/v3/pay/transactions/app请求方式:POSTpom文件包<dependency> <groupId>com.github.wechatpay-apiv3</groupId> <artifactId>wechatpay-apache-httpclient</a
2021-11-22 17:47:01
1264
1
原创 通过一个接口查找实现该接口的所有的实现类【工具包ClassUtils】
通过一个接口查找实现的类工具包ClassUtils```javapublic class ClassUtils { // 给一个接口,返回所有接口的实现类 public static List<Class> getAllClassByInterface(Class c) throws Exception { List<Class> resultClassList = new ArrayList<>(); // 返回结果
2020-12-15 15:03:13
1115
原创 常用的mysql存储引擎选择
存储引擎的选择在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统中,还可以根据实际情况下选择不同的存储引擎进行组合。以下是几种常用的存储引擎使用的环境。**InnoDB:**是mysql5.5以后默认的存储引擎,用于事务处理应用程序,支持外键,行级锁。如果应用对事务级别的完整性要求比较高的情况下,在并发条件要求数据的一致性,数据操作除了插入和查询意外,还包含很多的更新,删除,修改操作,那么InnoDB存储引擎是比较合适的选择。InnoDB存储引擎除了有效的降低由于删除
2020-09-06 20:19:21
206
原创 MySql体系图大概讲解
MySql体系图如下:MySql体系同类时于我们的外部开发的三层架构类时,在我们学习外面开发架构时,假设前台给我们发送请求时传入到Controller接收信息,Controller调用Service,Service调用Dao访问数据库,这就时外部开发的三层架构。但是在MySql架构当中,首先我们看到最上面的这个部分代表的就是客户端,在客户端当中我们久只认识JDBC,在我们程序当中就可以用JDBC操作我们的MySql。Connectors就可以理解就MySql的连接端。第一层:MySql的Serv
2020-09-03 15:36:40
365
原创 MySql采用的存储引擎MyISAM和InnoDB
MySql体系结构图MySql插拔式的存储引擎插拔式引擎式Mysql中非常优秀设计,它可以动态的卸载加载存储引擎,通过一种插件化的方式进行加载,在mysql当中有非常多的存储引擎比如:MyISAM,InnoDB,Cluster等等存储引擎。在上面图片中Memory旁边有个索引Index。index索引的落地并非是MySql来实现的。是通过不同的存储引擎来实现的索引机制。MyISAM是MySql5.5以前默认的存储引擎,InnoDB是5.5以后的默认版本存储引擎。存储引擎是用来修饰表的,一张表有
2020-08-31 14:18:47
245
原创 MySql数据库索引的选择B+的过程
MySql数据库索引的选择B+的过程索引的本质:数据库索引是一种为了加速数据表中行记录检索的数据结构,且是一种分散存储的结构,而且这种数据结果是存储在我们的磁盘当中,所以我们对数据库的一个本质就是数据结构。索引的工作机制: 我们都知道索引是加速数据行的一个检索,可以提示这样的一个查询性能,这是怎么做到的呢,这里有一张表,假设有很多数据,每一条数据都会存储在我们的一个磁盘中,每个数据都会有对应的磁盘地址,如果我们就单纯的给数据库发起一条查询语句select * from t_user whe
2020-08-28 19:55:54
451
原创 JVM-新老年代垃圾回收器
垃圾回收器图表Serial新生代 & Serial OId 老年代 的垃圾收集器组合Serial是针对新生代的垃圾收集器,采用复制算法Serial OId是老年代的垃圾收集器,采用标记-整理算法Serial这套垃圾收集器组合特点是单线程垃圾回收器**STW:**Java中Stop-The-World机制简称STW,是在执行垃圾收集算法时,Java应用程序的其他所有线程都被挂起(除了垃圾收集帮助器之外)。Java中一种全局暂停现象,全局停顿,所有Java代码停止,native代码可以
2020-08-21 18:18:23
1031
原创 JVM-三大垃圾回收算法
垃圾回收分类:Minor GC:新生代--------------------------->指Young区的垃圾回收过程Major GC:老年代--------------------------->指OId区的垃圾回收过程FuII GC:新生代+老年代---------------->Yound区和OId区一起执行的垃圾回收过程Major GC不能单独存在。Major GC 都会伴随着Minor GC触发垃圾回收当Eden区或者S区不够用了老年代空间不够用了
2020-08-21 15:13:47
558
原创 java-四种引用类型【强-软-弱-虚】
在JVM的运行中还存有其他的引用类型。在JAVA中四种不同的引用类型【强,软,弱,虚】强引用对于强引用对象,就算是出现了OOM也不会对该对象进行回收强引用是我们最常见的普通对象引用,只要还是强引用指向一个对象,就表明这个对象还活着,垃圾收集器不会碰这种对象软引用软引用是一种相对强引用弱化了一些的引用,需要java.lang.ref.SoftReference类来实现当系统内存充足的时候,不会被回收;当系统内存不足时,才会被回收比如:高速缓存就可以用到软引用,内存够时就保留,不够时就被
2020-08-18 23:15:12
167
原创 java-结构型模式[享元模式]
结构型模式[享元模式]一、享元模式的定义与类型:定义:提供了减少对象数量从而改善应用所需的对象结构的方式运用共享,有效地支持大量细粒度的对象类型:结构型俗话解:减少对象的创建数量,降低内存消耗,节省运行时间等角色:● Flyweight——抽象享元角色它简单地说就是一个产品的抽象类,同时定义出对象的外部状态和内部状态的接口或实现。● Concrete Flyweight——具体享元角色具体的一个产品类,实现抽象角色定义的业务。该角色中需要注意的是内部状态处理应该与环境无关,不应该出
2020-08-08 09:25:28
112
原创 java-结构型模式【组合模式】
结构型模式【组合模式】树形结构不论在生活中或者是开发中都是一种非常常见的结构,一个容器对象(如文件夹)下可以存放多种不同的叶子对象或者容器对象,容器对象与叶子对象之间属性差别可能非常大。由于容器对象和叶子对象在功能上的区别,在使用这些对象的代码中必须有区别地对待容器对象和叶子对象,而实际上大多数情况下我们希望一致地处理它们,因为对于这些对象的区别对待将会使得程序非常复杂。组合模式为解决此类问题而诞生,它可以让叶子对象和容器对象的使用具有一致性。组合模式(Composite Pattern):组合
2020-08-05 14:30:53
164
原创 java-结构型模式[桥接模式]
结构型模式[桥接模式]桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。桥接(Bridge)模式的优点是:由于抽象与实现分离,所以扩展能力强;其实现细节对客户透明。缺点是:由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,这增加了系统的理解与设计难度。模式的结构桥接(Bridge)模式包含以下主要角色。1.抽象化(Abstraction)角色:定义抽象类,并包含一个对实现
2020-08-04 08:10:20
120
原创 JVM-方法区演化过程
方法区:Java虚拟机规范中明确说明:尽管所有的方法区在逻辑上是属于 堆的一部分,但是一些简单的实现,可能不会选择去进行垃圾 收集或者进行压缩。所以我们将方法区叫Non-Heap(非堆),目的就是要和堆分开(1)方法区的生命周期与JVM进程一致(2)存储已被虚拟机加载的类型信息(接口,类,枚举,注解都被存储在方法区),方法信息,域信息,运行时常量,静态变量(不同版本不一样),即时编译器(JIT)编译后的代码(3)运行时常量池属于Method Area中的一部分 (4)方法区从逻辑上来理解其本身也属
2020-08-03 23:12:39
438
1
原创 java-结构型模式【门面模式/外观模式】
结构型模式【门面模式/外观模式】门面模式要求一个子系统外部与其内部通信必须通过一个门面对象进行,门面模式是一个高层次的接口,使得外部与子系统内部的复杂性相隔离。上图出现了两个角色:门面角色:客户端可以调用这个角色的方法。此角色知晓与其相关的一个或多个子系统的功能,本角色会把客户端发来的请求委派到相应的子系统去。子系统角色:可以有一个或多个子系统。每个子系统都不是一个单独的类,而是一个类的集合。子系统可以直接被客户端调用,也可以被门面调用,对子系统而言,门面仅仅是另一个客户端而已。每个子系统通
2020-08-03 20:30:27
139
原创 JVM-java文件到运行在JVM过程
JVM官方介绍:1)JVM是JAVA平台基石,负责屏幕操作系统跟硬件,保护我们的程序免受恶意攻击。2)JVM是虚拟的计算机,独立的指令集及不同运行内存区域。3)JVM对JAVA的语法不感冒,JVM只在乎Class File 字节码文件。4)JVM能够运行有效的Class file的文件,JVM是一个多语言平台java文件到运行在JVM过程如图下:java到Class过程:javac解析过程:词法分析器->语法分析器->语法树/抽象语法树->语义分析器->注解抽象语法树
2020-07-31 14:28:09
913
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人