Java Language Specification Java SE 9 Edition学习笔记-语言特性主线

Java Language Specification(Java编程规范)中英文 Java Language Specification(Java编程规范)中英文合集 这是我从网上分别下的中文版和英文版打包在一起的,希望能为你们节省很多搜索找寻时间,其中那个中文版真的很难找~~ 立即下载

JSL的内容比较多,比较细,先以各版本语言特性的主线进行选择性学习:

J2SE各版本新引入的语言特性如下:

1.1 J2SE 1.4

  • Assertion Facility

1.2 J2SE 5.0

  • Generics(泛型)
  • Enhanced for Loop 
  • Autoboxing/Unboxing
  • Typesafe Enums
  • Varargs
  • Static Import 
  • Annotations

1.3 J2SE 6

无


1.4 J2SE 7

  • Binary Literals
  • Underscores in Numeric Literals
  • Strings in switch Statements
  • Type Inference for Generic Instance Creation
  • Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods
  • The try-with-resources Statement
  • Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking


1.5 J2SE 8

  • Lambda Expressions
  • Improved Type Inference
  • Annotations on Java Types
  • Repeating Annotations
  • Method Parameter Reflection


1.6 J2SE 9

  • Java Platform Module System
  • New Version-String Scheme

一、Generics(泛型)

涉及章节:8.1.2、8.4.4、8.8.4、9.1.2

8.1.2 泛型类和类型参数

如果一个类声明了一个或多个类型变量(type variables,用于描述类型,泛指任意类型或相关一类类型,用大写字母标示,如K、V、E等),那么这个类就是一个泛型类。

这些类型变量也称之为类的类型参数(type parameters)。类型参数紧接着类名,并用尖括号分隔,如<T,K,V>。

8.4.4 泛型方法

如果一个方法声明了一个或多个类型变量,那么这个方法就是一个泛型方法。

这些类型变量称之为方法的类型参数。

8.8.4 泛型构造函数

如果一个构造行数声明了一个或多个类型变量,那么这个构造行数就是一个泛型构造函数。

这些类型变量称之为构造函数的类型参数。

9.1.2 泛型接口和类型参数

如果一个接口声明了一个或多个类型变量,那么这个接口就是一个泛型接口。

这些类型变量称之为接口的类型参数。类型参数紧接着类名,用尖括号分隔,如<K,V,T>。


二、Annotations(注解)

涉及章节:9.6、9.7、13.5.7

9.6 注解类型

注解类型声明指定了一个新的注解类型,注解类型是一种特殊的接口(interface)。为了区分注解类型的声明与普通接口声明,关键字interface之前增加一个@符号。

9.6.1 注解类型元素


9.6.2 注解类型元素的默认值
9.6.3 可重复的注解类型
9.6.4 预定义的注解类型

@Target

package java.lang.annotation;

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
    /**
     * Returns an array of the kinds of elements an annotation type
     * can be applied to.
     * @return an array of the kinds of elements an annotation type
     * can be applied to
     */
    ElementType[] value();
}


@Retention

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
    /**
     * Returns the retention policy.
     * @return the retention policy
     */
    RetentionPolicy value();
}


@Inherited 

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Inherited {
}

 

@Override 

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}


 @SuppressWarnings

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
    String[] value();
}


 @Deprecated 

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}



 @SafeVarargs 

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})
public @interface SafeVarargs {}



 @Repeatable 

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Repeatable {
    /**
     * Indicates the <em>containing annotation type</em> for the
     * repeatable annotation type.
     * @return the containing annotation type
     */
    Class<? extends Annotation> value();
}


 @FunctionalInterface

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface FunctionalInterface {}


9.7 注解
        注解是一个标记,它用一个程序构造关联了相关信息,然而,它不会对运行时有影响。注解表示了一个注解类型的特定调用,通常为这个注解类型的元素提供了值。

        有三种类型的注解。第一类是最常用的,而其他种类是第一类的简化。
Annotation:
NormalAnnotation
MarkerAnnotation
SingleElementAnnotation


