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