java 编程语言规范(第八版第一章)

这几天在看 java 虚拟机规范,发现java编程语言规范目前还没有中文版,试着翻译一下,如果错误 欢迎批评指正。我会持续更新(beijin9152@163.com 转载请注明出处。谢谢)。

第一章 概述
java 是一种通用,并发,基于类且面向对象的编程语言。它设计的力求简单使得编程者可以清楚编写。java语言借鉴了c和c++但也有很大的区别,省略了cc++中一些复杂的概念并借鉴了其他语言的一些想法。java是为生产而设计的语言而不是为了研究,C. A. R. Hoare在他设计语言论文中建议避免使用新的、未经验证的特性出现在java语言中。
java语言是静态类型的健壮的语言,本规范严格区分编译期错误和运行期错误,编译期一般发生在把源代码编译为机器码的过程中,运行期包括加载和链接类文件到程序动态优化及实际执行期间。
java编程语言属于高级编程语言,因此一些机器码错做是不允许的。包括动态的内存管理、垃圾回收避免内存创建引发的安全问题(像c中free或c++中的delete)。高性能的垃圾回收机制可以支撑一些系统应用而不需要停止程序。程序中不包括任何非安全的构造,如数组操作检查,因为这种不安全的构造可能会引发一些不可预知的错误。
java源码一般编译为指令集和二进制文件。具体参考《java 虚拟机规范 javaSE 第八版》

1.1 规范组织结构
第二章 描述了语法及java语言语法中的符号等。
第三章 描述了java语言基于c c++的语法结构。java是基于Unicode编码的。只能在支持ASC||码的机器上编写Unicode字符。
第四章 描述了类型,值,变量。类型分为基本类型和引用类型。
基本类型在所有的机器和实现中都一致,包括2的补码,单精度双精度 IEEE 754标准浮点数,boolean 类型,Unicode的char类型,基本类型的值不共享状态。
引用类型包括类类型、接口类型和数组类型。引用类型是通过类或者数组动态创建实现的。可以有多个引用指向一个对象,所有对象(包括数组)支持Object类的方法。因为所有类继承自Object。预定义的String类支持Unicode字符串。有用于把基本类型值封装为对象的类。通常包装和解包装是编译器自动执行的(包装又称装箱,解包又称为拆箱)。类和接口可以声明为泛型的,也就是说他们可以作为其他引用类型的参数,之后就可以通过这种特定类型进行调用。
变量是类型化的存储位置,基本类型的变量存储的是基本类型的值。类类型可以存储空引用或者指向这个类或者该类的子类。接口类型可以存储空引用或者实现该接口的实例。数组类型可以存储空引用或者任何指向实例或数组的引用。

第五章
第六章
第七章
第八章
第九章
第十章
第十一章
第十二章
第十三章
第十四章
第十五章
第十六章
第十七章
第十八章 介绍了线程和锁
第十九章 介绍了java语言的语义语法。