9.7.1 普通注解
9.7.2 Marker Annotations
9.7.3 单元素注解
9.7.4 什么地方会出现注解?
9.7.5 同一个类型的多个注解


13.5.7 注解类型的发展

三、静态导入(static import)

相关章节:7.5.3、7.5.4

四、类型接口

相关章节:18

五、lambda表达式

相关章节:15.13、15.27

15.13 方法引用表达式
方法引用表达式用于引用方法的调用而没有实际执行调用

15.27 Lambda表达式

Lambda表达式就像一个方法一样,它提供了形式参数列表和主体

LambdaExpression:
LambdaParameters -> LambdaBody

Lambda表达式通常是一个poly expressions。

Lambda表达式只能出现在以下三个地方:

  • 赋值上下文
  • 调用上下文
  • 转换上下文
否则,将会报编译时错误。

lambda表达式的赋值生成了一个函数接口的实例。lambda表达式赋值并没有导致lambda表达式主体的执行;相反,表达式的执行将会在晚些时候发生,当函数接口的适当方法被调用的时候将会执行lambda表达式的主体。

15.27.1 Lambda参数

        lambda表达式的形式参数要么是声明的类型,要么是推断的类型。这些参数的类型不能混用(不能出现一些参数是声明的类型,另一些参数是推断的类型)。

        

        



15.27.2 Lambda主体
15.27.3 Lambda表达式的类型
15.27.4 Lambda表达式的运行时赋值(Run-Time Evaluation of Lambda Expressions)

六、switch语句

相关章节:14.11、16.2.9
14.11 switch语句






The Java Language Specification Java SE 8 Edition Java编程规范 The Java Language Specification Java SE 8 Edition Java8官方编程规范 立即下载

相关推荐

The Java Language Specification, Java SE 8 Edition 无水印pdf

The Java Language Specification, Java SE 8 Edition 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

java language specification Java SE 8 Edition 中文版(第一章)

java 编程语言规范(第八版第一章) 这几天在看 java 虚拟机规范,发现java编程语言规范目前还没有中文版,试着翻译一下,如果错误 欢迎批评指正。我会持续更新(beijin9152@163.com 转载请注明出处。谢谢)。 第一章 概述 java 是一种通用,并发,基于类且面向对象的编程语言。它设计的力求简单使得编程者可以清楚编写。java语言借鉴了c和c++但也有很大的区别,

edwardqiang的博客 6506

The Java Language Specification, Java SE 8 Edition epub

The Java Language Specification, Java SE 8 Edition 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

java概述

什么是计算机 首先,计算机由CPU(中央处理器),内存,存储设备,输入设备,输出设备,通信设备组成,这些通过总线连接。 CPU:CPU 通常由两部分组成 : 控制单元 ( control unit ) 和算术 / 逻辑单元( arithmetic / logic unit ) 0 控制单元用于控制和协调其他组件的动作 。 算术 / 逻辑单元用于完成数值运算 ( 加法 、减法 、乘法 、除法 )和...

qq_45923849的博客 313

《Java Language Specification》 下载

NULL 博文链接:https://webxyz.iteye.com/blog/283732

智能座舱音频系统集成与调试:从芯片选型到音质优化实战

在智能座舱域控制器架构中,音频系统已从简单的功放加扬声器演进为SoC、数字音频总线、外部DSP与多通道功放协同的复杂子系统。TDM总线的时隙分配、PDM麦克风阵列的信号完整性,以及AEC回声消除算法如何与硬件协同,直接决定多音区体验和语音交互的可靠性。工程实践中,音频调试的关键在于先理顺供电、接地、时钟与数据路由,再针对功放削波、采样率失配、TDM slot错位等典型问题进行系统性排查。从芯片选型到系统级指标验收,只有将音频链路视为整车电子电气架构的一个协同整体,才能真正实现从“响”到“好听”的跨越。本文结

weixin_30162121的博客 364

java language specification官方地址

背景: 刚才在看volatile修饰符的时候看到作者都是在阅读了java language specification后翻译为自己的理解讲述出来的 调查: java language specification即java语言规范,是一切java编程的基础参照文档。 官方文档(Java Language and Virtual Machine Specifications): http:/

