Java
文章平均质量分 83
Bonnenult浅时光
计算机专业毕业,从事软件开发
展开
-
JAVA实现AES加密、解密
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。那么为什么原来的DES会被取代呢,原因就在于其使用56位密钥,比较容易被破解。而AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据,相对来说安全很多。完善的加密算法在理论上是无法破解的,除非使用穷尽法。使用穷尽法破解密钥长度在128位以上的加密数据是不现实的,仅存在理论上的可能性。原创 2023-02-03 17:59:34 · 2837 阅读 · 0 评论 -
Java关于中查询数据时,报错java.lang.IllegalArgumentException: HOUR_OF_DAY: 0 -> 1的问题
Java关于中查询数据时,报错 Cause: java.lang.IllegalArgumentException: HOUR_OF_DAY: 0 -> 1的问题1、报错在mysql中,表数据中有生日字段(datetime类型),且日期为1948-05-01 00:00:00,java中用Date对象接收。在查询数据时,报错java.sql.SQLException: HOUR_OF_DAY: 0 -> 1,但将日期修改为其他则正常。看网上有人说将severTimezone设置为,Asia原创 2020-12-16 18:46:10 · 8707 阅读 · 6 评论 -
Java并发编程_线程池相关
1.什么是线程池?通俗理解就是一个容器,里面放了一些线程,需要用时就取出来用,用完了就放回去等待下一次用。线程池内部维护一个任务队列,从池里取出线程去执行队列里的任务。2.为什么要使用线程池在 Java 诞生之初是没有线程池的概念的,而是先有线程,随着线程数的不断增加,人们发现需要一个专门的类来管理它们,于是才诞生了线程池。没有线程池的时候,每发布一个任务就需要创建一个新的线程,这样在任务少时是没有问题的。但是,创建线程时会产生系统开销,并且每个线程还会占用一定的内存等资源,更重要的是我们创建如此原创 2020-12-01 10:52:57 · 101 阅读 · 0 评论 -
Java并发编程_线程安全相关
一、竞态条件与临界区在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源。如,同一内存区(变量,数组,或对象)、系统(数据库,web services等)或文件。实际上,这些问题只有在一或多个线程向这些资源做了写操作时才有可能发生,只要资源没有发生变化,多个线程读取相同的资源就是安全的。如以下代码,两个线程同时对 i 进行 i++ 操作,最后的输出可能是 15875 等小于20000的数,而不是我们期待的20000public class ThreadNotSafe {原创 2020-11-28 14:57:22 · 129 阅读 · 0 评论 -
Java并发编程_线程是如何在 6 种状态之间转换的
线程的6种状态在 Java 中线程的生命周期中一共有 6 种状态。New(新创建)Runnable(可运行)Blocked(被阻塞)Waiting(等待)Timed Waiting(计时等待)Terminated(被终止)如果想要确定线程当前的状态,可以通过 getState() 方法,并且线程在任何时刻只可能处于 1 种状态。New 新创建New 表示线程被创建但尚未启动的状态:当我们用 new Thread() 新建一个线程时,如果线程没有开始运行 start() 方法,所以也原创 2020-11-25 10:05:54 · 98 阅读 · 0 评论 -
Java并发编程_正确停止一个线程
如何正确停止一个线程?想要启动线程需要调用 Thread 类的 start() 方法,并在 run() 方法中定义需要执行的任务,那么如何正确停止它?为什么需要正确停止一个线程一般情况下,我们不会手动停止一个线程,而是允许它自然运行到结束,然后停止。但是有些特殊情况下我们需要提前停止线程,如:程序运行出错重启,用户突然关闭程序等。这种情况下,即将停止的线程在某些业务场景下仍然很有价值,尤其是当我们想写一个能够安全应对各种场景的健壮性好的程序时,正确停止线程就显得格外重要。然而Java并没有提供简单易原创 2020-11-24 18:49:21 · 244 阅读 · 0 评论 -
Java并发编程_线程实现方式
1.实现线程的方法实现线程是并发编程中基础中的基础,因为我们必须要先实现多线程,才可以继续后续的一系列操作,那么实现线程的方式到底有几种?1)实现 Runnable 接口第 1 种方式是通过实现 Runnable 接口实现多线程,如代码所示,首先通过 RunnableThread 类实现 Runnable 接口,然后重写 run() 方法,之后只需要把这个实现了 run() 方法的实例传到 Thread 类中就可以实现多线程。public class RunnableThread implement原创 2020-11-24 09:27:40 · 109 阅读 · 0 评论 -
java mybatis 关于中向数据库中插入数据时,报错java.lang.NullPointerException的问题
今天在实现想MySQL的数据库一个insert数据时出现一个错误;org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.lang....原创 2018-07-11 14:15:33 · 11398 阅读 · 0 评论