1.2 示例程序
给出的示例程序大多数都是像下面代码一样是可执行的

  class Test {public static void main(String[] args) {for (int i = 0; i < args.length; i++)System.out.print(i == 0 ? args[i] : " " + args[i]);System.out.println();}

在安装了Oracle JDK的机器上,存储在Test.java的类可以使用下面的命令来编译和运行
javac Test.java
java Test Hello, world.
输出结果为:
Hello, world
1.3 约定
本规范中所提到的类和接口来自java API。即使我们使用N来代替类或接口,也是来自包java.lang 。
非标准的信息 说明规范的信息用小号缩进排版
如:

这是非标准信息,提供常识 原理 建议 示例 等。

java语言中的类型一般依赖于符号替换,如[F1:=T1,…,Fn:=Tn] Fi代表Ti,1<=i<=n.

1.4 预定义类与接口
如前文所述,本规范经常引用java se中的一些api类,特别是和java密切相关的一些类包括Object,Class,ClassLoader,String,Thread及在java.lang.reflect包中的类和接口等。本规范约束这些类和接口,但没有提供完整的使用说明,读者最好参考java se的API文档。
因此,本规范并没有提及任何反射相关的内容。许多语言结构有类似的核心反射API(java.lang.reflect)和语言模型API(javax.lang.model)。但这里并不讨论这些。如我们说到创建对象的方法时一般不包括通过反射创建的对象,即使本规范未提到读者也应该明白这些机制。
1.5 反馈
本规范中如果有技术上的错误或者描述不清楚的欢迎读者发送邮件到 jls-jvms-spec-comments@openjdk.java.net
有关java javac 的编译行为的问题,特别是本规范中它的一致性等问题可以发送到:compiler-dev@openjdk.java.net
1.6 参考
(这部分就不翻译了)

[1]: Apple Computer. Dylan Reference Manual. Apple Computer Inc., Cupertino, California. September29, 1995.
[2]: Bobrow, Daniel G., Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon. Common Lisp Object System Specification, X3J13 Document
88-002R, June 1988; appears as Chapter 28 of Steele, Guy. Common Lisp: The Language, 2nd ed. Digital Press, 1990, ISBN 1-55558-041-6, 770-864.
[3]: Ellis, Margaret A., and Bjarne Stroustrup. The Annotated C++ Reference Manual. Addison-
Wesley, Reading, Massachusetts, 1990, reprinted with corrections October 1992, ISBN0-201-514591.
[4]: Goldberg, Adele and Robson, David. Smalltalk-80: The Language. Addison-Wesley, Reading,
Massachusetts, 1989, ISBN 0-201-13688-0.
[5]: Harbison, Samuel. Modula-3. Prentice Hall, Englewood Cliffs, New Jersey, 1992, ISBN0-13-596396.
[6]: Hoare, C. A. R. Hints on Programming Language Design. Stanford University Computer
Science Department Technical Report No. CS-73-403, December 1973. Reprinted in
SIGACT/SIGPLAN Symposium on Principles of Programming Languages. Association
for Computing Machinery, New York, October 1973.
[7]: IEEE Standard for Binary Floating-Point Arithmetic. ANSI/IEEE Std. 754-1985. Available
from Global Engineering Documents, 15 Inverness Way East, Englewood, Colorado
80112-5704 USA; 800-854-7179.
[8]: Kernighan, Brian W., and Dennis M. Ritchie. The C Programming Language, 2nd ed. Prentice
Hall, Englewood Cliffs, New Jersey, 1988, ISBN 0-13-110362-8.
[9]: Madsen, Ole Lehrmann, Birger Møller-Pedersen, and Kristen Nygaard. Object-Oriented
Programming in the Beta Programming Language. Addison-Wesley, Reading,
Massachusetts, 1993, ISBN 0-201-62430-3.
[10]: Mitchell, James G., William Maybury, and Richard Sweet. The Mesa Programming Language,
Version 5.0. Xerox PARC, Palo Alto, California, CSL 79-3, April 1979.
[11]: Stroustrup, Bjarne. The C++ Progamming Language, 2nd ed. Addison-Wesley, Reading,
Massachusetts, 1991, reprinted with corrections January 1994, ISBN 0-201-53992-6.
[12]: Unicode Consortium, The. The Unicode Standard, Version 6.2.0. Mountain View, California,
2012, ISBN 978-1-936213-07-8.

java language specification Java SE 8 Edition 中文版(第一章)相关推荐

  1. Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门

    本章将涵盖以下话题: ž  MyBatis是什么? ž  为什么选择MyBatis? ž  MyBatis安装配置 ž  域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Ja ...

  2. Java 从死到生的修炼 (第一章:生命的起源之接触.)

    所有的程序语言的第一句总是"Hello World",当然我们跨平台的Java当然也不例外,这句话已经成为菜鸟必须要跨过的门槛 文章目录 一.为什么要学习Java?     1.简 ...

  3. OGRE 3D 1.7 Beginner‘s Guide中文版 第一章

    文章来源:http://www.cnblogs.com/oneDouble/articles/2492648.html 这是一本优秀的书,这个中文版也是极好地,译者是我QQ群里的网友,陆陆续续用一年翻 ...

  4. [转载]OGRE 3D 1.7 Beginner‘s Guide中文版 第一章

    这是一本优秀的书,这个中文版也是极好地,译者是我QQ群里的网友,陆陆续续用一年翻完,却没有多少人看到,因为最近发现ogre3d.cn关门大吉了,谷歌了一下更没有第二家转载,我心想,哎呀,这么好的东西以 ...

  5. AMBA5 AHB协议规范(AHB5,AHB-Lite)中文版-第一章 引言

    ARM AMBA 5 AHB 协议规范 AHB5, AHB-Lite 发行信息 变更历史 日期 版本 保密性 更改 2006/6/26 A 非保密 First release for v1.0 201 ...

  6. java成绩录入系统健壮性_Java第三季第一章异常,作业,借书系统。能通过,但是健壮性和可读性不强...

    一个借书系统,主要是使用异常来对借书时的情况进行把控. 基本可以跑.写的还是有点乱. 不足的地方还是很多的,希望大家指教,代码如下: package com.Library; import java. ...

  7. [实战Java高并发程序设计:读后感:参考文献]第一章

    Linus Torvalds :忘掉那该死的并行吧! 有关摩尔定律失效 免费午餐已经结束--软件历史性地向并发靠拢 Barrett still has some fight in him 有关并发的级 ...

  8. 现代密码学概论(3 Edition)第一章

    现代密码学概论(3 Edition) by Jonathan Katz and Yehuda Lindell 文章目录 **现代密码学概论**(3 Edition) by Jonathan Katz ...

  9. Tensorflow官方文档中文版——第一章

    第一示例: import tensorflow as tf import numpy as npx_data=np.float32(np.random.rand(2,100))#随机输入 y_data ...

  10. Solr In Action 中文版 第一章(四、五)

    1.1             功能概览1. 4 最后,让我们再依照以下的分类.高速的过一下Solr的主要功能: ·用户体验 ·数据建模 ·Solr 4的新功能 在本书中.为你的用户提供良好的搜索体验 ...

最新文章

  1. 广联达2018模板算量步骤_老师傅带你学造价,广联达GTJ2018图文详解,小白也能学会的软件...
  2. python requests 动态加载_python requests 高级用法
  3. s3c6410学习笔记-烧写uboot+构建文件系统
  4. UNIX系统编程(2)
  5. php csrf攻击 xss区别,用大白话谈谈XSS与CSRF
  6. CentOS7 安装redis-5.0.5/注册为系统服务及单机启动多个redis服务
  7. C语言程序练习- L1-040 最佳情侣身高差 (10分)
  8. 树莓派 pip安装mysql_树莓派 pip 手动安装
  9. 安装配置hadoop组件hive问题集锦
  10. CC创作共用版权协议,要求署名+非商业+相同方式共享
  11. matlab2c使用c++实现matlab函数系列教程-sign函数
  12. js高级编号笔记[新]-事件
  13. 内存中inode与磁盘中inode
  14. (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
  15. ibm服务器单盘从装系统,thinkpad系统重装图文详解
  16. 指标赋权与评价类方法总结
  17. 计算机所建造全过程,Midas桥梁建模计算,全过程图文解析!
  18. 量化新手初识基金绩效分析
  19. QGIS自定义地图工具
  20. 加密世界“众生相”:僧侣、信徒和骗子

热门文章

  1. 小甲鱼Python课后习题028
  2. 微信开发者工具安装使用SVN
  3. Python游戏汇总:三十个pygame游戏代码【附源码免费分享】
  4. python 将txt文件转换为excel_Python实现读取txt文件并转换为excel的方法示例
  5. bat命令打开指定网页进入全屏
  6. 直播网站源码,输入框中显示小图标
  7. java王者荣耀英雄代码_王者荣耀英雄代码在哪个文件夹_王者荣耀英雄代码大全...
  8. android 百度 tts,百度语音TTS. android 启动时闪退
  9. 凯撒密码 (Python实现)
  10. python订餐系统简单版