谨慎对事 低调行事 0与1的世界 浩瀚如海 学无止境 1458

稳定双共轭梯度法BiCGSTAB流程

稳定双共轭梯度法BiCGSTAB流程

abner361的博客 1154

Java 版本、语言规范、API、JDK、IDE、Java 源程序编译(1)

Java 语言规范(Java Language specification)是对语言的技术定义,包括 Java 程序设计语言和语法的定义。应用程序接口(Application Program Interface,API)也称为库,包括为开发 Java 程序而预定义的类和接口。在不断地扩展。Java 开发工具包(Java Development Toolkit,JDK)是一套独立程序构成的集合,每个程序都是从命令行调用的,用于开发和测试 Java 程序。Java SE 8 对应的 Java 开发工具包称为 J

2401_84166147的博客 1228

Halcon实战:基于图像清晰度自动筛选最佳对焦图片

本文详细介绍了如何使用Halcon实现基于图像清晰度的自动筛选最佳对焦图片技术。通过分析灰度值统计和标准差等核心指标,结合实战代码示例,帮助开发者高效处理工业检测中的对焦问题,提升自动化检测的准确性和效率。

weixin_27015733的博客 440

告别电机啸叫!手把手教你配置TMC5160的StealthChop2静音模式(附参数自整定避坑指南)

本文详细介绍了如何通过配置TMC5160的StealthChop2模式彻底消除3D打印机电机噪音。从硬件准备到参数自整定,再到高级调优与异常处理,手把手教你实现实验室级别的静音效果,提升打印质量和使用体验。

weixin_33724659的博客 487

Java 技术规范

Java 技术规范是由 Java 社区过程 (Java Community Process, JCP) 维护的一系列文档,它们定义了 Java 平台的各种方面,包括语言特性、API、工具等。: 定义了 Java SE 平台提供的所有标准 API,包括核心库、GUI 工具包(如 Swing 和 JavaFX)、网络、数据库连接(JDBC)等。: 定义了一组用于企业级应用的标准,如 Servlets、JSP、EJB、JPA、JSF 等。: 定义了 Java 应用程序访问命名和目录服务的方式,如 LDAP。

IT界的奇葩 674

磁带库Scalar i6000界面基本操作步骤

(注:磁带库的前面的门不要打开,日常维护:主要就是简单看下磁带库的状态;绿色代表正常;黄色代表报警但不影响磁带库正常使用;红色代表报警,不能正常使用,及时和厂家联系报修。) 一、磁带库管理页面 1、首先,磁带库前面(具体作用如图) 2、查看状态和管理页面 3、管理页面登陆。用户名:service 密码:xxxxxx 4、磁带机背面 二、电脑连接磁带库进入管理页面 1.用网线把电脑和磁带库的维护接口(磁带库背面)进行连接 2.电脑环境:JAVA。把电脑的IP设置成自...

杀神lwz的博客 5354

Java笔记——Java 技术规范

Java 技术规范是由 Java 社区过程 (Java Community Process, JCP) 维护的一系列文档,它们定义了 Java 平台的各种方面,包括语言特性、API、工具等。: 定义了 Java SE 平台提供的所有标准 API,包括核心库、GUI 工具包(如 Swing 和 JavaFX)、网络、数据库连接(JDBC)等。: 定义了一组用于企业级应用的标准,如 Servlets、JSP、EJB、JPA、JSF 等。: 定义了 Java 应用程序访问命名和目录服务的方式,如 LDAP。

a25847a的博客 658

2026年华为od机试真题题库

OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)OD统一考试(E卷)

面试高手的博客 19万+

【ComfyUI专栏】ComfyUI 数字人方案-ComfyUI-EchoMimic

EchoMimic是一个基于图片和语音的数字人生成方案,通过ComfyUI节点实现。该方案安装简单,需下载特定模型文件(Unet、AudioProcessor和VAE)并保存本地。相比其他数字人生成方案,其节点操作更简便,支持多种Pose姿态选择,并能结合视频内容进行姿态同步,通过音频同步口型实现动态内容创建。生成的数字人效果直观,适用于快速创建个性化数字形象。

