
java
不与天斗8866
理解了世间万物的人们,在他们的余生中,除了万圣节,不会再去思考其他东西
展开
-
springboot项目从jdk8升级为jdk17过程记录
背景:公司有升级项目jdk的规划,计划从jdk8升级到jdk11。原创 2024-07-25 20:02:59 · 1603 阅读 · 0 评论 -
Mac环境下切换JDK版本及不同的maven
Mac环境下切换JDK版本及不同的maven。原创 2024-07-25 19:41:24 · 391 阅读 · 0 评论 -
java 查看对象实际占用内存大小
通过借助org.apache.lucene工具类查看,几种方式中选择这种比较方便。原创 2023-10-26 09:48:59 · 605 阅读 · 0 评论 -
SpringMVC拦截器Interceptor导致跨越cors失效,Header获取不到
项目原来cors正常,但是在加了 token拦截器以后cors就又不正常了转载 2023-07-14 19:16:33 · 521 阅读 · 0 评论 -
JVM学习05-垃圾回收器和内存分配
一、串行回收器 串行回收器成熟、历经生产考验、极为高效,jdk中最基本的垃圾回收器之一,特点:仅使用单线程进行垃圾回收,独占式回收:stop the world,回收时java应用程序中的线程都需要暂停等垃圾回收完成。原创 2022-10-13 19:41:25 · 490 阅读 · 0 评论 -
MAC结合LINUX进行Jmeter进行java代码压力测试
MAC结合LINUX使用Jmeter进行java代码压力测试原创 2022-08-22 16:41:11 · 772 阅读 · 0 评论 -
maven将第三方jar包一起打包到项目 jar 包中
maven将第三方jar包一起打包到项目jar包中转载 2022-08-19 15:09:14 · 2750 阅读 · 0 评论 -
PowerMockito问题解决一则
现象是一个方法的结果无法正常模拟,直接进入了方法进行执行。方法的调用是这样的when(spy.checkMasterSlaveNumber(Mockito.anyList(), Mockito.anyMap())).thenReturn(appMasterSlaveArrayList);解决思路:经过各种尝试,均无法正常模拟,于是打断点逐步调试Powermockito的模拟代码,最终发现Powermockito执行测试代码时有报异常:ArrayList cannot be returned by原创 2022-04-06 11:41:02 · 5750 阅读 · 1 评论 -
Spring自带的线程池ThreadPoolTaskExecutor
文章系转载,方便整理和归纳,源文地址:https://zhuanlan.zhihu.com/p/346086161前言上一篇分享了JDK自带的线程池ThreadPoolExecutor的配置和参数详解,然而我们实际开发中更多的是使用SpringBoot来开发,Spring默认也是自带了一个线程池方便我们开发,它就是ThreadPoolTaskExecutor,接下来我们就来聊聊Spring的线程池吧。Spring默认线程池simpleAsyncTaskExecutorSpring异步线程池的接口.转载 2022-03-16 17:05:35 · 751 阅读 · 0 评论 -
批量压缩本地图片
论文中的图片太大,需要批量压缩,没找到很好的工具,自己拼凑了一个springboot项目,很好用,源码地址:https://gitee.com/wejack639/picture-batch-compress.git原创 2022-01-28 18:17:30 · 580 阅读 · 0 评论 -
正则截取规则内的文本
java正则截取字符串原创 2021-12-06 19:03:32 · 248 阅读 · 0 评论 -
Java Json字符串或Json对象属性查找工具类
给定参数Json字符串或者是Json对象,和需要查找的属性的key值,调用方法后可以获取到对应属性的值的FinalFastJsonObject对象,然后根据需要获取对象的值。import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import lombok.Data;import org.apache.commons.lang3.StringUtils;import java.io.Serializ原创 2021-11-05 17:50:27 · 1735 阅读 · 0 评论 -
深入解密来自未来的缓存-Caffeine
https://www.cnblogs.com/liujinhua306/p/9808500.html转载 2021-09-28 17:52:05 · 118 阅读 · 0 评论 -
[转载]i++是否是线程安全的?
本文系转载,为方便整理和查看复制,源文地址为 https://www.cnblogs.com/panbingqi/p/11059196.html如果是全局变量,i++是不安全的,因为java在操作i++的时候,是分步骤做的,可以理解为:tp = i;tp2 = i+1;i=tp2;如果线程1在执行第一条代码的时候,线程2访问i变量,这个时候,i的值还没有变化,还是原来的值,所以是不安全的。从更底层的角度讲,主要是因为i++这个操作不是原子性的,这个会编译成i= i +1; 所以会出现多线程访.转载 2021-08-04 11:44:00 · 1072 阅读 · 1 评论 -
HashMap底层查找的时间复杂度
面试题:HashMap底层查找的时间复杂度?问题分析这个问题问的是查找的时间夫复杂度,考察的是HashMap底层数据的存储,我们直到java8之后,HashMap的存储结构为数组+链表+红黑树。所以结合HashMap的存储结构来进行回答。问题回答理想情况下,哈希不冲突,可以直接找到结果,所以O(1)在最差的情况下,HashMap保存的数据都在链表中保存,所以需要遍历链表,所以时间复杂度为O(n)。但是一个好的Hash函数,冲突是比较少的,且HashMap在达到阈值时,还会自动扩展。所以一般情原创 2021-08-03 17:50:56 · 2752 阅读 · 2 评论 -
[转载]Java程序占用 CPU 过高怎么排查
文章系转载,源文地址 https://zhuanlan.zhihu.com/p/271783423 ,收藏用以查看和整理这个问题可以说是 Java 面试的高频面试题了,有很多面试官都喜欢问这个问题,问题可能是下面这样的。线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因?这就是一个套路题,所谓套路题就是有标准的套路解法的,掌握了套路,不仅能解决面试官,还能解决问题。不然真的就掉进套路里了。当我们真碰到这个问题的时候应该怎么排查呢?模拟一个高 CPU 场.转载 2021-08-02 18:52:36 · 169 阅读 · 1 评论 -
filebeat日志采集的一次流程记录
背景:公司采购的一套第三方应用,部署在阿里云上,因为第三方有权限登录该服务器,所以不能将该服务器与公司的内网生产服务器进行打通 ,不能直接接入公司内网的已有的日志采集功能中,现在要想办法将该应用的日志采集到公司的日志采集中。 出于安全原因,公司的内网服务器的端口不能向阿里云服务器开放,google查了下文档,可以filebeat可以安装output.http插件,支持http请求的输出,公司的应用可以配置公网的域名,提供http接口给予阿里云上的filebeat进行调用 ,所以初步.原创 2021-06-25 17:22:57 · 2682 阅读 · 3 评论 -
Java HotSpot(TM) 64-Bit Server VM warning: NewSize (1536k) is greater than the MaxNewSize (1024k)
看<<实战java虚拟机>>书,运行一个demo,然后报了以下的错误提示。Java HotSpot™ 64-Bit Server VM warning: NewSize (1536k) is greater than the MaxNewSize (1024k). A new max generation size of 1536k will be used.测试代码为:package cn.shutdown.demo.jvm;/** * -Xmx20m -Xms20.原创 2021-06-15 17:50:38 · 3426 阅读 · 5 评论 -
java中json转map
json转map转载自 https://stackoverflow.com/questions/443499/convert-json-to-mapType mapType = new TypeToken<Map<String, Map>>(){}.getType(); Map<String, String[]> son = new Gson().fromJson(easyString, mapType);转载 2021-06-11 19:46:14 · 1041 阅读 · 0 评论 -
java加密解密接口
import org.apache.commons.lang3.StringUtils;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import javax.crypto.spec.IvParameterSpec;imp原创 2021-06-08 11:57:37 · 472 阅读 · 0 评论 -
JVM学习03-常用Java虚拟机参数
一、垃圾回收日志参数-XX:+PrintGC 打印简单GC日志只要GC就会打印日志。[GC 1023K->565K(5632K), 0.0012699 secs]#日志说明:GC前堆空间使用量为1023K,GC后堆空间使用量为565K,当前可用堆空间的总和为5632K,本次GC时间为0.0012699 secs-XX:+PrintGCDetails 打印详细GC日志[GC[DefNew:9791K->9791K(9792K),0.0000350 secs][Tenured:原创 2021-06-07 13:11:38 · 322 阅读 · 0 评论 -
JVM学习02-虚拟机的基本结构
JVM学习02-虚拟机的基本结构1.虚拟机的基本结构 虚拟机的结构可以参考 java虚拟机规范 进行理解类加载子系统加载类信息(class)到方法区方法区存放类信息、运行时常量池信息(字符串和数字常量)java堆虚拟机启动时建立的内存工作区域,存放几乎所有java对象实例,所有线程共享。直接内存(NIO)java堆外的直接向系统申请的内存,可以由java的NIO库进行操作。速度优于java堆,适用于频繁读写,不受Xmx最大内存限制,受操作系统最大内存限制垃圾回收系统原创 2021-05-11 10:56:00 · 461 阅读 · 0 评论 -
JVM学习01—下载编译openjdk源码并进行调试
学习JVM,看的书是<<实战java虚拟机>>,<<深入理解java虚拟机>> 这本书看着有点难,所以没从这里开始看。首先是下载 JDK的源码并编译,我用的是mac os,但是在mac os上面去安装下载源码的软件的时候比较麻烦,看书上以及其他的文章里面,都是直接在Linux里面进行操作的,所以我也弄一个linux,使用 vmware 创建centos虚拟机首先使用vmware创建一个centos虚拟机,安装jdkcentos 安装和卸载jdk参考原创 2021-05-04 19:53:47 · 438 阅读 · 0 评论 -
interface可以多继承
class不允许多继承interface可以多继承原创 2020-07-01 08:41:21 · 450 阅读 · 0 评论 -
后端编码规范
一、命名规约Rule 1. 【强制】禁止拼音缩写,避免阅读者费劲猜测;尽量不用拼音,除非中国式业务词汇没有通用易懂的英文对应。禁止: DZ[打折] / getPFByName() [评分]尽量避免:Dazhe / DaZhePriceRule 2. 【强制】禁止使用非标准的英文缩写反例: AbstractClass 缩写成 AbsClass;condition 缩写成 condi。Rule 3. 【强制】禁用其他编程语言风格的前缀和后缀在其它编程语言中使用的特殊前缀或后缀,如_name转载 2021-04-30 13:23:52 · 2951 阅读 · 0 评论 -
通过实验来比较git merge --no-ff 与--ff 和--squash的区别
实验步骤初阶所需要工具安装 git图形化工具sourceTree,这个可以帮助我们更直观的观察每种merge方式的过程实验步骤1. 创建git测试目录并进行初始化# 创建并进入目录temp % mkdir git_test && cd git_test# 初始化gitgit_test % git initInitialized empty Git repository in /Users/domino/temp/git_test/.git/# 创建并切换 mas原创 2021-04-29 12:17:15 · 860 阅读 · 1 评论 -
Dubbo不向zookeeper/nacos注册
目前在做的项目只有一个测试环境,没有开发环境,所以,在自测试时,本地启动dubbo服务以后,其他正在测试中的项目有可能会调用到我本地启动的服务,这样就会导致测试的功能报错,影响测试人员的测试,所以需要本地启动的dubbo,不被注册到测试环境的zookeeper中,只能指定ip进行调用 。操作方式provider端配置xml配置,在dubbo的xml配置中增加 <dubbo:protocol register="false"/>springboot类型项目在application原创 2021-04-28 16:46:28 · 1187 阅读 · 0 评论 -
redis+tomcat实现session共享
https://blog.youkuaiyun.com/feinifi/article/details/82622114转载 2021-04-26 15:58:02 · 198 阅读 · 0 评论 -
JVM heap dump分析
https://www.jianshu.com/p/c34af977ade1转载 2021-04-06 10:56:27 · 151 阅读 · 0 评论 -
eclipse-memory-analyzer使用说明
https://eclipsesource.com/blogs/2013/01/21/10-tips-for-using-the-eclipse-memory-analyzer/转载 2021-04-06 10:55:21 · 179 阅读 · 0 评论 -
一次StackOverFlow问题的排查记录
起因做为公司的基础架构,要负责给其他的项目组搭建内网的项目,今天在给一个项目搭建内网测试环境的时候,项目无法正常启动,报StackOverflow的问题,问项目负责的开发,他说本地可以正常启动的,但是需要加一个特殊的jvm启动参数 -Xss2m排查项目下载下来以后,首先编译就是一个问题,有报了OutOfMemoryError,然后按文档处理配置了内存以后,继续排查。IDEA编译报错:java.lang.OutOfMemoryError: Java heap space和java.lang.Stac原创 2021-04-06 10:53:46 · 688 阅读 · 0 评论 -
获取用户真实IP以及internalProxies
https://www.jianshu.com/p/085ae14b4828转载 2021-02-24 16:02:48 · 733 阅读 · 0 评论 -
各厂测试环境管理
阿里测试环境管理https://www.cnblogs.com/finer/p/10871974.html待续原创 2021-01-05 08:35:05 · 126 阅读 · 0 评论 -
各厂分支管理
各厂分支管理阿里分支管理https://www.jianshu.com/p/0325042af326待续原创 2021-01-05 08:34:16 · 108 阅读 · 0 评论 -
httpclient请求配置dns绑定host
https://cloud.tencent.com/developer/ask/191710转载 2020-12-04 20:28:56 · 1417 阅读 · 0 评论 -
Java ProcessBuilder使用
https://www.jianshu.com/p/06158611c539转载 2020-12-02 11:18:05 · 391 阅读 · 0 评论 -
java.lang.IllegalArgumentException: An invalid character [10] was present in the Cookie value
https://www.cnblogs.com/maigy/p/11053835.html转载 2020-11-20 16:31:16 · 440 阅读 · 0 评论 -
junit测试给定默认的jvm参数
https://exceptionshub.com/how-to-set-jvm-parameters-for-junit-unit-tests.html转载 2020-11-12 11:53:59 · 489 阅读 · 0 评论 -
git命令图解
https://segmentfault.com/a/1190000023220132转载 2020-10-29 11:34:47 · 113 阅读 · 0 评论 -
查看crontab的执行日志
https://www.cnblogs.com/doseoer/p/5663187.html转载 2020-10-26 16:23:54 · 5395 阅读 · 0 评论