首页 > 编程语言 >Java入门学习——Day02Java工具

Java入门学习——Day02Java工具

时间:2024-08-09 12:54:01浏览次数:8  
标签:Java 入门 javac Day02Java 特性 编译器 支持 引入

一、Javac

1.1Java 1(1996年)

        Java编译器 javac 在Java 1.0版本中首次发布。它将Java源代码(.java 文件)编译成中间字节码(.class 文件)。这个字节码可以在Java虚拟机(JVM)上运行,实现了Java的“编写一次,处处运行”的理念。

1.2Java 2(1998年)

        在Java 2时代,编译器 javac 得到了改进,包括性能优化和支持新的Java API。Java 2也引入了Swing GUI工具包和集合框架等重要特性,增强了Java的功能和应用范围。

1.3Java 5(2004年)

        Java 5版本引入了许多重大变化,包括泛型、枚举、注解(Annotations)和增强的for循环。javac也进行了更新,以支持这些新特性。泛型和注解的引入,使得Java编译器需要处理更多复杂的语法和类型信息。

1.4 Java 6(2006年)

        Java 6版本的 javac 编译器带来了更多的性能提升和编译器的增强功能,比如更好的错误报告和改进的编译速度。

1.5 Java 7(2011年)

        Java 7带来了对字符串在switch语句中的支持、二进制字面量、新的异常处理语法等特性。javac 更新以支持这些新特性和语言改进。

1.6 Java 8(2014年)

        Java 8引入了Lambda表达式、Stream API和新的日期/时间API。javac 需要进行重大的改进以支持这些新特性,尤其是Lambda表达式和方法引用,这些特性引入了更多的编译时分析和优化。

1.7 Java 9(2017)

        Java 9最重要的改进之一是模块系统(Project Jigsaw)。javac 支持模块化编程,允许开发者创建模块化应用,并将代码组织到不同的模块中。此外,还引入了JShell,一个交互式Java REPL工具。

1.8 Java 10 及以后的版本

  • Java 10(2018年): 引入了局部变量类型推断(var),使得代码更加简洁。javac 更新了对新语言特性的支持。
  • Java 11(2018年): 成为长期支持(LTS)版本,引入了各种性能改进和API更新。
  • Java 12及以后的版本: 每个版本通常包括新的语言特性、性能提升和编译器优化。例如,Java 14引入了预览特性,如Record类和Pattern Matching,这些也需要javac进行支持和处理。

二、现代Java编译器

       现代Java编译器与构建工具(如Maven、Gradle)以及集成开发环境(IDE,如IntelliJ IDEA、Eclipse)紧密集成,提供了全面的开发和构建支持。编译器本身也不断进行性能优化和特性扩展,保持对新语言功能和改进的支持。

总之,Java编译器从最初的javac版本开始,经历了多次重要的改进和扩展,以支持Java语言的发展和新特性的引入。这些改进不仅提升了编译性能,还增强了编译器对复杂语言特性的支持。

标签:Java,入门,javac,Day02Java,特性,编译器,支持,引入
From: https://blog.csdn.net/2303_79461916/article/details/141059133

相关文章

  • 大神Andrej Karpathy亲授:大语言模型入门
    前言OpenAI大家熟知的技术大神有两位,一位是首席科学家Ilya,很多人这几天可能因为OpenAI董事会风波而反复听过这个名字;另外一位则是温文儒雅的AndrejKarpathy。如果说Ilya的标签是ChatGPT之父,神级大牛;那么AndrejKarpathy的额外标签则是当之无愧这世界上最优秀的AI导师之一。本......
  • Vue3入门项目 简洁清晰保姆级内容讲解
    序章vue3的后台管理项目,从0到1搭建,内容非常丰富涵盖项目搭建、路由配置、用户鉴权、首页报表、用户列表、前后端联调等功能,推荐指数:5颗星!视频学习链接:vue3通用后台管理-零基础从0到1详细的入门保姆级别教程——哔哩哔哩bilibili环境配置node版本:需要Node.js版本1......
  • JavaScript -- 总结 10 (小白)
    MouseEvent属性<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document<......
  • JAVA多线程的使用和创建的几种方式
    Thrad创建和使用创建实体类,继承Thread实现run()方法调用start()方法publicclassThreadDemoextendsThread{Loggerlogger=LoggerFactory.getLogger(ThreadDemo.class);privateStringtaskName;publicStringgetTaskName(){return......
  • JAVA修饰符、运算符、循环语句
    JAVA修饰符修饰符用来定义类、方法或者变量,通常放在语句的最前端一、访问修饰符1、default默认访问修饰符:在同一包内可见,不使用任何修饰符,使用对象为类、接口、变量、方法,访问级别是包级别(package-level),即只能被同一包中的其他类访问2、private私有访问修饰符:最严格的访问级......
  • JavaScript toLocaleString() 方法
    定义和用法:toLocaleString()方法可根据本地时间把Date对象转换为字符串,并返回结果。语法:dateObject.toLocaleString()返回值dateObject的字符串表示,以本地时间区表示,并根据本地规则格式化。问题//Javascript中newDate().toLocaleString()在不同浏览器中的结果不一致的解决......
  • Java enum(枚举)
    在Java中,enum(枚举)是一种特殊的数据类型,允许你定义一组命名的常量。这些常量通常代表一个固定的、有限的集合。例如,一年中的季节、交通信号灯的状态,或者一副扑克牌的花色。基本用法一个基本的enum定义如下:publicenumSeason{WINTER,SPRING,SUMMER,FALL}这里,Season......
  • java 面向对象2
    1.对类的命名要起到见名知意的效果。对于属性成员最好用private修饰提高权限,使得数据的存储更加安全。一般来说对于类用大驼峰命名法每个单词首字母都是大写如图2.在java中没有指针的概念,但是存在引用所以this在使用的时候就可以通过'.'来访问成员。3.与c++类似不存在空参构造......
  • Java Optional
    Optional是Java8引入的一个容器类,用于处理可能为空(null)的值。它旨在减少NullPointerException(空指针异常)的发生,并提供一种更具表现力和安全的方式来处理可选值。Optional的基本概念Optional<T>:Optional是一个泛型类,可以包含类型为T的值,或者为空。非空值:Optional可以......
  • Java Stream
    JavaStream是Java8引入的一种强大工具,旨在简化数据处理操作。它允许开发者以声明性方式对集合或其他数据源执行一系列复杂的操作,如过滤、映射、规约等,从而提高代码的简洁性和可读性。以下是关于JavaStreamAPI的更详细的概述和示例,帮助你更好地理解其工作原理和应用场景。......