![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 81
一朵野花2
这个作者很懒,什么都没留下…
展开
-
JVM(三) StackOverFlow和OOM 场景模拟
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-02-17 14:08:15 · 651 阅读 · 0 评论 -
JVM(二) 四种GC算法,以及GC日志分析理解
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-02-17 13:32:27 · 293 阅读 · 0 评论 -
JVM (一) 运行时数据区
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-02-15 19:14:59 · 165 阅读 · 0 评论 -
深入mybatis(二) 一级缓存
mybatis一级缓存在深入mybatis(一)中,我们说到是由BaseExecutor 维护的一级缓存。查询缓存在BaseExecutor 中,查询语句都会经过这里,如下图这里先查询了缓存,如果缓存中有则从缓存中取出,否则queryFromDatabase(),我们看下该方法。 private <E> List<E> queryFromDatabase(MappedStatement ms, Object parameter, RowBounds rowBounds原创 2020-08-19 11:33:46 · 238 阅读 · 0 评论 -
设计模式之-装饰器模式
装饰器模式 所谓装饰器模式,字面意思就是对一个玩意儿进行装饰。举个形象的例子。一个人早上起来得穿衣服,穿裤子吧。洗脸,刷牙,然后抹上发蜡,穿上鞋子,然后再出门,你看,这就是装饰器模式。你每天都在用到装饰器模式。装饰器模式是一个非常灵活,拓展性非常强的设计模式。灵活性体现在哪里呢?比如周末的时候,你不出门,你就可以不穿衣服就穿条大裤衩,洗个脸和刷个牙就行了。 过了一周,胡子长长了,你只需要添加个刮胡子的装饰就行了。代码实现我们的代码 按照给一个人来实现装饰,来形象的说明下装饰器模式,我们需要一下几种角原创 2020-08-18 13:51:44 · 114 阅读 · 0 评论 -
深入学习mybatis(一) Executor 执行器
mybatis 执行流程从图中可以看出大部分业务逻辑主要都在Executor 中得到执行。下面将详细梳理一下Executor的结构。Executor 执行器Executor 是mybatis 执行sql的接口。所有的增删改查,以及其他操作,最终都会由Executor 来执行。它功能主要包括基本功能: 增,删,改,查缓存维护: 执行器Executor 主要维护的是1级缓存服务,主要包括创建缓存,清理缓存,判断缓存是否存在事务管理: 事务提交,回滚,关闭,批处理更新Executor的实现类原创 2020-08-18 11:10:38 · 470 阅读 · 0 评论 -
Netty实战读书笔记-第三章Netty的组件和设计(一)
EventLoop接口一个EventLoopGroup 包含一个或者多个EventLoop一个EventLoop在它的声明周期内只和一个Thread 绑定所有EventLoop处理的IO事件都是在它的专有Thread 上被处理一个Channel 在它的声明周期内只注册一个EventLoop一个Eventloop 可能会被分配给一个或者多个ChannelChannelFutureNetty 中所有的IO操作都是异步的,因为一个操作可能不会被立即返回。ChannelFuture 相当于一个占位原创 2020-08-10 08:35:03 · 409 阅读 · 0 评论 -
springboot使用RestTemplate完全手册
优雅的http客户端注意,我测试的接口返回类型全部是String 类型,所以ResponseType 全部是String.class,所以请根据实际情况,酌情修改!1 不带参数的GET请求 // 方式1: 返回是一个response 对象 ResponseEntity<String> forEntity = restTemplate.getForEntity("http://127.0.0.1:1234/test1", String.class);原创 2020-08-03 20:30:23 · 1002 阅读 · 1 评论 -
Gradle(二) Java 构建
Java插件Gradle 对java的支持,是通过插件实现的。Java 插件是基于合约的,这意味着插件已经给项目的许多方面定义了默认的参数,比如 Java 源文件的位置. 如果你在项目里遵从这些合约,那么只需要很少的配置。引入java插件apply plugin: 'java'或者plugins { id 'java'}然后就可以使用插件中的任务了。java 插件在项目中添加许多任务。通常只会用到其中的一小部分任务。常用的任务有build 编译和测试代码,生成jar包cl原创 2020-07-22 10:15:15 · 192 阅读 · 0 评论 -
Gradle(一) gradle基础
Gradlejava 环境 JDK6以上自带groovy库projects tasksprojects 项目tasks 任务每一个构建都是由一个或者多个projects组成,一个project代表一件想做的事情每一个project 由一个或者多个tasks 构成,一个task 表示更加细化的工作,可能是编译classes 创建一个jar。生成javaDoc,或者生成某个目录的压缩文件。gradle 命令运行一个gradle命令会在当前的目录下寻找一个build.grade的文件,b原创 2020-07-21 19:12:41 · 176 阅读 · 0 评论 -
JAVA注解
注解本质和原理注解的本质就是,定义了一个接口实现了java.lang.annotation.Annotation 接口。我们定义一个注解类,然后进行编译,再反编译。如下,我们定义一个自定义的注解public @interface MyAno { int a() default 0; boolean b() default true; String c() defau...原创 2020-03-22 22:27:03 · 141 阅读 · 0 评论 -
ArrayList 与LinkedList
对比在java集合类中,不管是谁一定都用过如下两种集合。通常我们呢只是会用就行了,记住ArrayList 查询快,增删慢,LinkList刚好相反 查询慢增删快,即可,但是实际真的是这样吗? 下面我们做一个测试,使用的是JDK11 public static void main(String[] args) { ArrayList<Integer> list1...原创 2020-03-22 22:24:53 · 266 阅读 · 0 评论 -
zookeeper 分布式锁理解
基本命令zkService.sh start 启动zkServerzkService.sh stop 停服务端zkCli.sh start 启动客户端zkCli.sh stop 停止客户端zkService.sh status // 客户端状态 默认是standalonenode节点create /路径 节点数据 // 创建持久节点 默认create -s ...原创 2019-08-08 09:21:04 · 1558 阅读 · 0 评论 -
rabbitmq几种交换机的理解以及实践
交换机direct 直连把消息路由到那些binding key与routing key完全匹配的Queuetopic Routing Key必须与Binding Key相匹配的时候才将消息传送给Queue和direct 都需要绑定route-keytopic的#和*,# 表示和多个关键字匹配,* 和一个关键字匹配header 匹配不依赖于route-key和banding...原创 2019-08-08 09:17:52 · 1135 阅读 · 0 评论 -
AOP 切面对象传递
这个大哥是 唯一说的明明白白的,,头发要掉光光的时候,找到了这博文,,先收藏起来,,后面写篇博客再复习一下转载 2019-04-25 17:18:16 · 473 阅读 · 0 评论 -
JSON WEB TOKEN (JWT)
什么是JWT就是token JWT是一种规范。用来生成一种紧凑安全的token,由三部分组成。1 Headerheader主要是两部分信息声明类型加密算法数据如下{'typ':'JWT','alg':'HS256'}然后进行base64加密结果如下eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ92 payloadpayload 是我们to...原创 2019-06-12 19:45:05 · 675 阅读 · 0 评论 -
JAVA 的泛型
java的泛型通常有以下几种符号E 表示Element 通常在集合中使用T 表示Type 类 即ClassK 表示Key 即键V 表示Value 值? extends E 表示集成于E的子集?super E 表示E 的父级...原创 2019-06-08 17:05:29 · 111 阅读 · 0 评论 -
springCloud(Eureka feign hystrix Zuul)学习笔记
Eureka原理其中:Eureka 服务注册组件Region 类似于一个很多机房的一个集群Availability Zon 类似于机房我的理解如下 EUREKA 是一个不同微服务注册的组建。不同的微服务可以注册到一个EurekaServer 上。 注册在EurekaServer上的每个微服务也就成了EurekaClient即Eureka客户端。是Eureka Server 和Eur...原创 2019-06-08 17:33:38 · 247 阅读 · 0 评论 -
SpringCloud 实践
一、Eurela Server环境搭建1 创建一个EurekaServer 添加 EurekaServer的依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-ser...原创 2019-06-08 18:11:21 · 577 阅读 · 0 评论 -
springboot 集成支付宝支付
最简单的springboot集成支付宝1 注册沙箱沙箱是一个模拟环境登录,百度蚂蚁金服开放平台,支付宝扫码登录如下然后沙箱需要注册一下,非常之简单,注册好以后进入到如下页面,选沙箱工具,然后下载一个生成密钥的工具。然后解压按照里面的readme生成公私密钥,选择沙箱应用 上传公钥即可。。沙箱到这里就基本完成了,里面还有沙箱版本的的android app可以下载下来。java 程序...原创 2019-06-11 15:44:48 · 6282 阅读 · 19 评论 -
java并发变成的艺术知识点摘要理解
线程间的通信共享内存访问内存中的公共状态----隐式通信消息传递线程之间没有公共状态-通过发送消息,来显示通信线程之间的同步共享内存方式,需要手动指定不同线程发生顺序 – 显式消息传递,消息的发送必须再消息接收之前,所以是,同步是—隐式的。内存抽象堆: 实例,静态域,数组栈:内存屏障从源代码到指令序列的重排序1 编译器优化重排序2 指令级并行重排序3...原创 2019-07-18 08:48:30 · 130 阅读 · 0 评论 -
java的hascode,equles, 以及基本的几种collection的理解
集合功能存放对象先记录几个知识点。equles 和 ==判断两个对象相等无非就这两个操作,那么有什么区别呢?== 基本数据类型直接比较值,引用数据类型判断引用的地址,即对象的引用内存地址equles是Object的方法。默认equles也是用== 来判断的。。。那么equles意义何在,equles本没有意义,你赋予它灵魂之后,它才有意义,你不赋予它灵魂,它就等价于==举个例...原创 2019-07-22 11:28:34 · 348 阅读 · 0 评论 -
JAVA的泛型
泛型泛型只在编译阶段有效目的是限制输入数据类型如下,如果不指定List的类型,我们是可以将String Integer 或者其它类型的数据添加到list中的,如果误将int数据添加到ArrayList中,而在取出来用的时候,,我们以为全是String 在使用String强制装换的时候会报错。如果在List定义的时候就指定的泛型为String,那么如果我们添加的是Int就会报错。 ...原创 2019-07-22 20:57:59 · 106 阅读 · 0 评论 -
java 入门 第一课 回顾
PATH在dos命令窗口中set classpath 直接去classpath路径找,然后再当前路径找和set path 先去当前路径找 然后再去path路径临时配置时建议不要在末尾加分号 避免找不到但是在本路径下存在相同名字的可执行文件 导致与预期结果不符合。类名命名规范1.类名要遵循大驼峰命名 规范。2.祝类名要保存的名字与.java 文件名字一致3.括号要...原创 2019-01-09 20:25:04 · 156 阅读 · 0 评论