达内烟台中心 > 达内新闻
英语对于软件编程到底重要不重要?
- 发布:烟台IT培训
- 来源:互联网
- 时间:2017-10-16 15:58
第一章 原文翻译
第8版前言
1996年,James Gosling等 ,编写了第1版Java语言规范。
Java编程语言:成熟的,演进的(与现存应用相适应)。
Java SE 8,Java语言史上单一的最大演进。少数特征:lambda表达式,方法引用、功能接口,一起引发了面向对象的函数式编程模型。
这次引燃通过鼓励最佳实践--不变性,无状态性和组合性实现了,并且保留了Java的感觉:可读性、简洁性、通用性。
……
一、简介
Java编程语言(多用途的、并发的、基于类的、面向对象的)。
Java编程语言(设计得足够简单)。
Java编程语言((和C、C++相关,但组织方式相当不同),(省略了C 和C++中的很多东西,新增了其他语言的一些思想))。
Java编程语言(是生产型语言,而非研究型语言)。
Java编程语言(强大的、静态键入的)。
文档区分了{编译时能够且必须被检测到的编译错误,和,运行时错误}.
编译时期通常包括[将程序转换为机器无关的字节码表示].
运行时活动包括[执行程序所需的类的加载和连接,可选的机器代码生成和程序的动态优化及实际的程序运行].
Java编程语言是(高级语言),机器表示的细节不能通过该语言使用。
这些细节包括【自动内存管理(通常使用垃圾回收器来避免显示释放带来的安全问题(不像C需要写free代码或者C++需要写delete代码))】。
高性能的垃圾回收实现可以通过有限的停顿来支持系统编程和实时应用【?】。
该语言不包括任何不安全的构造,比如不进行下标检查就进行数组访问,这种不安全的构造会导致程序以未知的方式运行。
Java编程语言体通常被编译成Java SE第8版中的JVM规范定义的【字节码指令集】和【二进制格式】
1、本规范的组成
Chapter2,描述语法和用于呈现语言的词法和句法语法的符号。
Chapter3,描述基于C和C++的Java编程语言的词法结构。Java编程语言使用Unicode字符集写成。它支持在仅支持ASCII的系统上编写Unicode字符(怎么实现的?)。
Chapter4,描述了类型、值和变量。类型又分为基本类型和引用类型。
基本类型在所有的机器和实现中被定义成相同的,并且包含不同尺寸的二进制补码整数,单双精度的IEEE754标准浮点数,一个boolean类型,和一个Unicode字符的char类型。基本类型的值不共享状态。
引用类型包括【类类型,接口类型,数组类型】。引用类型通过动态地创建的对象来实现,这个对象是类或者数组的实例。
多个引用可以指向同一个对象。所有的对象(包括数组)都支持Object类的方法,它是类继承层次结构中唯一的根。
预定义的String类支持Unicode字符串。
存在可以对对象内部的基本类型值进行包装的类。在很多情况下,装箱和拆箱是由编译器自动实现的。
类和接口的声明可以是泛型的(通用的),也就是说可以被其他引用类型参数化,然后通过使用特定的类型参数来调用这样的声明。
变量是分类的存储位置。一个基本类型变量保存确切的基本类型的值;类变量可以包含null引用,或者该类或该类的任何子类的对象的引用。接口类型变量可以拥有一个null引用,或者任何实现该接口的类的实例。数组类型的变量可以拥有一个null值,或者指向一个数组的引用。一个Object类型的变量,能够拥有一个null引用,或者任何对象的一个引用,不论是类实例还是数组实例。
Chapter5 描述了类型转换和数字原型【?】。类型转换改变编译时类型,有时候还会改变表达式的值。类型转换包括装箱和开箱转换。数字原型用于将数字运算符的操作数转换为可执行操作的常用类型。通过运行时检查引用类型来确保类型安全,这样语言就没有漏洞。
Chapter6 描述了声明和名称,以及如何确定名称表示什么。该语言不需要在使用之前声明类型或成员。声明顺序仅对局部变量、局部类以及类或接口中字段的初始化器而言重要。
Java编程语言提供名字范围的控制,而且限制外部对包、类、接口内的成员的访问。这有助于通过区分类与用户及继承该类的类来编写大型程序。这里介绍了使程序更具可读性推荐的命名约定。
Chapter7 描述了一个程序的结构,它被组织成与Modula的模块相似的包。包的成员是类、接口和子包。包被分为编译单元。编译单元包含类的声明,并且能够从其他的包中导入类从而可以在该编译单元内使用短名。包在分层命名空间中具有名称,因特网域名系统通常可用于形成唯一的软件包名称。
Chapter8 介绍类。类的成员包括:类、接口、字段(变量)和方法。每个类变量在每个类中只存在一次,类方法在不参考特定实例的情况下即可运行。实例变量在类的每个实例中动态创建。实例方法在类的每个实例中调用,这些实例在他们执行的过程中就成了当前对象this,支持面向对象编程风格。
类支持单根继承,每个类的实现都来自单个超类的实现,最终来自类Object.类的变量可以引用该类或者该类的任何子类的实例,允许在现有的方法中多态地使用新类。
类支持使用synchronized方法的并发编程。方法声明在其执行过程中出现的必检异常,这允许编译时检查以确保异常条件被处理。对象可以声明在垃圾收集器丢弃对象之前调用的finalize方法,允许对象清除其状态。
为了简单起见,该语言既没有声明“标头”与类的实现分离,也没有单独地类型和类层次结构。
枚举是一种特殊形式的类,以类型安全的方式支持小组值的定义及其操纵。与其他语言的枚举不同,枚举是对象,可能有自己的方法。
Chapter9 介绍了接口类型,它声明了一组抽象方法,成员类型和变量。其他的无关类可以实现相同的接口类型。接口类型的变量可以包含对实现接口的任何对象的引用。支持多接口继承。
注释类型是用于注释声明的特殊接口。这些注释不允许以任何方式影响Java编程语言中程序的语义。然而,它们为各种工具提供有用的输入。
Chapter10介绍数组。数组访问包括边界检查。数组是动态创建的对象,可以分配给类型的变量Object.该语言支持数组中的数组,而不是多维数组。
Chapter11 介绍异常,它们是不重要的,并且完全和语言语义及并发机制集成。
异常分三种:必检异常,运行时异常,和错误。如果方法或构造方法声明了异常,编译器通过要求方法或构造方法能够导致一个必检异常的方式来确保必检异常被合适地处理(what?)。这规定编译时检查异常处理程序存在,并且全局上帮助编程。大多数用户定义的异常应该是必检异常。由Java虚拟机检测到的程序中的无效操作会导致运行时异常,例如NullPointerException.由Java虚拟机检测到的故障导致错误,例如OutOfMemoryError.大多数简单程序不会尝试处理错误。
Chapter12 描述在执行程序期间发生的活动。程序通常存储为表示编译的类和接口的二进制文件。这些二进制文件可以加载到Java虚拟机中,链接到其他类和接口,并初始化。
初始化后,类方法和类变量可能被使用。一些类可能被实例化来创建类类型的新对象。类实例对象还包含类的每个超类的实例,而对象创建涉及递归创建这些超类实例。
当对象不再被引用时,它可能被垃圾回收器回收。如果一个对象声明一个finalizer,则在对象被回收之前执行finalizer,以给对象最后的机会来清理不会被释放的资源。当一个类不再需要时,它可能会被卸载。
烟台IT培训:Chapter13介绍二进制兼容性,说明对使用更改类型但尚未重新编译的其他类型的类的更改的影响。这些考虑对于要广泛分发的类的开发人员感兴趣,这些类型通常通过互联网连续的一系列版本。良好的程序开发环境每天每当更改类型时都会自动重新编译相关代码,因此大多数程序员无需关注这些细节。
Chapter14 描述了基于C和C++的块和语句。该语言中没有goto语句,但包括标签break和continue语句。与C不同,Java编程语言在控制流语句中需要boolean(或Boolean)表达式,并且不会隐式地将类型转换为boolean (除非通过拆箱),以期在编译时捕获更多错误。一个synchronized语句提供了基本的对象级监视器锁定。一个try语句可以包括catch和finally语句,以防止非本地控制转移。
Chapter15介绍表达式。本文档充分说明了表达式(表观)的评估顺序,增加了确定性和可移植性。重载的方法和构造方法在编译时通过选择最具体的方法或最合适的构造方法来解决。
Chapter16描述了该语言在确保局部变量使用前设定的精确方式。虽然所有其他变量都会自动初始化为默认值。但是Java编程语言不会自动初始化局部变量,以避免屏蔽编程错误。
Chapter17 描述了线程和锁的语义。它们基于最初由Mesa编程语言引入的基于监听器的并发。Java编程语言规定了支持高性能实现的共享内存多处理器的内存模型。
Chapter18 描述了各种不同的类型推理算法,用于测试泛型方法的应用能力,并且在泛型方法调用中推断类型。
Chapter 19介绍语言的句法语法。
更多烟台IT培训相关资讯,请扫描下方二维码
最新开班时间
- 北京
- 上海
- 广州
- 深圳
- 南京
- 成都
- 武汉
- 西安
- 青岛
- 天津
- 杭州
- 重庆
- 哈尔滨
- 济南
- 沈阳
- 合肥
- 郑州
- 长春
- 苏州
- 长沙
- 昆明
- 太原
- 无锡
- 石家庄
- 南宁
- 佛山
- 珠海
- 宁波
- 保定
- 呼和浩特
- 洛阳
- 烟台
- 运城
- 潍坊
英语对于软件编程到底重要不重要?
- 发布:烟台IT培训
- 来源:互联网
- 时间:2017-10-16 15:58
第一章 原文翻译
第8版前言
1996年,James Gosling等 ,编写了第1版Java语言规范。
Java编程语言:成熟的,演进的(与现存应用相适应)。
Java SE 8,Java语言史上单一的最大演进。少数特征:lambda表达式,方法引用、功能接口,一起引发了面向对象的函数式编程模型。
这次引燃通过鼓励最佳实践--不变性,无状态性和组合性实现了,并且保留了Java的感觉:可读性、简洁性、通用性。
……
一、简介
Java编程语言(多用途的、并发的、基于类的、面向对象的)。
Java编程语言(设计得足够简单)。
Java编程语言((和C、C++相关,但组织方式相当不同),(省略了C 和C++中的很多东西,新增了其他语言的一些思想))。
Java编程语言(是生产型语言,而非研究型语言)。
Java编程语言(强大的、静态键入的)。
文档区分了{编译时能够且必须被检测到的编译错误,和,运行时错误}.
编译时期通常包括[将程序转换为机器无关的字节码表示].
运行时活动包括[执行程序所需的类的加载和连接,可选的机器代码生成和程序的动态优化及实际的程序运行].
Java编程语言是(高级语言),机器表示的细节不能通过该语言使用。
这些细节包括【自动内存管理(通常使用垃圾回收器来避免显示释放带来的安全问题(不像C需要写free代码或者C++需要写delete代码))】。
高性能的垃圾回收实现可以通过有限的停顿来支持系统编程和实时应用【?】。
该语言不包括任何不安全的构造,比如不进行下标检查就进行数组访问,这种不安全的构造会导致程序以未知的方式运行。
Java编程语言体通常被编译成Java SE第8版中的JVM规范定义的【字节码指令集】和【二进制格式】
1、本规范的组成
Chapter2,描述语法和用于呈现语言的词法和句法语法的符号。
Chapter3,描述基于C和C++的Java编程语言的词法结构。Java编程语言使用Unicode字符集写成。它支持在仅支持ASCII的系统上编写Unicode字符(怎么实现的?)。
Chapter4,描述了类型、值和变量。类型又分为基本类型和引用类型。
基本类型在所有的机器和实现中被定义成相同的,并且包含不同尺寸的二进制补码整数,单双精度的IEEE754标准浮点数,一个boolean类型,和一个Unicode字符的char类型。基本类型的值不共享状态。
引用类型包括【类类型,接口类型,数组类型】。引用类型通过动态地创建的对象来实现,这个对象是类或者数组的实例。
多个引用可以指向同一个对象。所有的对象(包括数组)都支持Object类的方法,它是类继承层次结构中唯一的根。
预定义的String类支持Unicode字符串。
存在可以对对象内部的基本类型值进行包装的类。在很多情况下,装箱和拆箱是由编译器自动实现的。
类和接口的声明可以是泛型的(通用的),也就是说可以被其他引用类型参数化,然后通过使用特定的类型参数来调用这样的声明。
变量是分类的存储位置。一个基本类型变量保存确切的基本类型的值;类变量可以包含null引用,或者该类或该类的任何子类的对象的引用。接口类型变量可以拥有一个null引用,或者任何实现该接口的类的实例。数组类型的变量可以拥有一个null值,或者指向一个数组的引用。一个Object类型的变量,能够拥有一个null引用,或者任何对象的一个引用,不论是类实例还是数组实例。
Chapter5 描述了类型转换和数字原型【?】。类型转换改变编译时类型,有时候还会改变表达式的值。类型转换包括装箱和开箱转换。数字原型用于将数字运算符的操作数转换为可执行操作的常用类型。通过运行时检查引用类型来确保类型安全,这样语言就没有漏洞。
Chapter6 描述了声明和名称,以及如何确定名称表示什么。该语言不需要在使用之前声明类型或成员。声明顺序仅对局部变量、局部类以及类或接口中字段的初始化器而言重要。
Java编程语言提供名字范围的控制,而且限制外部对包、类、接口内的成员的访问。这有助于通过区分类与用户及继承该类的类来编写大型程序。这里介绍了使程序更具可读性推荐的命名约定。
Chapter7 描述了一个程序的结构,它被组织成与Modula的模块相似的包。包的成员是类、接口和子包。包被分为编译单元。编译单元包含类的声明,并且能够从其他的包中导入类从而可以在该编译单元内使用短名。包在分层命名空间中具有名称,因特网域名系统通常可用于形成唯一的软件包名称。
Chapter8 介绍类。类的成员包括:类、接口、字段(变量)和方法。每个类变量在每个类中只存在一次,类方法在不参考特定实例的情况下即可运行。实例变量在类的每个实例中动态创建。实例方法在类的每个实例中调用,这些实例在他们执行的过程中就成了当前对象this,支持面向对象编程风格。
类支持单根继承,每个类的实现都来自单个超类的实现,最终来自类Object.类的变量可以引用该类或者该类的任何子类的实例,允许在现有的方法中多态地使用新类。
类支持使用synchronized方法的并发编程。方法声明在其执行过程中出现的必检异常,这允许编译时检查以确保异常条件被处理。对象可以声明在垃圾收集器丢弃对象之前调用的finalize方法,允许对象清除其状态。
为了简单起见,该语言既没有声明“标头”与类的实现分离,也没有单独地类型和类层次结构。
枚举是一种特殊形式的类,以类型安全的方式支持小组值的定义及其操纵。与其他语言的枚举不同,枚举是对象,可能有自己的方法。
Chapter9 介绍了接口类型,它声明了一组抽象方法,成员类型和变量。其他的无关类可以实现相同的接口类型。接口类型的变量可以包含对实现接口的任何对象的引用。支持多接口继承。
注释类型是用于注释声明的特殊接口。这些注释不允许以任何方式影响Java编程语言中程序的语义。然而,它们为各种工具提供有用的输入。
Chapter10介绍数组。数组访问包括边界检查。数组是动态创建的对象,可以分配给类型的变量Object.该语言支持数组中的数组,而不是多维数组。
Chapter11 介绍异常,它们是不重要的,并且完全和语言语义及并发机制集成。
异常分三种:必检异常,运行时异常,和错误。如果方法或构造方法声明了异常,编译器通过要求方法或构造方法能够导致一个必检异常的方式来确保必检异常被合适地处理(what?)。这规定编译时检查异常处理程序存在,并且全局上帮助编程。大多数用户定义的异常应该是必检异常。由Java虚拟机检测到的程序中的无效操作会导致运行时异常,例如NullPointerException.由Java虚拟机检测到的故障导致错误,例如OutOfMemoryError.大多数简单程序不会尝试处理错误。
Chapter12 描述在执行程序期间发生的活动。程序通常存储为表示编译的类和接口的二进制文件。这些二进制文件可以加载到Java虚拟机中,链接到其他类和接口,并初始化。
初始化后,类方法和类变量可能被使用。一些类可能被实例化来创建类类型的新对象。类实例对象还包含类的每个超类的实例,而对象创建涉及递归创建这些超类实例。
当对象不再被引用时,它可能被垃圾回收器回收。如果一个对象声明一个finalizer,则在对象被回收之前执行finalizer,以给对象最后的机会来清理不会被释放的资源。当一个类不再需要时,它可能会被卸载。
烟台IT培训:Chapter13介绍二进制兼容性,说明对使用更改类型但尚未重新编译的其他类型的类的更改的影响。这些考虑对于要广泛分发的类的开发人员感兴趣,这些类型通常通过互联网连续的一系列版本。良好的程序开发环境每天每当更改类型时都会自动重新编译相关代码,因此大多数程序员无需关注这些细节。
Chapter14 描述了基于C和C++的块和语句。该语言中没有goto语句,但包括标签break和continue语句。与C不同,Java编程语言在控制流语句中需要boolean(或Boolean)表达式,并且不会隐式地将类型转换为boolean (除非通过拆箱),以期在编译时捕获更多错误。一个synchronized语句提供了基本的对象级监视器锁定。一个try语句可以包括catch和finally语句,以防止非本地控制转移。
Chapter15介绍表达式。本文档充分说明了表达式(表观)的评估顺序,增加了确定性和可移植性。重载的方法和构造方法在编译时通过选择最具体的方法或最合适的构造方法来解决。
Chapter16描述了该语言在确保局部变量使用前设定的精确方式。虽然所有其他变量都会自动初始化为默认值。但是Java编程语言不会自动初始化局部变量,以避免屏蔽编程错误。
Chapter17 描述了线程和锁的语义。它们基于最初由Mesa编程语言引入的基于监听器的并发。Java编程语言规定了支持高性能实现的共享内存多处理器的内存模型。
Chapter18 描述了各种不同的类型推理算法,用于测试泛型方法的应用能力,并且在泛型方法调用中推断类型。
Chapter 19介绍语言的句法语法。
更多烟台IT培训相关资讯,请扫描下方二维码
最新开班时间
- 北京
- 上海
- 广州
- 深圳
- 南京
- 成都
- 武汉
- 西安
- 青岛
- 天津
- 杭州
- 重庆
- 厦门
- 哈尔滨
- 济南
- 福州
- 沈阳
- 合肥
- 郑州
- 长春
- 苏州
- 大连
- 长沙
- 昆明
- 温州
- 太原
- 南昌
- 无锡
- 石家庄
- 南宁
- 中山
- 兰州
- 佛山
- 珠海
- 宁波
- 贵阳
- 保定
- 呼和浩特
- 东莞
- 洛阳
- 潍坊
- 烟台
- 运城