java后台
苦荞米
这个作者很懒,什么都没留下…
展开
-
java 如何优雅的阻塞主线程
一般可以直接使用下面的方法,阻塞主线程,可是这种方法不够的优雅。框架,需要阻塞主线程,防止程序退出,方便一些定时任务的执行。在某些时候,尤其是不带有容器的。原创 2023-06-06 17:01:09 · 458 阅读 · 0 评论 -
java http连接池的实现(带有失败重试等高级功能)
java 本身提供的java.net.HttpURLConnection不支持连接池功能。如果不想从头实现的话,最好的方式便是引用第三方依赖包,目前是有一个特别不错的,依赖,引入方式如下。原创 2023-05-30 16:56:40 · 1589 阅读 · 0 评论 -
当http响应内容较长时 在Filter过滤器中设置响应头部失效的问题
根据猜测和以往的经验得出结论:在http进入filter时,就已经将所有要响应的数据放入到http响应流中了,在http协议发现响应数据超过上线时,便会先发送部分内容以清空响应流缓存,然后再接受剩余的要写入响应流的数据,同时触发http分块传输,所以在线程从web层返回到filter时,就无法再设置响应头了,因为响应头已经跟着分块传输的数据到客户端了。不要在filter中设置响应头,而要在web层中,直接获取响应对象,在写入响应数据前,便将响应头部设置好。进去是这个样子,如下所示,原创 2022-11-03 21:06:19 · 386 阅读 · 0 评论 -
java 保留原始顺序的有序map的新思路:List<Map.Entry<?,?>>
在java中,是有一个自带的有序 map,是 TreeMap,但是这个是根据 key 值自动排序的,无法保留原始顺序,也无法根据 value 值排序。仔细思考了一下,其实绝大多数情况,我们并不是需要一个可以随时根据 key 查 value 的有序 map,而是根据一个能同时保存 key,value 的 list。所以就设计了下面这种类型来顶替有序 map。生成代码如下...原创 2022-06-22 20:19:09 · 714 阅读 · 0 评论 -
跳转链接列表
Caffeine缓存相关功能以及使用方式:maven项目打包方案:jar包解压命令:java park的使用方法:java优化常用工具:原创 2022-06-22 09:28:06 · 277 阅读 · 0 评论 -
java HttpURLConnection类的disconnect方法与http长连接
java 自带的类有个关闭连接的方法,是用于关闭http连接的,但是有一个问题在于,http连接一直都是一次性的,不存在复用的可能性,所以当输入流和输出流关闭后,http请求过程也就结束了,为什么还需要这个方法?java代码对该方法的说明如下:并没有提到关闭请求释放资源的说明,而是说调用该方法意味着一段时间之内不会再向目标机器发起请求,并且又强调了一遍类是不可复用的。看到这段描述,我就想到了该方法应该是和长连接有关的。http长连接在http1.1版本以及之后的相关版本中,默认是,意思即是在http请原创 2022-06-07 09:04:54 · 3769 阅读 · 0 评论 -
java 执行shell命令(分批 多条 走一步看一步的执行)
说明网上有很多通过java执行命令的程序,但是只能执行一条命令,或者是所有命令一次性执行完毕。而我想要的是执行一条命令,看一看返回结果,然后在去执行下一条命令,可惜翻遍全网,竟然一个可行的方法都没有!!!没办法,自己想办法解决吧。实现代码废话不多说,直接上代码:入口类import core.CmdClient;public class Main{ public static void main(String[] args) { CmdClient clie原创 2022-04-09 16:56:12 · 2025 阅读 · 0 评论 -
项目引入log4j2 最简单最快的方法
该方案仅适用于java的maven项目。1. 添加依赖添加如下依赖,一个就够了,其他的没有必要。根本不需要向网上传的那样加一堆的依赖。<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.17.1</version></de原创 2022-02-15 15:49:45 · 3102 阅读 · 1 评论 -
grep 查找内容有特殊字符怎么办
1. grep 命令grep 命令通常用于过滤或查找文本。1.1 查找内容有特殊字符怎么办我搜索了一下,大部分的方法都是在特殊字符前面加上\,但是这个需要提前知道哪些是特殊字符,而且还非常麻烦。最夸张的是一搜几乎都是这种蠢方法。正确方法应该是加上-F,这样所有特殊字符就会被当作一般字符了。例子:grep -F "[aabbcc]" test.txt...原创 2022-02-10 09:26:21 · 8776 阅读 · 1 评论 -
HttpURLConnection 发送请求 以及 接受数据丢失,响应头部Content-Length不存在的问题处理。
java中有很多可以用户发送http请求的工具,而我个人喜欢用更底层一点的,所以就选择了这个java自带的http请求工具。底层的优点就是可以自定义发送的编码,头部等,很随意。第一代 HttpURLConnection 请求代码下面是我自己写的发送请求的代码,专门用于发送json格式的请求:private void httpPost(String body, String httpUrl) { try { URL url = new URL(httpUrl); // utl原创 2021-12-31 14:07:40 · 4824 阅读 · 0 评论 -
HttpURLConnection发送的请求中文乱码。windows的乱码日常
windows的乱码日常不得不说,windwos是真的容易乱码。今天调试项目,一个服务用HttpURLConnection发送http请求(请求头部中不会告知字符编码)到另外一个项目,另外一个项目拿到byte数组后转换成JSON对象。但是我发现转换成的json对象为null,就很奇怪。其他人包括服务器上都没有发生这种情况。经过一阵研究,发现这个byte数组是GBK编码,不是UTF-8,另一边是按照UTF-8解码的,导致中文乱码,以至于无法被识别为JSON对象。"GBK"是Windows的默认中文编码原创 2021-10-27 21:32:30 · 1473 阅读 · 0 评论 -
java的锁 学习笔记
依靠内存溢出来分析变量在不同地方所占中的空间位置以及其溢出的异常报告。这里jdk=1.8版本。堆内存溢出Exception in thread “main” java.lang.OutOfMemoryError: Java heap spacepublic class Main{ String str = "a"; public static void main(String[] args) { Main main = new Main();原创 2021-08-30 15:05:20 · 97 阅读 · 0 评论 -
JAVA并发编程学习笔记
线程安全:多个线程访问或执行类中的某个操作,不需要去协调同步,也能完成期望的功能,那么这个类就是线程安全的。多线程不仅有创建线程的开销,还有线程间来回切换的开销原创 2021-08-30 10:47:53 · 112 阅读 · 0 评论 -
log4j2 xml 配置文件 屏蔽 第三方 依赖包 的日志
第三方日志代码如下,这个是一个最简单的,只打印日志到控制台的配置,这里将用这个代码来作为例子来解释如何屏蔽掉第三方日志。<?xml version="1.0" encoding="UTF-8" ?><Configuration status="WARN" monitorInterval="600"> <Appenders> <Console name="console_out_appender" target="SYSTEM_OUT"原创 2021-07-21 11:08:31 · 6923 阅读 · 3 评论 -
idea dubug时查看某个常量报 no such static field “xxx”
查看变量时报如图所示的错误:以为程序报错是因为找不到这个静态常量,但找了半天,都找不明白为什么jvm找不到这个静态常量。最后自己尝试了一下直接输出这个常量,发现可以输出出来。最后发现程序报错是因为其他原因,这个常理一切正常,被idea给坑了。这个应该是idea自己的bug,虽然idea显示找不到,但程序是完全可以找到这个常量的。...原创 2021-07-19 17:28:28 · 1574 阅读 · 1 评论 -
mybatis 一些我遇到的报错原因
今天为项目添加了一个新的数据表,以及一个新的mapper.xml添加过后就开始报该错误。并且不止新添加的mapper,所有对数据库的读写操作都开始报错误。原因是因为有一个parameterMap没有对应上,导致整个mybatis都运行不了,不知道是不是因为这个版本的mybatis有问题,将parameterMap改正后就没有再报错了。...原创 2021-07-15 14:18:08 · 1738 阅读 · 0 评论 -
list.parallelStream().map( ... ).collect(Collectors.toList()); 的 .collect() 报错
这种情况下一般都是map中的代码在报错,只不过这种错误被parallelStream()掩盖住了,所以看到报错是在collect()中。把parallelStream()改成stram(),然后在运行,就可以看到真正的报错语句了。原创 2021-07-12 18:34:46 · 2702 阅读 · 0 评论 -
花瓶(Charles)的域名映射(map remote)功能不管用
今天要用测试某个app接口,就用花瓶去做了个域名映射,把app的请求转发到自己本机上的服务器。做好了之后发现本机服务器并没有收到请求,还是向原有的域名去请求。这里要把 https://sns.api.com/app/…转发到 http://localhost:8080/local_app/…只修改域名和一部分的路径这是我当时的域名映射配置:[ Map From ]protocol: httpshost: sns.api.comport: 443path: /app/[ Map To原创 2021-07-05 10:28:48 · 2746 阅读 · 0 评论 -
maven引入本地jar包项目
引入本地jar包需要在两个地方添加配置。第一个地方:<dependency> <groupId>groupId</groupId> <artifactId>artifactId</artifactId> <version>1.0.57</version> <scope>system</scope> <systemPath>${project.ba原创 2020-12-31 10:55:23 · 242 阅读 · 0 评论