关键字(45个)
Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。
包引入和包声明: import package
用于类的接口声明: class extends implements interface
修饰符: abstract final native private protected public static synchronized transient volatile
数据类型: boolean byte char short int long float double
流程控制: break case continue default for do while if else return switch
创建对象: new
引用: this super
方法返回类型: void
异常处理: catch finally throw throws try
操作符: instanceof
某些数据类型的可先值(非关键字): false true null
|
保留字(14个)
保留字是为java预留的关键字,他们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。
byValue cast false future generic inner operator outer rest true var goto const null
|
abstract class与interface
在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类往往用来表征我们在对问题领域进行分析、 设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象,我们不能把它们实例化(拿不出一个具体的东西)所以称之为抽象。
比如:我们要描述“水果”,它就是一个抽象,它有质量、体积等一些共性(水果有质量),但又缺乏特性(苹果、橘子都是水果,它们有自己的特性),我们拿不出唯一一种能代表水果的东西(因为苹果、橘子都不能代表水果),可用抽象类来描述它,所以抽象类是不能够实例化的。当我们用某个类来具体描述“苹果”时,这个类就可以继承描述“水果”的抽象类,我们都知道“苹果”是一种“水果”。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public abstract class AbstractClass {
public int t; // 普通数据成员
public abstract void method1(); // 抽象方法,抽象类的子类在类中必须实现抽象类中的抽象方法
public void method2() { // 非抽象方法
// 抽象类中可以赋予非抽象方法方法的默认行为,即方法的具体实现
}
} public interface Interface{
static final int I = 0 ; //接口中不能有普通数据成员,只能够有静态的不能被修改的数据成员,static表示全局,final表示不可修改
//可以不用static final 修饰,会隐式的声明为static和final
public void method1(); //接口中的方法一定是抽象方法,所以不用abstract修饰
//接口中不能赋予方法的默认行为,即不能有方法的具体实现
} |
共同点:
- 抽象类和接口中的抽象方法都不能有具体实现,而必须由他们的子类实现所有的抽象方法(必须实现,哪怕方法体是空的)。
- 都不能被实例化。
不同点:
- 继承上,子类只可以继承一个抽象类,却可以实现多个接口。所以抽象类作为类型定义工具的效能大打折扣。在这一点上,接口的优势就出来了,任何一个实现了一个接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个接口,从而这个类就有了多种类型。
- 成员方法上,抽象类可以提供方法的实现,供子类继承,而接口不可以。这是抽象类的优点,抽象类添加的实现方法,所有子类都可以得到,而在接口中添加抽象方法,还需要在所有子类中都去一一实现这些方法。
- 数据成员上,抽象类中可以有自己的数据成员,而在接口中只能够有静态的不能被修改的数据成员。不过在接口中一般不定义数据成员。
- 设计理念上,抽象类像是提取一些具体子类的公因式,而接口是为了将一些不相关的类“杂凑”成一个共同的群体。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。
final
在Java环境中,final关键字具有“无法改变”含义。可以用来修饰非抽象类、非抽象成员方法和变量。可能出于两种理解而阻止改变:设计和效率。
- final类。final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类。
- final方法。定义为final的方法无法被子类覆盖,子类只能继承,无法修改。编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。
- final变量。用final修饰的成员变量是常量,值一旦给定就无法修改。
- final参数。final修饰的参数,可以读取使用,但无法修改参数值。
static
static是“静态的”的意思,修饰成员变量、成员方法、形成静态代码块。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
静态变量与实例变量
- 静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(不推荐)。静态变量不属于某个实例对象,而是属于类,所以叫类变量。
- 实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。实例变量属于某个对象的属性,必须创建了对象,才能使用实例变量。
静态方法
- 静态方法可以通过类来调用,也可以通过实例访问。
- 静态方法中不能用this和super关键字。
- 静态方法中不能直接访问类中的实例变量和实例方法,只能访问所属类的静态变量和静态方法,因为实例成员与特定的对象关联。
- 因为static独立于任何实例,所以静态方法必须被实现,而不能是抽象方法。
静态代码块
静态代码块是独立于类成员的语句块,可以有多个,可以在任意位置,不在任何方法体内。当JVM加载类时会按照位置先后顺序执行这些static代码块,每个代码块只执行一次。利用静态代码块可以对一些static变量进行赋初值。
相关推荐
在深入探讨Java的关键字与保留字之前,我们首先需明确两个概念:关键字和保留字。在编程语言中,关键字是预定义的具有特殊含义的标识符,它们在编译时被解析器识别并执行特定的功能;而保留字则是语言设计者为未来...
- 标识符是开发者定义的,用来给程序中的类、变量和方法命名的词汇,标识符可以是任何有效的字符序列,只要它们不与关键字和保留字冲突,且遵循Java的命名规则。 注意事项: 1. 确认Java关键字,不要与C/C++或其他...
Java是一种广泛使用的面向对象的编程语言,其语法严谨,其中包括一系列的关键字和保留字,这些关键字在编程中具有特殊含义,不能用作变量名或其他标识符。以下是对Java中一些重要关键字的详细解释: 1. **abstract*...
- **用途**:保留字,Java中未使用。在C++中用于声明常量。 11. **continue** - **用途**:用于跳过循环体中的剩余部分,并继续下一次迭代。 12. **default** - **用途**:在`switch`语句中,当没有匹配的...
Java编程语言中包含了一系列的关键字和保留字,这些词汇具有特殊的含义,用于构建程序结构和控制程序流程。关键字是Java语言预定义的标识符,它们在编译器中有特殊的解释,不能作为变量、函数名或其他标识符使用。...
在Java编程语言中,保留字(Reserved Words)和关键字(Keywords)是两个非常重要的概念,它们构成了Java语法的基础。保留字是Java语言已经预定义并赋予特定含义的词汇,而关键字则是Java语法结构中不可或缺的部分。...
在编程实践中,避免与这些关键字和保留字冲突,可以减少语法错误,提高代码质量,并确保程序的兼容性和可维护性。同时,采用合适的命名约定,如匈牙利类型标记法,也有助于团队成员更好地理解代码的意图和数据类型。
Java是一种强类型、面向对象的编程语言,它的语法中包含了关键字和保留字,这些词汇具有特殊的含义,用于构建程序的基本结构。本篇文章将详细解析Java的关键字和保留字。 首先,关键字是Java语言中预定义的,有特殊...
在Java编程语言中,关键字和保留字是具有特殊含义的词汇,它们被编译器识别并用于控制程序的行为。以下是对Java中部分关键字的详细解释: 1. `abstract`:抽象关键字,用于声明类或方法。抽象类不能被实例化,但...
Java关键字是指被Java语言本身赋予特定意义的标识符,它们不能作为变量名或类名等自定义标识符使用。Java中有53个关键字,包括但不限于: - `abstract`:用于声明抽象类和抽象方法。 - `boolean`:表示布尔类型,...
对于Java这门广泛使用的面向对象编程语言而言,理解其关键字与保留字的含义及用途至关重要。本文将详细介绍Java中的关键字和保留字,并探讨它们在程序开发中的应用。 #### 二、Java关键字详解 Java关键字是对Java...
以下是对给定文件中提到的Java关键字进行的详细解释与总结: #### 1. `abstract` - **用途**:`abstract`关键字用于声明抽象类或抽象方法。抽象类不能被实例化,但可以被其他类继承;抽象方法没有具体实现,必须由...
黑色为保留字(现阶段没有在 Java 程序当中使用,但是先预约保留下来,以备日后使用),保留字跟关键字具有同样的等级,不可被用来作为标识符。 常用的 Java 关键字包括: * 访问修饰符:public、private、...
在Java中,一共有53个关键字,包括两个保留字。下面将详细阐述这些关键字的功能和用途。 1. `abstract` - 用于声明抽象类或抽象方法,表示类不提供具体实现。 2. `assert` - 用于断言某个条件为真,通常用于测试和...
在Java语言中,关键字是具有特殊意义的保留字,它们不能用作变量名、方法名或类名等标识符。Java的关键字用于定义程序结构的重要组成部分,如控制语句、数据类型等。 - **常见关键字**: - `if`, `else`, `while`,...
在Java编程语言中,提取文章关键字是一项常见的自然语言处理任务,它涉及到文本挖掘和信息检索领域。这个任务的目的是从一篇文章中识别出最具代表性的词语或短语,这些词汇通常反映了文章的主题和核心内容。在Java中...
Java的关键字是预定义的保留字,在Java编程中具有特殊的含义和用途。本文将深入探讨Java中的关键字及其作用,帮助初学者更好地理解和应用这些基本概念。 #### 1. 关键字概述 Java的关键字是指那些被赋予了特殊意义...
Java的关键字,即保留字,是Java语言中具有特殊意义的标识符,它们预定义并保留用于语言本身的语法结构。理解这些关键字是学习Java的基础之一。本文将详细介绍Java中的50个常用关键字,并按照其功能类别进行分类。 ...
- **保留关键字**:`goto`是一个保留关键字,尽管当前Java并未使用它,但未来可能会启用。 - **错误提示**:如果尝试将关键字用作标识符,编译器会提示错误。 #### 二、标识符(Identifiers) **1. 什么是标识符** ...