有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
1. Oracle JDK 和 OpenJDK 是什么?Oracle JDK(Java Development Kit)和 OpenJDK(Open Java DevelopmentKit)都是用于开发和运行 Java 应用程序的软件开发工具包。它们提供了编译器、运行时环境和其他必要的工具,使得开发者能够创建和执行 Java 代码。
Oracle JDK:由 Oracle 公司提供和维护的 Java 开发工具包。在过去,Oracle JDK 被认为是 Java 的标准实现,并且需要付费许可证才能使用商业环境中。
OpenJDK:由一群自愿参与的开源社区贡献者共同开发和维护的 Java 开发工具包。OpenJDK 是基于 Sun Microsystems 发布的 JavaSE 规范而构建的,是 Java 的开源实现。
2. Oracle JDK 和 OpenJDK 的关系 Oracle JDK 和 OpenJDK 之间有着密切的关系:
源代码 : ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准 https://blog.zysicyj.top
1. AOT(Ahead-of-Time Compilation)和 JIT(Just-in-Time Compilation)AOT(Ahead-of-Time Compilation)和 JIT(Just-in-Time Compilation)是两种不同的编译方式,用于将高级语言代码转换为机器码以便执行。
AOT: AOT 编译是在程序运行之前将整个源代码或字节码文件一次性地编译成本地机器码。这意味着在程序运行时不需要再进行额外的编译工作,直接执行已经编译好的机器码。
JIT: JIT 编译是在程序运行过程中动态地将热点代码(频繁执行的代码)从字节码即时编译成本地机器码。JIT 编译器会根据实际的执行情况来选择需要编译的代码,并且可以根据优化策略对代码进行优化。
2. AOT 与 JIT 的区别 AOT 和 JIT 有以下几个主要区别:
编译时间 : AOT 编译发生在程序运行之前,需要预先将整个代码编译成机器码,因此编译时间较长。而 J ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准https://blog.zysicyj.top
1. Java 语言的编译与解释Java 语言被称为“编译与解释并存”的原因是它在执行过程中同时使用了编译和解释两种方式。
编译: 在 Java 开发过程中,源代码会经过编译器(javac)将其转换成字节码文件(.class),这个过程就是编译。编译后的字节码文件可以在任何支持 Java 虚拟机(JVM)的平台上运行。
解释: 当 Java 程序运行时,Java 虚拟机会对字节码进行解释或即时编译为机器码再执行。解释执行是逐条解释执行字节码指令,而即时编译则是将热点代码(经常执行的代码)编译成本地机器码,以提高执行效率。
2. 编译与解释的优势Java 语言采用编译与解释相结合的方式带来了以下几个优势:
跨平台性 :Java 字节码作为中间形式具有跨平台特性,可以在不同操作系统和硬件架构上运行。通过编译生成的字节码文件可以在任何支持 Java 虚拟机的平台上执行,实现了” 一次编写,到处运行”的目标。
安全性: 字节码隐藏了源代码的细节,提高了程序的 ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准https://blog.zysicyj.top
1. 什么是字节码?字节码(Bytecode) 是一种中间形式的二进制代码,它由 Java 编译器将 Java 源代码编译而成。字节码不同于机器码,它并不直接在计算机上执行,而是由 Java 虚拟机(JVM)解释或即时编译为机器码后再执行。
字节码是一种与平台无关的格式,它可以在任何支持 Java 虚拟机的操作系统和硬件上运行。这使得 Java 具有跨平台的能力,只需编写一次代码,就可以在多个平台上运行。
2. 为什么需要字节码?使用字节码作为中间形式有以下几个优点:
跨平台性: 字节码可以在不同操作系统和硬件架构上运行,实现了 Java 的”一次编写,到处运行”的特性。
安全性: 字节码文件经过编译,隐藏了源代码的细节,提高了程序的安全性,防止源代码被反编译。
可移植性: 字节码可以在不同版本的 Java 虚拟机上运行,保证了应用程序的兼容性和可移植性。
动态性: 字节码可以在运行时进行加载、链接和执行,实现了 Java 的动态特性,如反射、动态代理等 ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准https://blog.zysicyj.top
1. 什么是 JVM、JDK 和 JRE?
JVM(Java Virtual Machine)是 Java 虚拟机的缩写,它是 Java 程序运行的环境。JVM 负责将 Java 字节码翻译成特定平台上的机器指令,并执行这些指令。
JDK(Java Development Kit)是 Java 开发工具包的缩写,它是用于开发 Java 应用程序的软件包。JDK 包含了编译器、调试器、类库等工具,以及 JRE(JavaRuntime Environment)。
JRE(Java Runtime Environment)是 Java 运行时环境的缩写,它是在计算机上运行 Java 程序所需的最小环境。JRE 包含了 JVM 和一些基本的类库,可以让用户运行已经编译好的 Java 程序。
2. 为什么需要 JVM、JDK 和 JRE?
JVM 的存在使得 Java 程序具有跨平台的能力,即同一个 Java 程序可以在不同操作系统上运行,而无需修改代码。这 ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准https://blog.zysicyj.top
1. 什么是 JavaSE 和 JavaEE?
JavaSE(Java Platform, StandardEdition)是 Java 平台的标准版,提供了 Java 语言的核心 API 和运行环境。它包含了 Java 编程语言、JVM(Java 虚拟机)、基础类库等组件,用于开发桌面应用程序、命令行工具等。
JavaEE(Java Platform, EnterpriseEdition)是 Java 平台的企业版,建立在 JavaSE 之上,为开发大型、分布式、可扩展的企业级应用提供支持。它包含了 JavaSE 的所有功能,并且还提供了一系列的 API 和服务,如 Servlet、JSP、EJB、JMS 等,用于开发 Web 应用、企业级应用服务器等。
2. 为什么需要 JavaSE 和 JavaEE?JavaSE 提供了 Java 语言的核心功能和基础类库,可以满足普通应用程序的开发需求。而对于大型、复杂的企业级应用来说,需要更多的功能和服务来 ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准https://blog.zysicyj.top
1. 什么是 Java 语言?Java 是一种面向对象的编程语言,由 Sun Microsystems(现在是 Oracle)于 1995 年推出。它被设计成具有简单、可移植和安全性强的特点,并且可以应用于各种平台上的软件开发。
Java 语言具有以下特点:
面向对象:Java 支持面向对象的编程范式,通过类和对象来组织代码。
跨平台:Java 程序可以在不同的操作系统上运行,只需将源代码编译为字节码文件(.class),然后在 Java 虚拟机(JVM)上执行。
自动内存管理:Java 提供了垃圾回收机制,自动管理内存分配和释放,减少了程序员对内存管理的负担。
异常处理:Java 引入了异常处理机制,使得程序能够更好地处理错误和异常情况。
多线程支持:Java 提供了多线程编程的支持,允许程序同时执行多个任务。
丰富的库:Java 拥有庞大而丰富的标准类库,包含了各种常用的功能模块,如输入输出、网络通信、数据库连接等。
2. 为什么需要 Java 语 ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准https://blog.zysicyj.top
打开 maven 的配置文件( windows 机器一般在 maven 安装目录的 conf/settings.xml ),在 标签中添加 mirror子节点:
123456789101112<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库 </name> <url>https://maven.aliyun.com/repository/public</url> </mirror> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name> 阿里云公共 ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准https://blog.zysicyj.top
系列文章地址
报错内容123456789101112131415161718192021222324252627282930313233343536373839404142nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: URL [jar:file:/D:/code/cppCode20221025/leader-admin/target/leader-admin.jar!/BOOT-INF/classes!/com/nari/LeaderApplication.class]; nested exception is java.lang.Il ...
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准https://blog.zysicyj.top
系列文章地址
报错内容
原因分析 这个错误是由于您的项目中使用了一个类文件版本为 65.0 的类,而当前的 Java 运行时环境不支持该版本。
根据错误信息,您正在使用的是 Spring Boot Maven 插件,版本为 2.1.1.RELEASE。该插件的默认目标是将项目打包为可执行的 JAR 文件。
要解决这个问题,您可以尝试以下几个步骤:
确认您使用的 Java 版本是否与该插件兼容。您可以查看 Spring Boot 官方文档或插件的文档,了解其兼容的 Java 版本范围。
确保您的项目中使用的所有依赖项(包括 Spring Boot 和其他库)的版本与您的 Java 版本兼容。您可以查看它们的文档或发布说明,了解其兼容的 Java 版本要求。
如果您的 Java 版本较低,并且您无法升级到支持类文件版本 65.0 的 Java 版本,您可以尝试降低您的项目中的类文件版本。您可以在项目的 pom.xml 文件中配置 maven-com ...