Java
文章平均质量分 56
Java
DEVZYH
这个作者很懒,什么都没留下…
展开
-
Java8支持TLSv1.3协议请求
Java默认使用的协议版本Java版本HTTPS请求默认使用的TLS版本支持的协议JDK7TLSv1TLSv1、TLSv1.1、TLSv1.2、SSLv3JDK8TLSv1.2TLSv1、TLSv1.1、TLSv1.2、SSLv3JDK11TLSv1.3TLSv1、TLSv1.1、TLSv1.2、TLSv1.3、SSLv3协议版本不支持的异常信息Exception in thread "main" javax.net.ssl.SSLHandshakeE原创 2021-12-21 22:19:34 · 9376 阅读 · 1 评论 -
金额数据处理
BigDecimalflot和double进行数字计算时会有精度上的丢失,在一般计算中是没有问题的。涉及到金额上的计算就会产生比较大的影响,这时推荐使用java.math包的BigDecimal类。下面介绍BigDecimal常用的方法。类常用方法方法说明BigDecimal(double val)使用double数值构造BigDecimal对象BigDecimal(int val)使用int数值构造BigDecimal对象BigDecimal(String原创 2021-12-10 19:06:52 · 183 阅读 · 0 评论 -
活锁的产生
活锁定义程序一直在运行,也没有被阻塞,却一直获取不到结果。活锁一般是因为代码上流程的问题导致的。活锁会一直消耗系统资源。相关案例特定状态的单据需要同步给其他系统,同步成功后更改状态。原有流程如下:1. 根据指定状态获取待同步数据。2. 循环同步单据到其他系统。3. 同步成功后更新当前单据状态。4. 同步失败跳过当前单据执行下一个。5. 再次重复1的动作。当对方系统出现问题时,单据就会一直尝试同步,一直消耗系统资源,从而影响其他任务的执行。以及产生大量的错误日志。原创 2021-12-08 14:07:34 · 347 阅读 · 0 评论 -
数据库查询超时排查
问题出现系统接口调用方告诉我接口返回错误信息,查询日志之后发现如下报错:org.springframework.dao.DataAccessResourceFailureException:org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransi原创 2021-12-07 16:53:31 · 2375 阅读 · 0 评论 -
自定义线程池
线程池简介Java的线程与系统的线程一一对应,创建线程的系统资源开销比较大。过多的线程会占用更多的系统资源,线程的上下文切换也会带来系统资源开销。线程池可以对线程进行统一管理,平衡线程与系统资源直接的关系,提高系统资源利用率与程序稳定性。创建一个自定义线程池代码如下:// 使用指定参数创建一个线程池ThreadPoolExecutor executor = new ThreadPoolExecutor( 1, // 最大核心线程数量原创 2021-12-05 00:38:28 · 1078 阅读 · 0 评论 -
Java操作数据库出现的时间差
问题复现使用参数占位符的形式执行SQL时,若传入的类型为时间类型则可能产生因时区导致的时间差,从而造成数据异常。代码如下:public static void main(String[] args) throws Exception { Class.forName("com.mysql.cj.jdbc.Driver"); Properties prop = new Properties(); prop.load(Resources.getResourceAsStream原创 2021-06-03 18:03:11 · 227 阅读 · 0 评论 -
类的执行过程
案例Person.javapublic class Person { public String name; public char sex; public int age; public void show(){ int age = this.age + 20; System.out.printf("二十年后 姓名: %s 性别: %c 年龄: %d",name,sex,age); }}PersonTe原创 2021-05-13 20:33:13 · 184 阅读 · 0 评论