技术与管理的平衡木- 464

Java language specification 9 笔记

Java编程语言是强类型的,静态类型的语言; 每个变量或表达式都要在编译时有一个已知的类型。类型限制了变量所能代表的值,限制了表达式所能产生的值,限制了值所能支持的操作,也决定了操作的意义。强类型,静态类型有助于在编译时帮忙检测错误。 Compile time:将程序转化为独立于机器的二进制码。 Rum time:包括加载、链接程序执行需要的类,生成机器语言(可选),程序的动态优化以及执行程序...

Dylan_Sen的博客 899

基于STM32F103C8T6的智能蓝牙手环系统设计与实现

摘要:本文设计并实现了一款基于STM32F103C8T6单片机的智能蓝牙手环系统。该系统集成了ADXL345加速度计、DS18B20温度传感器、plusesennor心率模块和BT06蓝牙模块,实现了心率(±2bpm)、体温(±0.5℃)、步数(±3%)等健康数据的实时监测与显示。通过OLED屏提供人机交互界面,支持蓝牙APP远程控制,具备自动步数清零、异常提醒等功能。测试表明系统各项功能均达到设计要求,响应时间0.1-0.5秒,心率检测准确率98%,体温检测准确率99%,功耗50mA(工作)/10mA(待

3254968421的博客 205

【java】java知识点集合

Java language specification is a technical definition of the language that includes the syntax and semantics of the programming language. Java language specification 是一种语言的技术定义,包括编程语言的语法和语义。 Java APIcontains predefined classes and interfaces for develo..

David_Hzy的博客 775

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java Language Specification Java SE 9 Edition学习笔记-基本概念

4.类型、值和变量 Java语言是静态类型语言,这意味着每个变量和表达式在编译的时候是类型是已知的。 Java语言也是强类型语言,因为类型限制了变量能容纳的值,限制了表达式能生成的值,限制了操作符支持的值,决定了操作符的含义。强静态类型可以在编译时检测错误。 Java语言的类型分为两大类:原始类型和引用类型。 4.1 类型和值的种类 Java语言有两大种类的类型:prim

coolaaron的专栏 523

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JAVA9新特性(三)

特性总览 引言:下面是Java9中所有特性的列表。有些已经阐述完成,有些感觉在编程方面影响不大,是一些底层的实现。或者暂时无法表述清楚,留以后解释。 JDK9关键的变化 Java平台模块系统(Java Platform Module System) 新版本字符串方案(New Version-String Scheme) JDK9中安装方式有什么新的变化 JDK9Micros...

编程之路 462

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java语言编程规范_深入分析 java 8 编程语言规范:Threads and Locks

在 java 并发编程中,线程和锁永远是最重要的概念。语言规范虽然是规范描述,但是其中也有非常多的知识和最佳实践是值得学习的,相信这篇文章还是可以给很多读者提供学习参考的。本文主要是翻译 + 解释 Oracle《The Java Language Specification, Java SE 8 Edition》的第17章《Threads and Locks》,原文大概30页pdf,我加入了很多自...

weixin_28933797的博客 411

读The Java™ Language Specification(一)——谈异常设计

原创文章,转载请保留作者名。  摘要 Java异常模型的设计是Java应用的架构设计中最重要的决定之一。本文从Java语言规范中第11章对异常的介绍出发,探究Java异常的本质,并介绍Java异常设计的基本原则。 异常的本质 Java语言规范中对于异常的定义如下:当程序违反了Java语言的语义约束时,Java虚拟机将使用异常来报告这个错误。Java语言的设计目标之一是提供可移植性(portabil...

architect2008 389

Java Language Specification

Preface     THE Java programming language was originally called Oak, and was desiged for use in embedded consumer-electronic applications by James Gosling. After several years of experience with the ...

marlgl 240

Java语言规范、API、JDK和IDE

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

Jake_Wanglove的博客 1525
上一篇: J2SE概览
下一篇: JavaGenericsFAQ 目录---Java泛型的知识,这一篇就够了
coolaaron
博客等级 码龄20年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值