
java
文章平均质量分 61
一只猪啊啊
这个作者很懒,什么都没留下…
展开
-
Java中的装箱与拆箱
装箱与拆箱是jdk5以后提供的功能在jdk5之前Integer i = new Integer(2);Integer j = Integer.valueOf(3);jdk5之后Integer i = 2;public class Main { public static void main(String[] args) { Integer i = 10; int n = i; }}这样一段代码实际上在编译后的字节码文件中其实装箱就是调原创 2020-08-18 15:43:46 · 237 阅读 · 1 评论 -
线程池原理中文描述
public static void main(String[] args) { ExecutorService executorService = new ThreadPoolExecutor(5,10,1000L, TimeUnit.MICROSECONDS,new ArrayBlockingQueue<Runnable>(3),new DefaultManagedAwareThreadFactory()); IntStream.range(0,14).for原创 2020-07-31 13:54:31 · 280 阅读 · 0 评论 -
maven指定多源码路径
实际场景中 有时会有在一个src下区分多个不同源码包的情况 ,maven 中的一个插件提供了这个功能<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions>原创 2020-05-20 13:51:29 · 842 阅读 · 0 评论 -
ReentrantLock和AQS解析
本文参考了https://blog.youkuaiyun.com/javazejian/article/details/75043422ReentrantLock是在多线程问题处理中常用的锁结构,作为一种排它锁 他比 synchronized要灵活,使用上却要比 synchronized复杂一些。要了解ReentrantLock的原理就不得不提到AQS,AQS 即 AbstractQueuedSynchr...原创 2020-04-10 11:15:25 · 365 阅读 · 0 评论 -
ClassLoader的理解与双亲委派机制和违反双亲委派
这里大量参考了如下博客https://blog.youkuaiyun.com/javazejian/article/details/73413292ClassLoader是一个抽象类,他有很多个实现BootstrapClassLoader是最顶层的classloader 负责加载jvm需要的类 <JAVA_HOME>/lib路径下的核心类库或-Xbootclasspath参数指定的路径下的j...原创 2020-03-31 11:44:20 · 667 阅读 · 0 评论 -
Eureka原理分析
#总结eureka内部实际上是分为三个实例的,分别是Client,Server和Instance,Eureka-Client启动,创建Instance实例,封装成对象,推送给server,server接收Instance对象,返回实例集合,并签订租约,client定时发动续租请求到server,server维护各个instance实例,服务之间调用不通过eureka。#Eureka-Clie...原创 2018-10-11 16:50:46 · 3532 阅读 · 2 评论 -
spring cloud gateway聚合swagger
在spring cloud 的使用的时候,我发现测试起来很不方便,需要使用Postman等类似的工具来调用我们的接口,这显然是很麻烦的,那么有没有一种方式可以让我们在gateway里使用swagger来测试呢。答案是肯定的,我查阅资料发现了之前有人实现了zuul网关的聚合swagger,通过他的思路我自己写了一些类,首先需要,在gateway网关中创建三个类,下面贴出来SwaggerHandl...原创 2018-10-17 17:07:52 · 2413 阅读 · 0 评论 -
spring cloud gateway 启动流程及原理分析
spring cloud gateway 作为新一代的微服务网关已经发布了一段时间,我从7月份开始使用到现在已经4个月了。但是我一直处于一种只会使用,原理一知半解的水平。我们小组作为公司微服务产品的实践者,我自己作为组中一员完成了spring cloud gateway的开发,也解决了很多棘手的问题,却对它的原理和启动流程一知半解,好几次就是因为不了解它的启动流程,导致开发受挫,进度缓慢。现在正值...原创 2018-11-06 17:19:02 · 7916 阅读 · 0 评论 -
ArrayList源码分析(着重迭代器安全删除)
ArrayList是我们最常用的集合类型之一,大家都知道他的底层实现是数组。最近刚好想研究一下jdk的源码,就从ArrayList开始看吧。本来我想写的 但是我看完源码在查资料的时候发现 这个老哥写的很好,跟我的想法很像,下面贴出链接https://blog.youkuaiyun.com/starexplode/article/details/80469079他有些地方没写全 我这里补充一下比如迭代器...原创 2019-01-15 17:44:01 · 519 阅读 · 0 评论 -
LinkedList源码分析
在我的印象里LinkedList的使用场景并没有ArrayList多,我一度认为ArrayList并没有LinkedList复杂,毕竟LinkedList是链表实现的。但是在我读完LinkedList的源码后发现,LinkedList的源码并没有ArrayList那么多的数组copy。只是单纯的链表操作。首先看类定义public class LinkedList<E> ex...原创 2019-01-15 17:44:41 · 2195 阅读 · 0 评论 -
HashMap jdk 1.8源码分析
首先放上参考的博客 https://blog.youkuaiyun.com/v123411739/article/details/78996181 jdk1.8之前 的hashMap 是基于数组加链表的形式的,jdk1.8 oracleJdk优化了jdk的源码 采用数组加链表 或者数组加红黑树的形式 在链表上挂的数据超过一定长度后就会转为红黑树 。我先搬上面博客的一点内容:几个点...原创 2019-04-17 09:23:41 · 195 阅读 · 0 评论 -
23种设计模式java实现
自己写的设计模式https://github.com/p555iii/design-patterns原创 2019-06-13 14:39:38 · 347 阅读 · 0 评论 -
编译netty出现\common\src\main\java\io\netty\util\AbstractConstant.java:0: invalid newline character (exp
最近在 研究netty源码时发现,import io.netty.util.collection.LongObjectHashMap;import io.netty.util.collection.LongObjectMap;这两个包找不到 查询后发现他们在这里需要手动打包后才能生效这时在 common下执行 mvn clean install 发现报错[ERROR] E:\myWo...原创 2019-09-24 15:49:16 · 3449 阅读 · 0 评论 -
Spring Cloud Gateway基于服务发现Hystrix配置
适用版本 spring cloud gateway 2.0.0 及以上 之前的版本我没使用过,说不定可以行。最初我们用的是这种配置方式spring.cloud.gateway.default-filters[1].name=Hystrixspring.cloud.gateway.default-filters[1].args.name=fallbackcmdspring.cloud.gat...原创 2019-10-10 17:25:06 · 4555 阅读 · 1 评论 -
springboot启动前执行方法的几种方式
第一种 @PostConstruct注解@Configurationpublic class Test1 { @Autowired private Environment environment; @PostConstruct public void test(){ String property = environme...原创 2018-10-11 16:49:59 · 9491 阅读 · 0 评论 -
spring boot 1.5.x系统怎么使用spring boot admin 2.0
用过spring boot admin2.0的人 再回去用spring boot admin 1.5 就会感觉像是退化了一样,但是默认情况下spring boot 1.5.x不能使用 admin2.0的内容下面是页面对比这是admin1.5的页面 用angular.js写的 虽然功能都有 但是页面难看这是2.0的页面是不是比1.5好看不少我现在的想法是还是用spring boot1.5...原创 2018-10-11 16:46:27 · 2741 阅读 · 14 评论 -
zTree异步加载数据,默认展开全部节点
zTree异步加载数据,默认展开全部节点 案例 可以重复使用原创 2017-05-10 20:52:16 · 16510 阅读 · 0 评论 -
两种O(nlogn)级别的排序,归并排序和快速排序
最近重新学习了算法中的排序算法,相较于几个O(n^2)级别的排序算法(冒泡排序,选择排序,插入排序,希尔排序等) O(nlogn)级别的排序算法有普遍更快的速度,相对于O(n^2)级别的排序算法来说也更难理解。下面我把我最近学习这两个排序的想法说一下。归并排序:归并排序就是将数组不断的等分,等分到一组只有一个数,然后向上合并,例如第一次合并只有自己 就直接合并,然后就会变成两两一组 这时就有大原创 2017-09-20 15:23:38 · 374 阅读 · 0 评论 -
(快排实例)查询一个数组中第n大的元素
package cyd;/** * 查询一个数组中第n大的元素 * 借用了快速排序的思想, * 我先选定一个标定值 然后将数组等分小于这个数的放在左边 大于的放在右边 这时标定值的位置是正确的 我们将它返回去 跟我们的n比较 * 如果返回值大于n我们 就只需要查左边的数据 如果小于n 就只需要查右边的数据 然后递归求解 即可 * * 只需要O(2n) 的时间复杂度 就能查原创 2017-09-20 15:31:06 · 735 阅读 · 0 评论 -
oracle存储过程中 使用游标做循环封装数据集
需求是 双11活动结束后根据活动id 给参与的用户发京东E卡券,每个用户无论参与多少次 只发一个。这时就存在一个查到很多个用户符合条件 要一一发短信的结果集了。create or replace procedure "PRO_SEND_SMS_ECARD" ISno_result exception; -- 定义游标 cursor c_acc is SELECT原创 2017-11-13 15:22:20 · 1253 阅读 · 0 评论 -
spring cloud gateway简单构件
gateway网关用来分配路由,实现负载均衡启动gateway创建一个简单的springboot2.x项目,这里不做介绍gateway pom.xml <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="htt...原创 2018-07-16 17:18:56 · 1406 阅读 · 0 评论 -
spring cloud gateway全局过滤器 向request header中放数据
exchange.getRequest().getHeaders().set(); 是不能向 headers中放文件的这时配置一个gateway全局过滤器 filter中 做了向 header放数据/** * @Description 全局过滤器 在这里可以实现记录日志和访问权限校验等 * @Author changyandong@e6yun.com * @Created D...原创 2018-07-16 17:25:49 · 45572 阅读 · 15 评论 -
spring boot admin2.0上手
首先创建一个springboot项目基于2.x pom文件如下 作为spring boot admin服务端<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema...原创 2018-08-14 17:58:49 · 655 阅读 · 0 评论 -
spring boot 1.5.x系统怎么使用spring boot admin 2.0
这篇文章已经迁移到https://blog.youkuaiyun.com/qq_37616173/article/details/83014952原创 2018-08-14 18:06:18 · 1528 阅读 · 11 评论 -
spring cloud gateway自定义filter重定向
在自定义filter里返回值是一个Mono<Void> 如果业务处理发现数据有问题就要返回这时就有了第一种实现,retrun 一个Mono.empty();这种处理办法显然是有问题的,用户根本无从知道他的数据问题在哪。你返回Mono<Void>没有任何意义。只是让fliter停止了而已。这时就要去查看源码里怎么写的了,我发现了org.springfr...原创 2018-08-21 15:07:44 · 18972 阅读 · 0 评论 -
spring cloud gateway获取请求的真实地址
在使用spring cloud gateway的时候,路由一般配置为服务名 例如 lb://BASE-API-WEB/xxx/bbb 路径,我们无从知道,他真正路由到什么地方去了。经过查看源码我发现了,org.springframework.cloud.gateway.filter.LoadBalancerClientFilter这个filter中 对lb请求进行了处理,转换成真正的...原创 2018-09-12 10:57:04 · 31326 阅读 · 9 评论 -
redis计数器解决用户同一时间多次提交
思路分析: 由于用户网速以及其他原因,前端的js限制没有起作用,所以要在后端加判断。由于并发量还算比较大,所以不采用线程锁。 思路1: 在数据库表格中添加唯一索引 例如:将userId 和 createTime 绑定成一组唯一索引。如果这两个值同时相同,不予许插入。原创 2017-08-30 16:43:13 · 1862 阅读 · 0 评论