java
妄想_wangx
这个作者很懒,什么都没留下…
展开
-
线程池总结
线程池总结线程池参数:线程池执行任务的流程常用4种线程池几种任务队列:线程池饱和拒绝策略:如何设置线程池参数:线程池参数:corePoolSize: 核心线程数,常驻线程池的线程数量maxPoolSize: 最大线程数KeepAliveTime: 线程数大于核心线程数后,空闲的线程能够存活的时间unit: KeepAliveTime的时间单位ThreadFactory: 线程工厂,用来创建线程WorkQueue: 任务队列,用来存放任务。可以提交的任务数=任务队列数+最大线程数Handler原创 2022-04-08 10:13:00 · 596 阅读 · 1 评论 -
HashMap 源码探究
put: public V put(K key, V value) { //这里调用了putVal() return putVal(hash(key), key, value, false, true); }hash: static final int hash(Object key) { int h; //这里用key的hashcode与自身右移16位做异位运算 //为了&(length-1)获得原创 2022-03-01 09:53:01 · 292 阅读 · 1 评论 -
Dubbo集成Sleuth+zipkin服务链路追踪
Dubbo集成Sleuth+zipkin服务链路追踪版本介绍:前提条件:操作步骤:一:引入sleuth和zipkin依赖二:引入拦截器依赖三:在配置文件中指定拦截器,使上一步依赖生效四:运行zipkin服务五:在项目配置中指定zipkin服务地址六:通过zipkin可视化界面查看调用链路和耗时参考资料:版本介绍:Dubbo:2.7.xsleuth:3.0.4zipkin:3.0.4前提条件:建好两个集成了dubbo的springboot服务:一个生产者服务,一个消费者服务。前端能够调用消费者接口原创 2021-10-15 22:02:12 · 1123 阅读 · 0 评论 -
springboot集成dubbo
本文将介绍搭建两个springboot项目并相互调用的过程。一、创建生产者项目1、创建项目然后直接next、Finish2、引入依赖(写pom)在这里插入代码片<?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-instance" xsi:schem原创 2021-09-24 16:35:56 · 146 阅读 · 0 评论 -
DolphinScheduler部署之后点击登录一直转圈
dolphinscheduler部署之后点击登录一直转圈,就像这样,一直Loading查看dolphinscheduler-api.log 日志,发现是数据库连接出错,在排查完用户名、密码、数据库是否能够访问等等一系列可能出错的地方之后,还是显示数据库连接出错。最后看到一篇文章说数据库连接出错的原因可能是mysql-connector-java-5.1.47.jar版本太低了。看到这里我下载了个 mysql-connector-java-5.1.49.jar,还是出错。再直接下载个mysql原创 2021-09-01 09:36:28 · 1699 阅读 · 1 评论 -
java用zookeeper创建节点迟迟没有反应
java使用api连接zookeeper,如果创建节点时发现程序迟迟没有反应,很可能是因为重试策略的重试次数太多导致一直重试而不出结果,不妨把重试策略的最大重试次数改的小一点,比如2、3,这样的话就会迅速停止执行然后抛出错误,这时再根据错误去找原因。今天在连接时就是迟迟没有反应,排查代码之后发现重试策略的重试次数是30,然后减小重试次数之后再执行很快就抛出了一个异常:apache.zookeeper.KeeperException$ConnectionLossException: KeeperErr原创 2021-08-30 19:18:04 · 1092 阅读 · 1 评论 -
双检锁方式实现的线程安全的单例模式中,第二个if有必要吗?
懒汉式的单例模式中用到了双重检查class Singleton{ private volatile static Singleton instance = null; private Singleton() { } public static Singleton getInstance() { if(instance==null) { synchronized (Singleton.clas原创 2021-06-11 17:07:41 · 303 阅读 · 0 评论 -
Java内存区域(运行时数据区域)和内存模型(JMM)
Java内存区域(运行时数据区域)和内存模型(JMM)Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java运行时数据区域众所周知,Java 虚拟机有自动内存管理机制,如果出现内存泄漏和溢出方面的问转载 2021-06-07 11:07:40 · 117 阅读 · 0 评论 -
JSON parse error: Cannot construct instance of `` (although at least one Creator exists)
出现这个问题的原因很可能是前端传的参数写错了原创 2021-04-29 17:35:11 · 5030 阅读 · 1 评论 -
HashMap无序?TreeMap有序?
今天学习Map集合时书上说HashMap是无序的,TreeMap是有序的(有序无序是针对key的),但是实际去敲的时候发现不是这样,有时HashMap是有序的,有时TreeMap是无序的。于是就做了以下测试来探究:测试代码: //第一组测试:HashMap和TreeMap的key都是String类型的 Map<String, Integer> hashMap = new HashMap<String, Integer>(); hashMap.原创 2021-03-13 18:31:04 · 6047 阅读 · 2 评论 -
java泛型中T、E、K等,有什么区别?
先说结论:除了字母不一样之外没有任何区别当然你可能会看到很多类似一下的说法但实际上,这些说法就像定义一个Map型的变量常用 map 起名,定义数组常用 array起名一样,只是一个贴切的名字,实际上用什么都可以。以下这几种写法全都对,都能正常运行: private static <T> T genericAdd(T a) { System.out.println(a ); return a; } private static <E&g原创 2021-01-25 16:06:41 · 239 阅读 · 0 评论