![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java&JVM
文章平均质量分 60
Java、Java虚拟机
ooooooooooooooxiaosu
这个作者很懒,什么都没留下…
展开
-
【Java】查找jdk步骤
需求描述解决方法第一步第二步第三步第四步参考文章原创 2023-10-13 11:34:33 · 209 阅读 · 0 评论 -
【密码学】Java实现DH函数时出现“Unsupported secret key algorithm: AES“错误
jdk版本:8使用DH和AES算法,实现密钥的交换和加密,测试时报错。原创 2023-10-10 11:27:56 · 418 阅读 · 0 评论 -
【】javax.crypto.IllegalBlockSizeException: Input length not multiple of 8 bytes
jdk版本:8用DES进行加解密,其中转换模式为“”,要加密的明文为 “密码学浅析”,执行加密操作,报如下错误。原创 2023-10-08 15:54:16 · 791 阅读 · 0 评论 -
【】java.security.InvalidKeyException: Parameters missing
jdk版本:8加解密算法采用DES,转换模式为DES/CBC/PKCS5Padding,在进行解密时,报如下错误。原创 2023-10-08 14:35:34 · 885 阅读 · 0 评论 -
【Java】安装多个jdk版本
win10系统上已经安装过jdk8,但因为要做某些实验,需要安装个jdk7。原创 2023-09-19 10:37:56 · 408 阅读 · 0 评论 -
【swagger2】swagger2配置显示及修改描述
方法1和方法2都用,和方法2效果一样。通过以上方法,应该yapi是存在缓存还是什么东西(因为本地服务停掉之后,接口描述依然存在),最后就是手动删除不想要的接口描述。验证思路,把两个不想显示的类,一个用@ApiIgnore注解标识,一个不用,在这两个类的接口描述在之前都删除的情况下,再次启动服务,用@ApiIgnore标识的类接口描述不再显示了,说明:1.yapi确实是存在缓存2.@ApiIgnore注解是可以生效的。原创 2023-08-14 10:09:11 · 435 阅读 · 0 评论 -
【xxljob】com.xxl.job.core.log.XxlJobFileAppender : 没有那个文件或目录
【xxljob】com.xxl.job.core.log.XxlJobFileAppender : 没有那个文件或目录原创 2023-02-22 16:07:23 · 3025 阅读 · 0 评论 -
【docker】An error occurred
【docker】An error occurred转载 2022-11-11 22:30:55 · 1356 阅读 · 1 评论 -
【openssl】Can‘t open Z:/extlib/_openssl111__/ssl/openssl.cnf for reading, No such file ...
【openssl】Can't open Z:/extlib/_openssl111__/ssl/openssl.cnf for reading, No such file directory转载 2022-10-19 09:46:18 · 1099 阅读 · 0 评论 -
【Java】java -jar 指定编码
【Java】java -jar 指定编码原创 2022-09-30 10:12:24 · 5135 阅读 · 0 评论 -
使用HttpClient MultipartEntityBuilder 上传文件,并解决中文文件名乱码问题
使用HttpClient MultipartEntityBuilder 上传文件,并解决中文文件名乱码问题转载 2022-09-01 18:34:49 · 3858 阅读 · 4 评论 -
Java加密算法—消息摘要及文件消息摘要
Java加密算法—消息摘要及文件消息摘要转载 2022-08-09 22:07:47 · 577 阅读 · 0 评论 -
【Java】System.in无法从控制台输入
System.in无法从控制台输入原创 2022-07-12 14:42:14 · 740 阅读 · 0 评论 -
为什么子类中不能访问另一个包中父类中的protected方法?
前言其实这个问题问法是错的,在子类中是可以访问另一个包中父类中的protected方法,能问出这样的问题,多半是在不同包的子类中创建了父类对象,通过父类对象去调用protected方法,结果发现编译不通过,所以才会萌生这样的疑问。正确的访问方式:1. super.method() //protected2. 创建子类对象instance(且这个实例也得用子类类型的变量来“接收”),通过instance.method()访问表面理解为什么子类中不能访问另一个包中父类中的protected转载 2021-07-30 10:55:30 · 2202 阅读 · 2 评论 -
【Java】Constant expression required
问题描述在JDK1.8下使用switch...case...语句,switch条件为String类型,case值为枚举code取字符串。此时报编译错误:“Constant expression required”。枚举类@Getter@AllArgsConstructorpublic enum AEnum { A("A", "Desc of A"), B("B", "Desc of B"), C("C", "Desc of C"); private原创 2021-06-29 14:46:56 · 19284 阅读 · 0 评论 -
【Java 】异步实现的几种方式
Amber揣手手 2019-01-03 15:31:40 68057 收藏 83 整理参考链接1整理参考链接21. jdk1.8之前的Futurejdk并发包里的Future代表了未来的某个结果,当我们向线程池中提交任务的时候会返回该对象,可以通过future获得执行的结果,但是jdk1.8之前的Future有点鸡肋,并不能实现真正的异步,需要阻塞的获取结果,或者不断的轮询。通常我们希望当线程执行完一些耗时的任务后,能够自动的通知我们结果,很遗憾这在原生jdk1.8之前是不支...转载 2021-06-07 11:10:44 · 176 阅读 · 0 评论 -
【Java】线程池监控线程timeout_扩展ThreadPoolExecutor实现线程池监控
背景在开发中,我们经常要使用Executors类创建线程池来执行大量的任务,使用线程池的并发特性提高系统的吞吐量。但是,线程池使用不当也会使服务器资源枯竭,导致异常情况的发生,比如固定线程池的阻塞队列任务数量过多、缓存线程池创建的线程过多导致内存溢出、系统假死等问题。因此,我们需要一种简单的监控方案来监控线程池的使用情况,比如完成任务数量、未完成任务数量、线程大小等信息。ExecutorsUtil工具类以下是我们开发的一个线程池工具类,该工具类扩展ThreadPoolExecutor实现了线程池转载 2021-06-02 14:45:01 · 520 阅读 · 0 评论 -
几种常用的JSON解析工具的使用
目录简介:(1)org.json的使用(2)net.sf.json的使用(3)json-simple的使用(4)gson的使用(5)jackson的使用(6)fastjson的使用简介:现在越来越多的网站采用JSON来交换数据,在Json.org网站上,Java可以使用的解析Json的组件就有超过20种。Json官网:http://json.org/页面往下拉,可以看到java板块的json类库:其中gson,jackson,fastjson都是我们常用的工具类转载 2021-06-07 10:46:20 · 1135 阅读 · 0 评论 -
【Java】List中add()或addAll()报java.lang.UnsupportedOperationException异常
问题描述Map的value使用List,在根据key取出List,并对其进行add操作,报错“ava.lang.UnsupportedOperationException”。Map<String,List<String>> map = new HashMap<>(2);// 省略...List<String> list = map.get("aKey");list.add("增加一个字符串");原因分析断点查看此时的list,其具体类型原创 2021-05-19 09:22:03 · 781 阅读 · 0 评论 -
【Java】JVM调优
JVM性能调优1、JVM调优目标:使用较小的内存占用来获得较高的吞吐量或者较低的延迟。程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得程序在正常运行的前提下,获得更高的用户体验和运行效率。这里有几个比较重要的指标: 内存占用:程序正常运行需要的内存大小。转载 2021-04-17 11:15:51 · 181 阅读 · 0 评论 -
【EL】#{}和${}的区别是什么?
#{}和${}的区别是什么?a、#{}是预编译处理,${}是字符串替换。b、Mybatis 在处理 #{} 时,会将 sql 中的 #{} 替换为?号,调用 PreparedStatement 的 set 方法来赋值;c、Mybatis 在处理 ${} 时 , 就是把 ${} 替换成变量的值。d、使用#{}可以有效的防止 SQL 注入,提高系统安全性。参考文章原文链接:https://blog.csdn.net/weixin_45567738/article/details/1145转载 2021-03-26 15:29:07 · 174 阅读 · 0 评论 -
【Java】日期格式常量整理
因在项目中频繁使用日期格式,这里稍做整理,方便自己也方便有需要的朋友!!!package com.michael.tool.date;import org.apache.commons.lang3.time.FastDateFormat;import java.util.Locale;import java.util.TimeZone;/** * 日期格式 * <p> * Created by michael on 2018/6/11. */public class转载 2021-03-26 14:43:12 · 801 阅读 · 0 评论 -
使用try-with-resource关闭jdbc连接
描述Java 1.7中新增的try-with-resource语法可以用来自动关闭打开的资源,如流、数据库连接、Socket连接等,这可以减少代码量,避免忘记关闭资源导致的资源泄露等问题关闭jdbc连接的传统写法package jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public cl..转载 2021-03-24 15:03:14 · 783 阅读 · 0 评论 -
String.format()的详细用法
问题在开发的时候一段字符串的中间某一部分是需要可变的 比如一个Textview需要显示”XXX用户来自 上海 年龄 21 性别 男”其中的 XXX 是用户名 每个用户也是不一样的地区 上海 为可变的string数据年龄 21 为可变的int数据性别 男 为可变的string数据遇到这种情况你们是怎么样解决的呢?把这段字符串保存在常量类里吗?不!我们应该遵循Google的开发模式XML<string name="user_info'> %1$s</span&...转载 2021-03-24 14:52:36 · 201 阅读 · 0 评论 -
【Java】Array、List、Set互相转化
1. Array、List、Set互转实例1.1 Array、List互转Array转ListString[] s = new String[]{"A", "B", "C", "D","E"};List<String> list = Arrays.asList(s);注意:这里list里面的元素直接是s里面的元素( list backed by the specified array),换句话就是说:对s的修改,直接影响list。s[0] ="AA";System.o转载 2021-03-05 10:58:30 · 118 阅读 · 1 评论 -
【Java】java格式化时间到毫秒
Java代码 java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");JAVA中各种日期表示字母如下:G Era 标志符 Text AD y 年 Year 1996;96 M 年中的月份 Month July;Jul;07 w 年中的周数 Number 27 W 月份中的周...转载 2021-03-01 10:40:13 · 364 阅读 · 0 评论 -
【Java】字符串常量池(实现原理、垃圾回收)
前言字符串常量池在java6之前位于永久代,永久代从名字上已经告诉我们这里垃圾回收效果很差,如果字符串常量池中含有大量的字符串,那么很容易造成永久代溢出。从java7开始,字符串常量池挪到了堆中,堆空间一般比较大,而且堆空间的回收效率很高,所以相对于在永久代,放到堆空间后,内存溢出的情况大大减少。本文接下来先通过代码观察一下常量池,然后介绍字符串常量池如何实现的。本文使用的是jdk8。本文目录一、代码实验 二、字符串常量池实现原理一、代码实验这里主要使用String.intern方法转载 2021-02-07 10:07:03 · 1632 阅读 · 0 评论 -
IaaS、PaaS、SaaS、CaaS、MaaS五者的区别_云计算概念大全
云计算构架图 很明显,这五者之间主要的区别在于第一个单词,而aaS都是as-a-service(即服务)的意思,这五个模式都是近年来兴起的,且这五者都是云计算的落地产品,所以我们先来了解一下云计算是什么。1、云计算是什么云计算(cloudcomputing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以...转载 2021-01-31 14:19:25 · 990 阅读 · 0 评论 -
获取HttpServletRequest几种方法
获取方法代码获取先web.xml配置<listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class></listener>后代码获取HttpServletRequest request = ((ServletRequestAttributes)Reque转载 2021-01-20 17:54:10 · 552 阅读 · 0 评论 -
【Java】Object中的 wait、notify/notifyAll 方法详解
方法说明1、wait()、notify/notifyAll() 方法是Object的本地final方法,无法被重写。2、wait()执行后拥有当前锁的线程会释放该线程锁,并处于等待状态(等待重新获取锁)3、notify/notifyAll() 执行后会唤醒处于等待状态线程获取线程锁、只是notify()只会随机唤醒其中之一获取线程锁,notifyAll() 会唤醒所有处于等待状态的线程抢夺线程锁。示例三个方法的最佳实践代码如下:public class WaitAndNotify转载 2020-12-29 16:44:07 · 452 阅读 · 0 评论 -
【Java】锁 Lock接口详解
一:java.util.concurrent.locks包下常用的类与接口(lock是jdk 1.5后新增的)(1)Lock和ReadWriteLock是两大锁的根接口,Lock代表实现类是ReentrantLock(可重入锁),ReadWriteLock(读写锁)的代表实现类是ReentrantReadWriteLock。Lock 接口支持那些语义不同(重入、公平等)的锁规则,可以在非阻塞式结构的上下文(包括 hand-over-hand 和锁重排算法)中使用这些规则。主要的实现是 Reent转载 2020-12-29 11:11:49 · 570 阅读 · 0 评论 -
JDK8 Optional
参考文章https://www.jianshu.com/p/d81a5f7c9c4e转载 2020-07-24 15:07:13 · 86 阅读 · 0 评论 -
【Java】为什么byte类型的取值范围为-128~127?
在学习Java基础语法的时候,初学者的我们可能都会有这么一个疑问为什么byte类型的取值范围为什么是[-128,127]而不是[-127,127]。01111111表示最大的数值:127,因为第一位是符号位,所以11111111应该是最小的数值:-127,不是这样才对?在解释这个问题之前我们需要了解几个概念:机器数、真值、原码、反码、补码机器数:一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。比如:十进制中的转载 2020-11-26 15:56:32 · 935 阅读 · 0 评论 -
【Exception】Class com.XXX1 can not access a member of class com.XXX2 with modifiers “public“
问题描述在com.XXX1类中利用反射创建com.XXX2的实例对象,报错:“Class com.XXX1 can not access a member of class com.XXX2 with modifiers "public"”,而现在com.XXX2这个类没有用public修饰,采用默认访问修饰符。原因分析com.XXX2这个类不可访问,异常描述的意思是把这个类的访问修饰符改成public。解决方法解决思路就是在com.XXX1中可以访问com.XXX2方法一:用pub原创 2020-10-12 09:50:42 · 3696 阅读 · 0 评论 -
【Java】浮点数相等性比较
今天在读《Java开发手册》时,看到浮点数的等值判断问题「浮点数的基本数据类型不能用 == 比较,包装数据类型不能用 equals 比较」。以前开发时也遇到过浮点数的坑,所以就想一探究竟。1. 浮点数表示在计算机系统理论中,浮点数采用 IEEE 754 标准表示,编码方式是符号+阶码+尾数,如图:浮点数表示比如 float 类型占用 32 位,单精度浮点表示法:符号位(sign)占用 1 位,用来表示正负数,0 表示正数,1 表示负数 指数位(exponent)占用 8 位,用来表转载 2020-10-02 15:10:33 · 1519 阅读 · 0 评论 -
【Java】用split分割String字符串
问题描述前端传入的字符串用逗号(英文)分隔,但在文本框手输(有点low)可能会出现中文逗号,要兼容这种情况。原因分析解决方法在split方法中使用正则表达式来代替具体的分隔符",|,"参考文章...原创 2020-09-28 13:38:01 · 142 阅读 · 0 评论 -
【Java】【Enum】56个民族
枚举示例public enum NationalityEnum { HAN("01", "汉族"), MONGOL("02","蒙古族"), HUI("03","回族"), TIBETAN("04","藏族"), UYGHUR("05","维吾尔族"), MIAO("06","苗族"), YI("07","彝族"), ZHUANG("08","壮族"), BUYEI("09","布依族"), KOREAN("10","朝鲜转载 2020-09-24 17:03:51 · 1125 阅读 · 0 评论 -
【Java】【reflect】object is not an instance of declaring class
问题描述springboot项目中利用反射机制调用接口中定义的方法,报错:“object is not an instance of declaring class”// 反射Class<?> cls = Class.forName("类的全路径名");// 获取method对象;func是接口中定义的方法名;String.class是方法参数类型Method method = cls.getMethod("func", String.class);// 调用方法method原创 2020-09-16 16:00:11 · 6407 阅读 · 0 评论 -
【Java】动态代理死循环内存溢出
问题描述在实现动态代理时发现,运行时会不断循环执行InvocationHandler中的的invoce方法,导致内存溢出// cls是一个类Strategy strategy = (Strategy) Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object proxy, Meth原创 2020-09-16 14:53:25 · 485 阅读 · 0 评论 -
【Java】【Proxy】com.sun.proxy.$ProxyXXX cannot be cast to XXX
问题描述springboot项目中使用动态代理来调用方法// 动态代理;cls是一个类;Strategy是一个接口Strategy strategy = (Strategy) Proxy.newProxyInstance(cls.getClass().getClassLoader(), cls.getClass().getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object Pr原创 2020-09-16 09:47:38 · 719 阅读 · 0 评论