- 2024-11-19JDK21新增特性
顺序集合(SequencedCollections)提供了几个新的接口,用于实现有序的集合。在没有提供有序集合操作之前,我们进行集合的序列操作一般如下FirstelementLastelementListlist.get(0)list.get(list.size()-1)Dequedeque.getFirst()deque.getLast()SortedSet
- 2024-09-18JDK21中找不到 javax.annotation.Resource 了?
在JDK9及以后版本,特别是到JDK21,javax.annotation.Resource这样的类已经不再包含在标准的JDK中。原因是从JDK9开始,Java进行了模块化(ProjectJigsaw),并移除了部分与JavaEE(现在称为JakartaEE)相关的包,例如javax.annotation。为什么会找不到javax.annotation.Resourc
- 2024-07-21一文揭开JDK21虚拟线程的神秘面纱
虚拟线程快速体验环境:JDK21+IDEApublicstaticvoidmain(String[]args){try(varexecutor=Executors.newVirtualThreadPerTaskExecutor()){IntStream.range(0,10_000).forEach(i->{executor.submit(()->{Thread.sle
- 2024-07-21一文揭开JDK21虚拟线程的神秘面纱
虚拟线程快速体验环境:JDK21+IDEApublicstaticvoidmain(String[]args){try(varexecutor=Executors.newVirtualThreadPerTaskExecutor()){IntStream.range(0,10_000).forEach(i->{executor.submit(()->{Threa
- 2024-04-04docker使用alpine构建jdk21镜像
1,Dockerfile#使用AlpineLinux作为基础镜像FROMalpine:latest#设置语言环境变量为中文ENVLANG=zh_CN.UTF-8#安装所需的软件包,包括中文字体和中文语言支持RUNapkadd--no-cache\ttf-dejavu\fontconfig\tzdata\openjdk21
- 2024-04-01关于JDK21控制台字符集编码问题
关于JDK21控制台字符集编码问题前言:某日尝试JDK21,idea控制台字符集编码一直乱码,后将idea所有能配置UTF-8的配置都配了一遍,无果,后搜索JDK21字符集编码相关后解决1.配置项目字符集点击菜单File->settings->appearence,将字体设置为支持中文的微软雅黑2.设置字符编码
- 2024-03-08jdk21新特性
jdk21新特性内容基本就是收集了下官方说明,然后自己汉化了下觉得有必要记录的。原文请看文章末尾编码字符集默认编码为UTF-8,而不是取用当前运行操作系统的编码。-Dfile.encoding=UTF-8可以不再设置JVM变更G1单块支持31M=>512MG1使用单标记bitmap类名检测1.4
- 2024-01-30【Java】Java版本升级,找不到符号 问题处理
哈喽,各位早上/中午/晚上好呀!JDK21出了也有一段时间了,有的小伙伴也按捺不住开始将项目升级到JDK21了吧。既然升级,大概多多少少都会遇到“找不到符号”的问题,英文原文是“cannotfindsymbol”。如何解决呢?以下方式不止针对于升级到JDK21,其它版本的升级配置方法相同。其实Idea
- 2023-12-14springboot虚拟线程(jdk21,springboot3.2.0)
1.什么是虚拟线程虚拟线程是JDK21版本正式发布的一个新特性。虚拟线程和平台线程主要区别在于,虚拟线程在运行周期内不依赖操作系统线程:它们与硬件脱钩,因此被称为“虚拟”。这种解耦是由JVM提供的抽象层赋予的。虚拟线程的运行成本远低于平台线程。它们消耗的内存要少得多。这就
- 2023-12-10再见了Future,图解JDK21虚拟线程的结构化并发
Java为我们提供了许多启动线程和管理线程的方法。在本文中,我们将介绍一些在Java中进行并发编程的选项。我们将介绍结构化并发的概念,然后讨论Java21中一组预览类——它使将任务拆分为子任务、收集结果并对其进行操作变得非常容易,而且不会不小心留下任何挂起的任务。1基础方法通
- 2023-12-10再见了Future,图解JDK21虚拟线程的结构化并发
Java为我们提供了许多启动线程和管理线程的方法。在本文中,我们将介绍一些在Java中进行并发编程的选项。我们将介绍结构化并发的概念,然后讨论Java21中一组预览类——它使将任务拆分为子任务、收集结果并对其进行操作变得非常容易,而且不会不小心留下任何挂起的任务。1基础方法
- 2023-12-07响应式编程又变天了?看JDK21虚拟线程如何颠覆!
本文解释为啥会有响应式编程,为什么它在开发者中不太受欢迎,以及引入Java虚拟线程后它可能最终会消失。命令式风格编程一直深受开发者喜爱,如if-then-else、while循环、函数和代码块等结构使代码易理解、调试,异常易追踪。然而,像所有好的东西一样,通常也有问题。这种编程风格导致
- 2023-11-29jdk21-虚拟线程
jdk文档:https://openjdk.org/jeps/444关键内容整理虚拟线程是轻量级线程,可显著减少编写、维护和观察高吞吐量并发应用程序的工作量。默认情况下,直接使用API创建的虚拟线程(而不是通过创建的虚拟线程)现在也会在其整个生命周期内受到监视,并且可以通过观察虚拟线程部分
- 2023-10-17JDK21的虚拟线程是什么?和平台线程什么关系?
虚拟线程(VirtualThread)是JDK而不是OS实现的轻量级线程(LightweightProcess,LWP),由JVM调度。许多虚拟线程共享同一个操作系统线程,虚拟线程的数量可以远大于操作系统线程的数量。在引入虚拟线程之前,java.lang.Thread包已经支持所谓的平台线程,也就是没有虚拟线程之前,我们一直
- 2023-09-18JDK21来了!附重要更新说明
JDK21计划23年9月19日正式发布,虽然一直以来都是“版本随便出,换8算我输”,但这么多年这么多版本的折腾,如果说之前的LTS版本JDK17你还觉得不香,那JDK21还是有必要关注一下,因为会有一批重要更新发布到生产环境中,特别是千呼万唤的虚拟线程,虽然说这东西我感觉不需要的用不到,需要的
- 2023-08-29lombok1.18.28无法在jdk21环境使用
java:java.lang.NoSuchFieldError:Classcom.sun.tools.javac.tree.JCTree$JCImportdoesnothavememberfield'com.sun.tools.javac.tree.JCTreequalid'目前lombok在jdk21版本有缺陷关联问题https://github.com/projectlombok/lombok/issues/3393
- 2023-08-22掌握JDK21全新结构化并发编程,轻松提升开发效率!
1概要通过引入结构化并发编程的API,简化并发编程。结构化并发将在不同线程中运行的相关任务组视为单个工作单元,从而简化错误处理和取消操作,提高可靠性,并增强可观察性。这是一个预览版的API。2历史结构化并发是由JEP428提出的,并在JDK19中作为孵化API发布。它在JDK20中被JEP4