java
文章平均质量分 54
程序员食堂
一个写了10多年bug的程序员。
展开
-
java23发布啦
初学者无需使用单独的语言方言,而是可以为单类程序编写精简的声明,然后随着技能的增长无缝扩展他们的程序以使用更高级的功能。在 Java 编程语言的构造函数中,允许语句出现在显式构造函数调用之前,即super(..)或this(..)。保留构造函数在类实例化期间按自上而下的顺序运行的现有保证,确保子类构造函数中的代码不会干扰超类的实例化。范围值 API 通过JEP 429在 JDK 20 中孵化,通过JEP 446成为 JDK 21 中的预览 API ,并通过JEP 464在 JDK 22 中重新预览。原创 2024-09-21 15:07:42 · 1026 阅读 · 0 评论 -
HTTP/3 协议学习
HTTP/3 是互联网上用于传输超文本的协议 HTTP 的第三个主要版本。它是 HTTP/2 的后继者,旨在进一步提高网络性能和安全性。HTTP/3 与前两个版本的主要区别在于它使用了一个完全不同的底层传输协议——QUIC(Quick UDP Internet Connections),而不是 TCP(Transmission Control Protocol)。原创 2024-06-18 09:18:33 · 909 阅读 · 0 评论 -
class lombok.javac.apt.LombokProcessor (in unnamed module @0x43a188b6) cannot access class com.sun.t
类lombok.javac.apt.LombokProcessor(在未命名的模块@0x43a188b6中)无法访问类com.sun.tools.javac.processing。JavacProcessingEnvironment(在模块jdk.compiler中),因为模块jdk.compiler不将com.sun.tools.javac.processing导出到未命名的模块@0x43a188b6。原创 2024-06-06 05:30:00 · 1439 阅读 · 0 评论 -
java的unsafe
这个类通常不鼓励普通开发者使用,因为它绕过了Java语言的一些安全性和内存管理机制,可能会导致难以追踪的错误和安全漏洞。类的使用可能会破坏Java的内存安全和类型安全,因此它通常被限制在Java核心库和一些需要高性能或底层操作的库中使用,例如Java的并发库(如。在大多数情况下,使用更高级的API和设计模式来实现你的需求会是更好的选择。类的使用受到了更多的限制,并且Java社区鼓励开发者使用更安全的API来替代。包下的原子类,它们提供了线程安全的、无锁的编程方式。可以获取数组的基地址和元素的大小。原创 2024-05-23 15:09:07 · 448 阅读 · 0 评论 -
Java中transient关键字
如果你希望在序列化和反序列化过程中手动处理。原创 2024-05-22 09:42:23 · 430 阅读 · 0 评论 -
Java的并发集合
当需要修改集合时,它们会创建集合的一个副本进行修改,然后替换原来的引用,这样读操作就不会被写操作阻塞,但写操作成本较高。这意味着在写操作时,会创建一个新的数组副本,并在副本上进行修改,而读操作则直接在原始数组上进行。当需要修改集合时,它们会创建集合的一个副本进行修改,然后替换原来的引用,这样读操作就不会被写操作阻塞,但写操作成本较高。通过这种结构,可以在不加锁的情况下进行高效的查找操作。: 接口代表一个线程安全的队列,其特点是可以在队列为空时阻塞获取元素的线程,或者在队列满时阻塞尝试添加元素的线程。原创 2024-05-21 16:49:07 · 1133 阅读 · 0 评论 -
InaccessibleObjectException: Unable to make field protected java.lang.reflect.InvocationHandler java
应该作为最后的手段,因为它绕过了Java模块系统的安全性和封装性。在可能的情况下,最好通过修改代码或模块描述符来解决问题。来绕过Java的访问控制。但是,这种方法不推荐用于生产代码,因为它可能导致安全漏洞,并且通常被认为是不良实践。通常发生在尝试访问一个由于Java访问控制规则而无法访问的字段或方法时。在Java 9及更高版本中,引入了模块系统,这改变了访问某些类和成员的方式。模块没有对未命名模块(即没有模块描述符的代码)开放。:如果你正在使用模块化应用程序,你可能需要修改。:如果你无法修改模块描述符。原创 2024-05-09 06:00:00 · 3166 阅读 · 0 评论 -
Java17的崛起——newrelic的2024 年 Java 生态系统状
2020 年,Oracle 是最受欢迎的 JDK 供应商,约占 Java 市场的 75%。到 2023 年,大约十分之一 (9%) 的应用程序在生产中使用 Java 17,而现在 35% 的应用程序正在使用 Java 17,一年内增长率接近 300%。Oracle 于 2023 年 9 月发布了 Java 21,这标志着 Java 的一个重要里程碑,对虚拟线程和升级库等预览功能进行了显着改进,并且语法方面也取得了进步,使 Java 与许多更现代的语言相媲美。G1已经是垃圾回收的王者了!原创 2024-05-07 09:54:32 · 1513 阅读 · 2 评论 -
JWK和JWT 学习
和是现代Web应用程序中用于安全通信的两个重要概念。它们都是基于JSON的,并且是OAuth 2.0和OpenID Connect等协议的核心组成部分。官方文档JWT官方网站JWK和JWK Set的RFC文档JWT的RFC文档。原创 2024-05-06 17:11:34 · 1562 阅读 · 1 评论 -
maven打包springboot项目时Unable to find a single main class from the following candidates
报错信息 "Unable to find a single main class from the following candidates" 表示应用程序打包过程中无法确定应用的主类。这通常发生在使用像 Maven 或 Gradle 这样的构建工具进行打包时,构建工具试图自动确定应用的入口点(即包含 main 方法的类),但是没有找到或找到了多个候选类。原创 2024-04-26 10:44:40 · 1475 阅读 · 2 评论 -
jar中没有主清单属性
运行springboot的jar 提示:jar中没有主清单属性。我的pom.xml 的plugins配置是下面。把配置改成下面就可以了。原创 2024-04-24 06:30:00 · 317 阅读 · 0 评论 -
Exception in thread “main“ java.lang.NoClassDefFoundError: cn/hutool/core/util/StrUtil
学习一maven的 scope属性吧。原创 2024-04-19 16:45:48 · 1722 阅读 · 0 评论 -
linux 安装openjdk-1.8
查看到jre 以及java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64。原创 2024-04-17 15:18:44 · 1009 阅读 · 0 评论 -
无效的标记: --release
maven所使用的jdk版本和idea所使用的jdk版本不一致导致的。检查pom.xml,maven和项目使用的jdk版本是否一致。之前一直用java8开发项目。修改idea中的配置。原创 2024-04-16 15:16:47 · 884 阅读 · 0 评论 -
java使用ShutdownHook优雅地停止服务
在Java程序中可以通过添加关闭钩子,实现在程序退出时关闭资源、平滑退出的功能。使用Runtime.addShutdownHook(Thread hook)方法,可以注册一个关闭的钩子,这个钩子可这通常用于确保在应用程序退出时能够执行一些清理工作,比如关闭文件流、释放资源、断开数据库连接等。要使用ShutdownHook,你需要实现一个Runnable接口,并将其添加到Runtime.getRuntime()的钩子列表中。原创 2024-04-13 10:20:32 · 651 阅读 · 0 评论 -
下载安装JDK17(windows)
以后所发布的所有版本。原创 2024-04-10 11:01:33 · 661 阅读 · 0 评论 -
几种常见的IO模型学习
Java提供了丰富的IO API,允许开发者以不同的方式进行数据的读取和写入。优点:可以避免 IO 操作阻塞应用程序的执行,并且可以同时处理多个 IO 操作,提高了应用程序的性能。适用场景:适用于需要同时处理多个 IO 操作的场景,例如 Web 服务器。优点:可以避免 IO 操作阻塞应用程序的执行,提高应用程序的并发能力。缺点:IO 操作可能会阻塞应用程序的执行,导致应用程序的性能下降。缺点:需要不断地轮询 IO 操作的状态,增加了应用程序的复杂性。缺点:需要使用特殊的 API,增加了应用程序的复杂性。原创 2024-03-22 14:29:31 · 893 阅读 · 0 评论 -
【spring】使用阿里Spring Initailiz创建项目
网络原因使用Spring Initailiz会出现超时。那我们就换成阿里的。原创 2024-03-13 08:45:00 · 1710 阅读 · 0 评论 -
AES加密学习
AES(高级加密标准)是一种对称密钥加密算法,用于加密和解密数据。它被广泛应用于各种安全领域,包括但不限于网络通信、数据存储和软件保护。AES是由比利时密码学家Joan Daemen和Vincent Rijmen设计的Rijndael算法演变而来的。美国国家标准与技术研究院(NIST)在2001年将其选为新的数据加密标准,以取代旧的DES(数据加密标准)。AES是一种对称密钥算法,这意味着加密和解密使用相同的密钥。它通过一系列复杂的数学变换来加密数据,这些变换包括字节替换、行移位、列混合和轮密钥加。原创 2024-03-06 16:14:38 · 1402 阅读 · 0 评论 -
java8 Duration类学习
方法声明功能描述获取一个 Duration 实例,表示两个时间对象之间的间隔toDays()将时间间隔转换为以天为单位toHours()将时间间隔转换为以时为单位将时间间隔转换为以分为单位将时间间隔转换为以秒为单位toMillis()将时间间隔转换为以毫秒为单位toNanos()将时间间隔转换为以纳秒为单位这个方法用于创建一个表示给定持续时间的Duration对象,单位为纳秒。持续时间可以是从零到Long.MAX_VALUE之间的任何值。用于创建表示特定时间单位的持续时间对象。原创 2024-01-29 16:08:27 · 1068 阅读 · 0 评论 -
java应用CPU过高查找原因
根据进程ID找到占用CPU高的线程。原创 2024-01-13 16:12:55 · 751 阅读 · 0 评论 -
jmap使用
jmap是 Java 虚拟机 (JVM) 中的一个命令行工具,用于生成堆转储。这个工具对于诊断内存问题、分析内存占用情况等非常有用。http://jmap 官方文档。原创 2024-01-13 11:34:42 · 1687 阅读 · 0 评论 -
Description:An attempt was made to call a method that does not exist.
错误信息。原创 2023-12-26 09:10:32 · 885 阅读 · 0 评论 -
The output path is not specified for module XXX
没有为模块XXX指定输出路径。原创 2023-12-25 11:44:24 · 1640 阅读 · 0 评论 -
org/openjdk/nashorn/api/scripting/NashornScriptEngineFactory has been compiled by a more recent vers
org/openjdk/nashorn/api/scripting/NashornScriptEngineFactory是由最新版本的Java Runtime(类文件版本55.0)编译的,该版本的Java Run只识别52.0以下的类文件版本。NashornScriptEngineFactory类是使用比您当前运行程序的版本(Java 8,因为类文件版本52.0对应于Java 8)更新的Java版本(Java 11,因为类档案版本55.0对应于Java11)编译的。这意味着至少要升级到Java 11。原创 2023-12-23 09:49:33 · 1210 阅读 · 0 评论 -
java21特性学习
JDK21是javaSE平台最新的长期支持版本。原创 2023-12-17 17:50:48 · 1167 阅读 · 0 评论 -
【java】-D参数使用
在开发过程中我们使用开源工具经常会用到在启动命令时候加入一个类型的参数。到底-Dxxx是干什么用的了。原创 2023-11-25 17:00:43 · 1596 阅读 · 0 评论 -
【springboot】Failed to start bean ‘webServerStartStop‘;
Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server未能启动bean“webServerStartStop”;嵌套异常为org.springframework.boot.web.server.WebServer异常:无法启动嵌入式Tomcat服务器原创 2023-11-13 12:00:23 · 7155 阅读 · 1 评论 -
读写access数据(简单版)
用到的技术 java8 、springboot2.7.11、maven。对应的分支是 simple。原创 2023-04-22 14:59:36 · 776 阅读 · 0 评论 -
RestClientException: Could not extract response: no suitable HttpMessageConverter found for response
今天请求百度的鹰眼服务返回下面的错误:org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.GetDistanceResultDto] and content type [text/javascript;charset=UTF-8] at org.sp.原创 2021-05-13 16:55:51 · 3702 阅读 · 0 评论 -
查看 java进程占用系统内存高
使用 命令 ps -ef | grep Java名目名字使用top命令查看系统资源的使用情况,命令:top定位线程问题(通过命令查看15960进程的线程情况),命令:ps p 15960 -L -o pcpu,pmem,pid,tid,time,tname,cmd...原创 2019-12-06 12:00:17 · 1286 阅读 · 0 评论 -
idea 安装 lombok插件
Lombok使用介绍Lombok是Java语言的实用工具,确切的说,应该说是一个很好用的插件,对,插件!可以用来帮助开发人员消除Java代码的冗长,尤其是对于简单的Java对象(POJO),它通过注解实现这一目的,而不是一大段一大段的Java方法。IDEA中的安装打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositor...原创 2018-08-16 10:11:02 · 26142 阅读 · 3 评论 -
【随笔】Java web 返回参数模板 Response
Java web 返回参数模板 Responsepublic class Response<T> { private int version = 0; private int status = 0; private String errMsg = ""; /** @deprecated */ @Deprecated privat...原创 2018-11-06 11:41:27 · 1513 阅读 · 1 评论 -
【随笔】Java 基于Redis分布式锁
定义接口public interface IDistributedLock { boolean tryLock(String var1, Object var2); boolean tryLock(String var1, Object var2, int var3); boolean unLock(String var1, Object var2);}...原创 2018-11-06 11:49:11 · 244 阅读 · 0 评论 -
【随笔】Java Calendar 比较相差几天
Java Calendar 比较相差几天,考虑跨年问题: /** * 日历比较相差几天 * 注:如果两个是日期不相等,后面参数必须大于前面参数,即:cal2 > cal1 * @param cal1 * @param cal2 * @return */ public static int differentDa...原创 2018-11-06 14:43:55 · 2062 阅读 · 0 评论 -
【随笔】Java 基于Redis分布式锁(二)
public class RedisCache { @Autowired private RedisTemplate redisTemplate; private Map<String, String> randomValueMap = new ConcurrentHashMap(); /** * 将String类型值存入redis,并设置...原创 2018-11-08 18:58:20 · 481 阅读 · 0 评论 -
Command line is too long. Shorten command line for SpringBootMainApplication or also for Application
问题如图:Error running 'SpringBootMainApplication': Command line is too long. Shorten command line for SpringBootMainApplication or also for Application default configuration.解决方案:修改项目下 .idea\w...原创 2018-12-03 18:09:02 · 82201 阅读 · 39 评论 -
设计模式原则
软件的可维护性一个好的软件设计,必须能够允许新的设计要求以较为容易和平稳的方式加入到已有系统中一个可维护性好的系统,应当允许维护工作能够以容易、准确、安全和经济的形式进行导致软件可维护性较低的原因:过于僵硬(缺乏可扩展性,新功能不容易加入系统) 过于脆弱(缺乏灵活性,修改某一模块会波及其他模块) 复用率低(开发其他系统又要重头开始开发各个功能模块,这往往是由于我们没有把一些通用的功能模块摘取出原创 2016-12-09 15:08:21 · 386 阅读 · 1 评论 -
对象拷贝工具类BeanutilsCopy
mport java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.List;import org.apache.commons.beanutils.BeanUtils;import org.apache.log4j.Logger;import org.dozer.原创 2016-04-28 23:43:32 · 2333 阅读 · 0 评论 -
解决 Failed to decode downloaded font
使用Springboot+ bootstrap 开发做项目,在写页面时候出现按钮不展示,查看页面出现下面的我问题:因为经过maven的filter,会破坏font文件的二进制文件格式,到时前台解析出错。解决方案: <resources> <resource> <directory>src/main/reso...原创 2018-06-05 16:26:18 · 46756 阅读 · 19 评论