Java文档
文章平均质量分 65
川子的博客
Java工程师、Netty编程爱好者
展开
-
解决Druid线程池Cause: java.sql.SQLRecoverableException: IO 错误: Socket read timed out 问题
解决Druid线程池Cause: java.sql.SQLRecoverableException: IO 错误: Socket read timed out 问题原创 2024-10-24 20:16:48 · 165 阅读 · 0 评论 -
搭建并配置HTTPD文件服务及访问权限控制
搭建并配置HTTPD文件服务及访问权限控制,安装HTTPD服务,修改配置信息,服务启动以及访问权限配置原创 2024-05-03 13:44:38 · 2455 阅读 · 0 评论 -
Java占位符工具类,使用Spring框架中PropertyPlaceholderHelper类或使用Apache Commons中StringSubstitutor类解析字符串中的属性占位符
Spring框架中PropertyPlaceholderHelper占位符工具类,核心方法 replacePlaceholders,使用lambda表达式,函数传参解析占位符,使用StringSubstitutor类解析占位符,使用的ImmutableMap和HashMap有什么区别,Apache Commons Text 1.9 API原创 2023-12-22 20:11:13 · 2400 阅读 · 0 评论 -
SM4国密4在jdk1.7版本和jdk1.8版本中的工具类使用
SM4国密4在jdk1.7版本和jdk1.8版本中的工具类使用,版本不一致碰到的问题,SM4国密4在加密的过程中需要注意的点,SM4算法多种加密模式ECB、CBC、CTR的区别原创 2023-10-24 09:07:20 · 7078 阅读 · 1 评论 -
@RestController 和 RouterFunction 的区别以及RouterFunction 使用详解
@RestController 和 RouterFunction 的区别以及RouterFunction 使用详解,路由嵌套RouterFunctions中nest方法,API文档 RouterFunction,RouterFunction 实现原理原创 2023-09-06 10:07:38 · 1576 阅读 · 0 评论 -
为什么JVM调优一般都是针对堆内存的,以及堆内存的设置对GC的影响
为什么JVM调优一般都是针对堆内存的,堆内存溢出的整个过程,内存泄漏和内存溢出的区别,Java堆内存的设置,对GC的影响,Java堆内存调优的依据是什么,Java 堆内存调优常用的命令原创 2023-08-30 20:57:23 · 691 阅读 · 0 评论 -
TransmittableThreadLocal 使用详解、使用 TransmittableThreadLocal 解决在多线程环境下,线程切换时无法传递变量值的问题
TransmittableThreadLocal是什么,TransmittableThreadLocal 和 ThreadLocal 的区别,TransmittableThreadLocal依赖文件、TransmittableThreadLocal的使用,TransmittableThreadLocal使用注意的点、线程之间值传递有哪些方式、TransmittableThreadLocal实现原理原创 2023-08-23 19:40:59 · 4412 阅读 · 0 评论 -
Java异步方法CompletableFuture类的使用
Java异步方法CompletableFuture类的使用,supplyAsync()、thenApply()、thenAccept()、thenRun()、thenCompose()、exceptionally()、handle()、allOf()、anyOf()、Future、get() 、 isDone()、cancel() 、CompletableFuture、Java8原创 2023-08-15 20:54:38 · 504 阅读 · 0 评论 -
主流通信协议详解、二进制协议和文本协议的区别和使用场景
主流通信协议详解、二进制协议和文本协议的区别和使用场景,常见的二进制协议包括TCP、UDP、HTTP/2、WebSocket、MQTT等、常见文本协议包括HTTP超文本传输协议、SMTP 简单邮件传输协议、FTP 文件传输协议、DNS 域名系统、XML 协议、XMPP协议等原创 2023-06-18 13:17:32 · 3049 阅读 · 0 评论 -
SpringBoot2.6.3集成ElasticSearch7.13.4详解,上下两篇,上篇集群配置,下篇集成配置(下)
SpringBoot2.6.3集成ElasticSearch7.13.4详解,数据监控,分片设置,索引管理,集群配置原创 2023-05-21 18:22:37 · 568 阅读 · 1 评论 -
Java递归算法(Java算法和数据结构总结笔记)[6/20]
递归算法、认识递归的调用详情原创 2022-11-08 23:01:22 · 794 阅读 · 1 评论 -
Java8实战使用Optional解决空指针异常
Java8实战使用Optional解决空指针异常原创 2022-10-24 20:31:49 · 1811 阅读 · 0 评论 -
Java8实战[第8章]重构、测试和调试、使用Lambda表达式重构代码、以三种设计模式为例策略模式、观察者模式、模版方法
重构、测试和调试、使用Lambda表达式重构代码、以三种设计模式为例策略模式、观察者模式、模版方法原创 2022-09-26 22:27:22 · 240 阅读 · 0 评论 -
Java8实战[第7章]并行数据处理与性能、分支/合并框架、parallel()、sequential()、Spliterator接口、使用Spliterator分割流
并行数据处理与性能、分支/合并框架、parallel()、sequential()、Spliterator接口、使用Spliterator分割流原创 2022-08-30 21:13:47 · 718 阅读 · 0 评论 -
Java8实战[第6章]用流收集数据groupingBy、partitioningBy、collectingAndThen、max、min、sum
Java8实战第6章、用流收集数据groupingBy、partitioningBy、collectingAndThen、max、min、sum、Collector原创 2022-08-21 17:57:43 · 1173 阅读 · 0 评论 -
Java8实战[第5章]使用流、筛选和切片filter、map、skip、limit、findFirst、findAny、noneMatch、anyMatch、reduce、distinct
Java8实战第5章使用流、筛选和切片filter、map、skip、limit、findFirst、findAny、noneMatch、anyMatch、reduce、distinct原创 2022-08-14 19:11:15 · 1587 阅读 · 0 评论 -
Java8实战[1-4]章要义笔记
Java8 实战、要点笔记原创 2022-08-07 23:12:29 · 166 阅读 · 0 评论 -
Java实现微信公众号给关注用户推送信息实现详解
需求背景:小程序下单完成之后,通过微信公众号给关注的用户推送信息、小程序和公众号的同一ID为unionId前置条件(1)在公众号开放平台绑定小程序和公众号是同一主体【公众账号和小程序】(2)开通服务号模版消息接口授权使用(一般需要两到三天)(3)公众号配置通知地址提交配置的时候,可能会提示token无效,那是因为接口验证没有通过、代码验签实现如下:【因为接收事件推送消息的数据包是XML格式,所以需要倒入解析的jar包】接收的数据格式<xml>原创 2021-11-13 14:46:56 · 9568 阅读 · 4 评论 -
Elasticsearch6不分词精准查询、QueryBuilders.termsQuery返回数据为空、JestClient 不分词查询
注:Elasticsearch使用版本6.6.2问题再现(1)Elasticsearch中存储的数据(2)使用Postman查询张三这条数据、结果返回数据为空解决方法在name属性后面添加 .keyword在看执行结果:...原创 2021-11-08 19:21:49 · 2295 阅读 · 0 评论 -
Liunx安装Redis详解-亲测实践
注:前面几篇安装文章,已经交代过系统环境和资源详情、这里就不赘述,下载资源如下:链接: https://pan.baidu.com/s/1rWYvUQEUqVlxR4g_jryfvg 提取码: f8ji也可以从官网下载:Redis安装包下载:https://download.redis.io/releases/redis-6.2.5.tar.gz1、开始安装--上传文件到指定文件夹之后,解压:# tar xzf redis-6.2.5.tar.gz--进入到解压文件的文件执.原创 2021-10-26 21:33:09 · 309 阅读 · 0 评论 -
Liunx安装JDK详解-亲测实践
注:使用的Linux系统的版本:CentOS Linux release 8.0.1905 (Core) 查看命令:[root@VM-16-15-centos ~]# cat /etc/redhat-releaseCentOS Linux release 8.0.1905 (Core)安装准备1、JDK版本可从我准备好的工具库直接下载链接: https://pan.baidu.com/s/1rWYvUQEUqVlxR4g_jryfvg 提取码: f8ji开始安装...原创 2021-10-24 11:38:14 · 138 阅读 · 0 评论 -
Liunx安装MySQL详解-亲测实践
注:使用的Linux系统的版本:CentOS Linux release 8.0.1905 (Core) 查看命令:[root@VM-16-15-centos ~]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) 安装准备1、可到官网下载MySQL :: Download MySQL Community Server2、也可从我准备好的工具库下载链接: https://pan.baidu.com/s/原创 2021-10-09 22:57:18 · 147 阅读 · 0 评论 -
Liunx安装Elasticsearch详解-亲测实践
注:使用的Linux系统的版本:CentOS Linux release 8.0.1905 (Core) 查看命令:[root@VM-16-15-centos ~]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) 安装准备1、可到官网下载https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz2、也可从原创 2021-09-30 17:58:35 · 459 阅读 · 0 评论 -
HuTool工具包实现Excel文件的上传、下载以及修改文件名称
加载依赖文件 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.6.1</version> </dependency> <dependency> .原创 2021-07-02 18:52:10 · 6595 阅读 · 1 评论 -
解决方法 If you want an embedded database (H2, HSQL or Derby), please put it on the classpath
场景Springboot 2.5.1集成 mybatis-plus-boot-starter 3.3.2 报错Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need .原创 2021-06-24 21:04:30 · 16599 阅读 · 0 评论 -
Executors和ThreadPoolExecutor详解
概述在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。而线程池不允许使用Executors去创建,而要通过ThreadPoolExecutor方式,这一方面是由于jdk中Executor框架虽然提供了如newFixedThreadPool()、newSingleThreadExecutor()、newCachedThreadPool().原创 2021-05-08 11:25:15 · 4499 阅读 · 0 评论 -
RocketMQ详解入门到实战总结(一)
1、为什么要使用RocketMQRocketMQ是一款分布式、队列模型的消息中间件,支持严格的消息顺序,优点:应用解耦:如果系统A、系统B、系统C,都直接依赖于系统X,那么系统之间的耦合度就非常高;如果在系统X之前加上RocketMQ,就实现了系统之间的解耦。流量削峰:如果用户的每次访问都是直接连接到应用上的话,服务器的承受的访问压力就会非常大,达到服务器的承受上限时就可能会崩溃...原创 2020-04-29 12:16:14 · 5381 阅读 · 0 评论 -
解决eclipse启动could not find tools.jar in the active jre错误
错误提示简要: could not find tools.jar in the active jre解决:复制C:\Program Files\Java\jdk1.8.0_191\lib\tools.jar 到C:\Program Files\Java\jre1.8.0_201\lib 文件夹下原创 2020-03-12 20:02:59 · 2579 阅读 · 0 评论 -
Springboot集成WebSocket+Thymeleaf+Echarts完成数据的实时推送
完成效果图:项目准备提要:<!-- 分页插件 --><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <...原创 2019-12-06 11:59:28 · 5181 阅读 · 2 评论 -
Java知识点汇总(一)
1、varchar与char的区别varchar存储可变长字符串,小于255字节时需要1个额外字节(大于255需要2个额外字节)存储长度,最大长度为65532字节(所有列总和);char存储定长(right padding),读取时会截断末尾空格,长度最大为255字符;char 与varchar都是用来存储字符串的,只是他们的保存方式不一样,char有固定的长度,而varchar属于可变长...原创 2019-10-24 10:35:23 · 306 阅读 · 0 评论 -
为什么说ArrayList是线程不安全的,使用并发集合类解决集合不安全问题
点开ArrayList 的 add 方法的源码 /** * Appends the specified element to the end of this list. * * @param e element to be appended to this list * @return <tt>true</tt> (as...原创 2019-07-19 16:13:59 · 2907 阅读 · 2 评论 -
JAVA中使用Google Guava的CacheBuilder类写一个定时缓存
关于CacheBuilderCacheBuilder是Guava用于创建LoadingCache、Cache实例的构建类导入Maven依赖<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <...原创 2019-07-16 16:34:25 · 3228 阅读 · 0 评论 -
一文看透Java回调机制
核心点拨1. 声明一个回调接口2. A类中要实现这个声明接口(用于接收B类的返回结果)3. A类中要调用B类的一个有参数为(CallBack callback)的方法(可以理解为向B类传输消息的通道)4. B类要实现一个有参数为(CallBack callback)的方法(用于调用A类中实现的回调方法,返回数据)代码实例(一)声明一个回调接口/** * @C...原创 2019-03-14 18:12:47 · 1217 阅读 · 0 评论 -
Java性能分析之Heapdump文件的下载和解析
以Linux系统为例: ps -ef | grep java 获取进程ID linux下切换到jdk1.8.0_181/bin/,执行以下命令:./jmap -dump:format=b,file=heap.hprof xxx (进程ID) 执行,获取heap.hprof文件,然后下载到桌面。 在Eclipse help -> Eclipse Mar...原创 2018-10-09 21:27:02 · 9992 阅读 · 0 评论 -
HttpClient和HttpURLConnection的区别和案例
HttpURLConnection 对象1. HttpURLConnection对象需要通过URL类中的openConnection()方法来获得,它无法直接构造。HttpsURLConnection urlconn = null;URL url = new URL(address);urlconn = (HttpsURLConnection)url.openConnection(...原创 2018-09-20 10:34:24 · 12455 阅读 · 1 评论 -
HTTP协议详解及Java模拟浏览器请求
HTTP协议是什么?所谓协议,就是规定,HTTP协议,就是HTTP规定。HTTP(Hypertext transfer protocol)超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本(文本、图片、视频等)传输的规定。也就是说,HTTP协议规定了超文本传输所要遵守的规则。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。HT...原创 2018-09-19 18:07:10 · 3444 阅读 · 0 评论 -
Java中的Properties类详解
1.Properties类是什么?Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离程序本身去修改相关的变量设置。就像在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。2.API 中的Prope...原创 2018-09-17 20:26:23 · 176925 阅读 · 23 评论 -
基于Redis、Redission、ConcurrentHashMap实现企业级分布式锁
1、为什么需要分布式锁在微服务系统中,一个请求存在多级跨服务调用,往往需要牺牲强一致性老保证系统高可用,比如通过分布式事务,异步消息等手段完成。但还是有的场景,需要阻塞所有节点的所有线程,对共享资源的访问。比如并发时“超卖”和“余额减为负数”等情况。分布式锁特性:排他(互斥)性:在任意时刻,只有一个客户端能持有锁。 安全性:只有加锁的服务才能有解锁权限。 阻塞锁特性:即没有获取到...原创 2019-08-16 17:38:35 · 5416 阅读 · 0 评论 -
计算表达式JexlEngine和ScriptEngine执行JS脚本的使用
1、JexlEngine计算表达式/** * @author chuan * @title: JexlEngineTest * @description: TODO(JexlEngine表达式判断) */public class JexlEngineTest { public static Object convertToCode(String jexlExp, Map...原创 2019-08-29 14:48:20 · 6559 阅读 · 1 评论 -
检测线程是否执行完成并获取线程Thread的返回值
1、使用executor.isTerminated()判断线程池中的线程是否执行完成/** * @author chuan * @title: ThreadResultTest * @description: TODO(获取Thread的返回值) */public class ThreadResultTest implements Runnable{ /** *...原创 2019-08-29 17:45:39 · 2813 阅读 · 0 评论