the java language_The Java Language Specification Java SE 14 Edition PDF 下载

主要内容:

1.1 Organization of the Specification

Chapter 2 describes grammars and the notation used to present the lexical and

syntactic grammars for the language.

Chapter 3 describes the lexical structure of the Java programming language, which

is based on C and C++. The language is written in the Unicode character set. It

supports the writing of Unicode characters on systems that support only ASCII.

Chapter 4 describes types, values, and variables. Types are subdivided into

primitive types and reference types.

The primitive types are defined to be the same on all machines and in all

implementations, and are various sizes of two's-complement integers, single- and

double-precision IEEE 754 standard floating-point numbers, a boolean type, and

a Unicode character char type. Values of the primitive types do not share state.

Reference types are the class types, the interface types, and the array types. The

reference types are implemented by dynamically created objects that are either

instances of classes or arrays. Many references to each object can exist. All objects

(including arrays) support the methods of the class Object, which is the (single)

root of the class hierarchy. A predefined String class supports Unicode character

strings. Classes exist for wrapping primitive values inside of objects. In many

cases, wrapping and unwrapping is performed automatically by the compiler (in

which case, wrapping is called boxing, and unwrapping is called unboxing). Class

and interface declarations may be generic, that is, they may be parameterized by

other reference types. Such declarations may then be invoked with specific type

arguments.

Variables are typed storage locations. A variable of a primitive type holds a value

of that exact primitive type. A variable of a class type can hold a null reference or

a reference to an object whose type is that class type or any subclass of that class

type. A variable of an interface type can hold a null reference or a reference to an

instance of any class that implements the interface. A variable of an array type can

hold a null reference or a reference to an array. A variable of class type Object can

hold a null reference or a reference to any object, whether class instance or array.

Chapter 5 describes conversions and numeric promotions. Conversions change the

compile-time type and, sometimes, the value of an expression. These conversions

include the boxing and unboxing conversions between primitive types and

reference types. Numeric promotions are used to convert the operands of a numeric

operator to a common type where an operation can be performed. There are no

2

INTRODUCTION Organization of the Specification 1.1

loopholes in the language; casts on reference types are checked at run time to ensure

type safety.

Chapter 6 describes declarations and names, and how to determine what names

mean (that is, which declaration a name denotes). The Java programming language

does not require classes and interfaces, or their members, to be declared before

they are used. Declaration order is significant only for local variables, local classes,

and the order of field initializers in a class or interface. Recommended naming

conventions that make for more readable programs are described here.

Chapter 7 describes the structure of a program, which is organized into packages.

The members of a package are classes, interfaces, and subpackages. Packages,

and consequently their members, have names in a hierarchical name space; the

Internet domain name system can usually be used to form unique package names.

Compilation units contain declarations of the classes and interfaces that are

members of a given package, and may import classes and interfaces from other

packages to give them short names.

Packages may be grouped into modules that serve as building blocks in the

construction of very large programs. The declaration of a module specifies which

other modules (and thus packages, and thus classes and interfaces) are required in

order to compile and run code in its own packages.

The Java programming language supports limitations on external access to the

members of packages, classes, and interfaces. The members of a package may be

accessible solely by other members in the same package, or by members in other

packages of the same module, or by members of packages in different modules.

Similar constraints apply to the members of classes and interfaces.

Chapter 8 describes classes. The members of classes are classes, interfaces, fields

(variables) and methods. Class variables exist once per class. Class methods operate

without reference to a specific object. Instance variables are dynamically created

in objects that are instances of classes. Instance methods are invoked on instances

of classes; such instances become the current object this during their execution,

supporting the object-oriented programming style.

Classes support single inheritance, in which each class has a single superclass. Each

class inherits members from its superclass, and ultimately from the class Object.

Variables of a class type can reference an instance of that class or of any subclass of

that class, allowing new types to be used with existing methods, polymorphically.

Classes support concurrent programming with synchronized methods. Methods

declare the checked exceptions that can arise from their execution, which allows

compile-time checking to ensure that exceptional conditions are handled. Objects

3

1.1 Organization of the Specification INTRODUCTION

can declare a finalize method that will be invoked before the objects are discarded

by the garbage collector, allowing the objects to clean up their state.

For simplicity, the language has neither declaration "headers" separate from the

implementation of a class nor separate type and class hierarchies.

A special form of classes, enums, support the definition of small sets of values and

their manipulation in a type safe manner. Unlike enumerations in other languages,

enums are objects and may have their own methods.

Chapter 9 describes interfaces. The members of interfaces are classes, interfaces,

constant fields, and methods. Classes that are otherwise unrelated can implement

the same interface. A variable of an interface type can contain a reference to any

object that implements the interface.

Classes and interfaces support multiple inheritance from interfaces. A class that

implements one or more interfaces may inherit instance methods from both its

superclass and its superinterfaces.

Annotation types are specialized interfaces used to annotate declarations. Such

annotations are not permitted to affect the semantics of programs in the Java

programming language in any way. However, they provide useful input to various

tools.

Chapter 10 describes arrays. Array accesses include bounds checking. Arrays are

dynamically created objects and may be assigned to variables of type Object. The

language supports arrays of arrays, rather than multidimensional arrays.

Chapter 11 describes exceptions, which are nonresuming and fully integrated with

the language semantics and concurrency mechanisms. There are three kinds of

exceptions: checked exceptions, run-time exceptions, and errors. The compiler

ensures that checked exceptions are properly handled by requiring that a method

or constructor can result in a checked exception only if the method or constructor

declares it. This provides compile-time checking that exception handlers exist, and

aids programming in the large. Most user-defined exceptions should be checked

exceptions. Invalid operations in the program detected by the Java Virtual Machine

result in run-time exceptions, such as NullPointerException. Errors result from

failures detected by the Java Virtual Machine, such as OutOfMemoryError. Most

simple programs do not try to handle errors.

Chapter 12 describes activities that occur during execution of a program. A

program is normally stored as binary files representing compiled classes and

interfaces. These binary files can be loaded into a Java Virtual Machine, linked to

other classes and interfaces, and initialized.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值