陈川
个人专栏

最新文章

Spring JPA报错:Not supported for DML operations

在一个Spring JPA项目中,执行更新或删除是报错:Not supported for DML operations解决方法:只需要添加注解@Modifying即可。@Modifying@Query(value = "update User user set user.address = :address where user.id = :id ")void updateUserAddress

Ubuntu 18.10 LTS上安装JDK 11.0.6

下载JDK首先到Oracle官网下载JDK,JDK 11的下载地址:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html下载的是linux通用版本:jdk-11.0.6_linux-x64_bin.tar.gz,如图: 安装JDK安装压缩包版本的jdk比较简单,创建一个安装路径,然后把压

Java防止非静态内部类内存泄漏

内存泄漏一个不会被使用的对象,因为另一个正在使用的对象持有该对象的引用,导致它不能正常被回收,而停留在堆内存中,从而导致内存泄漏。最坏的情况下,由于大量的内存泄漏,最终导致jvm的内存耗尽,致使程序奔溃。也可能会导致内存空间不足,jvm出现频繁的GC。代码示例import java.util.ArrayList;class OuterClass{ private int[] data; p

查询Redis数据库的数量

redis数据库的数量是固定的,可以在redis.conf查询到redis数据库的数量。使用grep命令:$ cat redis.conf | grep databasesdatabases 16当然,也可以在redis-cli上查询数据库的数量:127.0.0.1:6379> CONFIG GET databases1) "databases"2) "16"使用config get dat

Redis设置key过期以及删除过期key的策略

Redis有以下几个命令用于设置key的过期时间:expire <key> <seconds>:给key设置以秒为单位的过期时间pexpire <key> <milliseconds>:给key设置以毫秒为单位的过期时间expireat <key> <timestamp_in_seconds>:指定一个以秒为单位的时间戳,当到

Java Predicate接口的使用

Java 8新增了Predicate接口,它是一个函数接口,提供的test函数会接收一个参数,并返回一个bool值,我们可以用它来做过滤,检测类等功能。源码说明@FunctionalInterfacepublic interface Predicate<T> { /** * 具体过滤操作 需要被子类实现. * 用来处理参数T是否满足要求,可以理解为 条件A

Java验证公私密钥对

验证过程:创建一个足够长的随机字节数,称为challenge使用密钥签名challenge使用公钥验证challenge示例代码:KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");  //密钥生成器 keyGen.initialize(2048); Ke

[译]代码优先的Java 9模块系统教程(二)

服务监控(ServiceMonitor)让我们来想象一个提供娱乐服务的网络,可能是社交网络或者是视频网络。我们希望监控这些服务,以确定系统的健康状况,并且在发生问题时能够发现,而不是客户报告。 这就是ServiceMonitor示例程序所要做的:监视这些服务(另一个惊喜)。幸运的是,服务已经收集了我们想要的数据,ServiceMonitor所需要做的就是定期查询。 不幸的是,并

[译]代码优先的Java 9模块系统教程(一)

Java平台模块系统(JPMS)将模块化带入Java和JVM,并改变了我们在大型应用中的编程方式。 为了充分利用它,我们需要很好地了解,第一步是学习基础知识。 在本教程中,我首先向你展示一个简单的Hello World示例,然后我们用Java 9将一个现有的demo程序模块化。我们将创建模块声明(module-info。java),使用模块路径来编译,打包,以及运行程序——先代