对于想了解Java关键字的读者,本文将是一篇不可错过的文章,我们将详细介绍java关键字有哪些及其作用,并且为您提供关于-1-1java基础语法java关键字java注释常量语句运算符函数数组定义、J
对于想了解Java关键字的读者,本文将是一篇不可错过的文章,我们将详细介绍java关键字有哪些及其作用,并且为您提供关于-1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义、JAVA入门到精通-JAVA关键字列表、Java关键字 速查表、Java关键字(五)——this的有价值信息。
本文目录一览:- Java关键字(java关键字有哪些及其作用)
- -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义
- JAVA入门到精通-JAVA关键字列表
- Java关键字 速查表
- Java关键字(五)——this
Java关键字(java关键字有哪些及其作用)
问题及答案来源自《Java程序员面试笔试宝典》第四章 Java基础知识 4.3关键字
1、变量命名有哪些规则
Java标识符:变量名、函数名、数组名统称为标识符
Java语言规定标识符只能由字母(a~z、A~Z)、数字(0~9)、下划线(_)和$组成
并且标识的第一个字符必须是字母、下划线或$,另外标识中不能包含空白字符(换行符、空格和制表符)
另外要注意在Java中变量名是区分大小写的,例如Count和count就是两个不同的标识符
2、break、continue以及return有什么区别
break、continue、return的区别如下:
- break用于直接强行跳出当前循环,不再执行剩余代码
- continue用于停止当此循环,回到循环起始处,进入下一次循环操作
- return表示从一个方法返回(返回值或其他复杂类型),使程序控制返回到调用该方法的地方
另外break也可以跳出多层循环:
1 public class Break{
2 public static void main(String[] args) {
3 out:
4 for(int i=0;i<5;i++){
5 for(int j=0;j<5;j++){
6 if(j>=2){
7 break out;
8 }
9 System.out.println(j);
10 }
11 }
12 System.out.println("break");
13 }
14 }
程序运行结果为:
0
1
break
3、final、finally和finalize有什么区别
final、finally、finalize三者的区别如下:
- final用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖和类不可被继承(不能再派生出新的子类)
- finally作为异常处理的一部分,只能用在try/catch语句中,附带一个语句表示这个语句最终一定被执行
- finalize是Object类的一个方法,在垃圾回收器执行时会调用被回收对象的finalize方法
关于final:
1 final修饰类:不能被继承(没有子类),但是可以是其他类的子类
2
3 final修饰成员变量:
4 被final修饰的成员变量必须在创建对象之前有确定的值
5 被final修饰的成员变量只能赋值一次(要么声明的时候直接赋值,要么在构造函数中赋值)
6
7 final修饰成员方法:
8 不能被子类重写
9
10 final修饰局部变量:
11 基本类型局部变量 - 只能赋值一次(实际上就是常量)
12 引用类型局部变量 - 只能赋值一次但其中对象里的内容是可以改变的(地址指向空间中的内存内容可以改变)
13
14 被final修饰的变量不可变 - final指的是引用不可变,即它只能指向初始化时指向的那个对象,而不关心
15
16 另外一个类不能即被声明为abstract,又被声明为final
关于finally:
finally最终一定被执行,经常被用在需要释放资源的情况下,示例代码如下:
1 Connection conn = null;
2 Statement stmt = null;
3 try{
4 conn = DriverManager.getConnection(url, userName, password);
5 stmt = conn.createStatement();
6 tmt.executeUpdate(update); // 执行一条update语句
7 stmt.close();
8 conn.close();
9 } catch(Exception e){
10 e.printStackTrace();
11 } finally{
12 if(stmt!=null){
13 stmt.close();
14 }
15 if(conn!=null){
16 conn.close();
17 }
18 }
在上述代码中不管程序运行是否出现异常,finally的代码一定会运行,这样能保证在任何情况下数据库的连接资源都能被释放
关于finalize:
一旦垃圾回收器准备好释放对象占用的空间,将首先调用finalize方法,并且在下一次垃圾回收动作发生时
才会真正回收对象占用的内存
常见笔试题 - Java中哪些类是不能继承的?
不能继承的类是用final关键字修饰的类,一般比较基本的类型为防止拓展类无意间破坏原来方法的实现,就用final修饰类,
在Java中String、StringBuffer等都是基本类型,所以String、StringBuffer等类都是不能继承的
4、assert有什么作用
assert是什么:
assert就是断言,是一种软件调试的方法,提供了在代码中进行正确性检查的机制
assert的作用:
对一个boolean表达式进行检查,一个正确运行的程序必须保证这个boolean表达式的值为true,若为false
则说明程序不正确,需要提供警告信息并退出程序
assert的使用:
1 // 使用assert
2 public class code9_useAssert {
3 public static void main(String[] args) {
4 assert 1 + 1 == 2;
5 System.out.println("assert1 OK");
6 assert 1 + 1 == 3 : "assert failed, exit";
7 System.out.println("assert2 OK");
8 }
9 }
Java中的assert和C语言中的assert的不同:
- Java中使用assert关键字实现功能,而C语言中使用的是库函数
- C语言中的assert是在编译时开启,而Java中是在运行时开启
5、static关键字有哪些作用
static关键字的主要作用有两个:
- 为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关
- 实现某个方法或属性与类而不是与对象关联在一起
static的作用(详细):
- static是Java关键字,是一个修饰符,用于修饰成员(成员变量,成员函数)
- static修饰的成员变量称之为静态变量或类变量,修饰的成员函数称之为静态函数或类函数
- static修饰的成员被所有的对象共享,static成员优先于对象存在,因为static的成员随着类的加载就已经存在
- static修饰的成员多一种调用方式,可以直接用类名调用(类名.静态成员),当然也可以用对象名来调用
- static修饰的数据是共享数据,对象中的存储的是特有的数据
static主要有4种使用情况:成员变量、成员方法、代码块和内部类,详细如下:
static成员变量:
static成员变量就是静态变量,静态变量属于类,在内存中只有一个复制(所有实例都指向同一个地址),
只要静态变量所在的类被加载,这个静态变量就会被分配空间,就可以使用了(类.静态变量或对象.静态变量)
static成员方法:
static方法(静态方法)中不能使用this和super关键字,不能调用非static方法,不能访问非static变量,只能
访问所属类的静态成员变量和静态成员方法
static代码块:
static代码块即静态代码块在类中是独立于成员变量和成员函数的代码块的,它不在任何一个方法体内,
JVM在加载类时会执行静态代码块,静态代码块常用来初始化静态变量,注意static代码块只会执行一次
static代码块代码如下:
1 public class Test{
2 private static int a;
3 static{
4 Test.a = 4;
5 System.out.println(a);
6 System.out.println("static block");
7 }
8 public static void main(String[] args){
9 }
10 }
程序运行结果:
4
static block
static内部类:
static内部类是指被声明为static的内部类,它可以不依赖于外部类实例对象而被实例化,而通常的内部类需要在
外部类实例化后才能实例化
静态内部类不能与外部类有相同的名字,不能访问外部类的普通成员变量,只能访问外部类中的静态成员和静态方法
引申1 - 什么是实例变量?什么是局部变量?什么是类变量?什么是final变量?
实例变量:变量归对象所有,每实例化一个对象就会创建一个副本并初始化,如果没有显式初始化那么会初始化默认值
局部变量:在方法中定义的变量,在使用前必须初始化
类变量:用static修饰的属性,变量归类所有,只要类被加载这个变量就可以使用
final变量:表示变量为常量,不能被修改(引用不能被修改)
引申2 - static与final结合使用表示什么意思?
在Java中static和final结合用来修饰成员变量和成员方法,类似C/C++中的全局常量
- 对于变量来说:若使用static final来修饰,表示一旦赋值就不可修改,并且可以通过类名访问
- 对于方法来说:若使用static final来修饰,表示该方法不可覆盖,并且可以通过类名直接访问
引申3 - 被static修饰的成员的特点如下:
- 存在方法区中的静态区,只有一个空洞
- 静态是优于对象存在
- 访问静态成员可以通过类名也可以通过对象名(建议通用类名访问)
6、使用switch有哪些注意事项
switch的注意事项:
- switch()内必须为字符型或整型(Java7支持String类型)
- case后可以是常量或常量表达式,但不能有变量
- 如果没有break,switch程序会一直执行下去直到遇到break或switch结束
switch对字符串的支持原理:
switch对字符串的支持其实就是int类型值的匹配,它的实现原理是通过case后面的String对象调用hashCode()方法,
得到一个int类型的hash值,然后用这个hash值来唯一标识这个case。当匹配时,首先调用字符串hashCode方法,
获取hash值,用这个hash值来匹配所有case,如果没有匹配成功,说明不存在,如果匹配成功,接着调用
字符串的String.equals()方法进行匹配
由原理可以看出String变量不能为null,同时case子句中使用的字符串也不能为null
7、volatile有什么作用
背景描述:
在用Java编写的程序中,有时候为了提高程序的运行效率,编译器会自动对其进行优化,把经常访问的变量缓存起来,
程序在读取这个变量时有可能会直接从缓存(寄存器)中读取值,而不会去内存中读取值
这样做的好处是提高了程序的运行效率,但当多线程编程时,变量的值可能因为别的线程改变了,而该缓存的值
却不会相应改变,从而造成应用程序读取的值和实际的变量值不一致
volatile的作用:
volatile是一个类型修饰符,它是被设计用来修饰被不同线程访问和修改的变量。被volatile类型定义的变量,系统
每次用到它都是直接从对应的内存中读取数据,而不会利用缓存,于是就避免了上述情况的发生。在使用了volatile
修饰成员变量后,所有线程在任何时候所看到变量的值都是一样的
volatile的缺点:
- 不能保证操作的原子性(不能替代sychronized)
- 使用volatile会组织编译器对代码的优化(降低程序运行效率)
8、instanceof有什么作用
instanceof是Java中的一个二元运算符
其主要作用是判断一个引用类型的变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例
即判断它左边的对象是否是它右边的类的实例,该运算符返回boolean类型的数据
instanceof使用代码如下:
1 public class test {
2 public static void main(String[] args) {
3 String s = "hello";
4 int[] a = {1, 2};
5 System.out.println(s instanceof String); // true
6 System.out.println(s instanceof Object); // true
7 System.out.println(a instanceof int[]); // true
8 }
9 }
9、strictfp有什么作用
stricfp =》strict float point
stricfp指精确浮点,它用来确保浮点数运算的准确性
-1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义
Java语言基础组成
关键字 标识符 注释 常量和变量 运算符 语句 函数 数组
关键字
定义:被Java语言赋予了特殊含义的单词
特点:关键字中所有字母都为小写
用于定义数据类型的关键字
class
interface
byte
short
int
long
float
double
char
boolean
void
用于定义数据类型值的关键字
true
false
null
用于定义流程控制的关键字
if
else
switch
case
default
while
do
for
break
continue
return
用于定义访问权限修饰符的关键字
private
protected
public
用于定义类,函数,变量修饰符的关键字
abstract
final
static
synchronized
用于定义类与类之间关系的关键字
extends
implements
用于定义建立实例及引用实例,判断实例的关键字
new
this
super
instanceof
用于异常处理的关键字
try
catch
finally
throw
throws
用于包的关键字
package
import
其他修饰符关键字
native
strictfp
transient
volatile
assert
goto和const作为保留字存在。
标识符
程序中自定义的一些名称,变量名,类名,方法名等
字符/数字/下划线/$/ 组成 不可以使用关键字 不允许以数字开头 严格区分大小写
$为了规范不要使用
规范的形式:
包名:多单词组成时所有字母都小写。
xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写。
XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ
注释
注解说明解释程序的文字就是注释,简单说就是给人看,而不是给机器看的
Java中的注释格式:
•单行注释
•格式: //注释文字
•多行注释
•格式: /* 注释文字 */
•文档注释
•格式:/** 注释文字 */
对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,
生成一套以网页文件形式体现的该程序的说明文档。
注释是必须要做的,除非你的代码自注释非常好
常量与变量
常量表示不能改变的数值。
Java中常量的分类:
1,整数常量。所有整数
2,小数常量。所有小数
3,布尔(boolean)型常量。较为特有,只有两个数值。true false。
4,字符常量。将一个数字字母或者符号用单引号( '' '' )标识。
5,字符串常量。将一个或者多个字符用双引号(“ ”)标识。
6,null常量。只有一个数值就是:null.
对于整数:有四种表现形式。
•二进制:0,1 ,满2进1.
•八进制:0-7 ,满8进1. 用0开头表示。
•十进制:0-9 ,满10进1.
•十六进制:0-9,A-F,满16进1. 用0x开头表示。
负数的二进制表现形式--对应的正数二进制取反加1
变量的概念:
•内存中的一个存储区域
•该区域有自己的名称(变量名)和类型(数据类型)
•该区域的数据可以在同一类型范围内不断变化
为什么要定义变量:
•用来不断的存放同一类型的常量,并可以重复使用
使用变量注意:
•变量的作用范围(一对{}之间有效)
•初始化值
定义变量的格式:
•数据类型 变量名 = 初始化值;
•注:格式是固定的,记住格式,以不变应万变。
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间
长整数要加L或者l
单精度的浮点数要加F或者f
char 2个字节 boolean 1个字节
类型转换
自动类型转换/强制类型转换
表达式的数据类型自动提升
•所有的byte型、short型和char的值将被提升到int型。
•如果一个操作数是long型,计算结果就是long型;
•如果一个操作数是float型,计算结果就是float型;
•如果一个操作数是double型,计算结果就是double型。
可以这么理解,double > float > long > 其他
从左到右,有左边的那就没右边的事儿了 其他里面不管是什么,都是int
也就是byte,short,char之间不相互转换,直接转成int类型参与运算
short s=1, s = s+1; 编译不通过 1是int s+1自动提升为int int赋值给short 报错
short s=1, s+=1; +=是一个操作符,不涉及到类型的提升,也可以理解为相当于s = (short)(s + 1)
也就是隐含了自动强制转换
运算符
算术运算符/赋值运算符/比较运算符/逻辑运算符/位运算符/三元运算符
算术运算符
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1 但被模数是负数就另当别论。
换句话说是符号跟%前面的一致
整数之间除号“/” 是取整
“+”除字符串相加功能外,还能把非字符串转换成字符串,如果与字符串+ 可以当做是连接符
赋值运算符
= , +=, -=, *=, /=, %=
右边的赋值给左边变量 X= 运算符的形式aX=b; 等同于 a=aXb; X为+ - * / %
比较运算符
结果只有true或者false 两种
逻辑运算符
逻辑运算符用于连接布尔型表达式 Java中不可以写成1<x<8,应该写成x>1 & x<8 。
或只要有一个为真则为真
与两个都为真才为真
单个的不会短路,也就是无论如何两侧都会计算
双个的会短路 一旦结果可以推断出来,不在继续计算
异或是两个不同才为真
位运算符
直接对二进制进行运算
被移位的二进制最高位是0,右移后,空缺位补0;
最高位是1,空缺位补1。
相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0
不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1
一个数据针对另一个数据位异或两次,该数不变
移位运算可以快速乘除2的N次方
三元运算符
格式
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
运算符的优先级(从高到低)
如果在程序中,要改变运算顺序,可以使用()。
优先级
描述
运算符
1
括号
()、[]
2
正负号
+、-
3
自增自减,非
++、--、!
4
乘除,取余
*、/、%
5
加减
+、-
6
移位运算
<<、>>、>>>
7
大小关系
>、>=、<、<=
8
相等关系
==、!=
9
按位与
&
10
按位异或
^
11
按位或
|
12
逻辑与
&&
13
逻辑或
||
14
条件运算
?:
15
赋值运算
=、+=、-=、*=、/=、%=
16
位赋值运算
&=、|=、<<=、>>=、>>>=
语句
顺序结构/选择结构(分支结构/判断结构)/循环结构
顺序结构
顺序就是自上而下按照顺序执行语句
选择结构
if语句
三种形式:
if(条件表达式){
执行语句;
}
if(条件表达式){
执行语句;
}else {
执行语句;
}
if(条件表达式){
执行语句;
}
else if (条件表达式){
执行语句;
}
……
else {
执行语句;
}
if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略
建议永远不要省略
switch语句
格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
switch语句选择的类型:byte,short,int , char JDK5增加枚举 JDK7增加String
case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
结束switch语句的两种情况: 遇到break,执行到switch语句结束
如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
default可以省略,但是最好不要,除非你很确定结果
循环结构
while(条件表达式)
{
执行语句;
}
do while语句格式:
do
{
执行语句;
}while(条件表达式);
do while特点:是条件无论是否满足,循环体至少执行一次。
for
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;(循环体)
}
先执行初始化表达式,然后就是判断条件,操作,判断条件,操作.....
与这种while等价:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
虽然形式上可以互换,但是for中的变量结束后消亡,while中继续存活
for更适合个数有限的 while更适合次数不明的
while(true) for(;;),无限循环
优先考虑for
break(跳出), continue(继续) return 返回退出方法
break语句:应用范围:选择结构和循环结构。 中断当前
continue语句:应用于循环结构。 跳出当次循环继续执行
break continue还可以带标签 没有什么必要用
函数
什么是函数?
函数就是定义在类中的具有特定功能的一段独立小程序。
函数也称为方法。
函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,...)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于返回结束函数。
返回值:该函数运算后的结果,该结果会返回给调用者。
函数特点
定义函数可以将功能代码进行封装
便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键字void表示,
那么该函数中的return语句如果在最后一行可以省略不写。
注意:
函数中只能调用函数,不可以在函数内部定义函数。
定义函数时,函数的结果应该返回给调用者,交由调用者处理。
方法重载 overload
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
与返回值类型无关,只看参数列表。
数组
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
格式1:
元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
示例:int[] arr = new int[5];
格式2:
元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};
多维数组
格式1
•数据类型[][] 变量名 = new 数据类型[m][n];
•m表示这个二维数组有多少个一维数组
•n表示每一个一维数组的元素个数
•举例:
•int[][] arr = new int[3][2];
•定义了一个二维数组arr
•这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]
•每个一维数组有2个元素,可以通过arr[m][n]来获取
•表示获取第m+1个一维数组的第n+1个元素
格式2
•数据类型[][] 变量名 = new 数据类型[m][];
•m表示这个二维数组有多少个一维数组
•这一次没有直接给出一维数组的元素个数,可以动态的给出。
•举例:
•int[][] arr = new int[3][];
•arr[0] = new int[2];
•arr[1] = new int[3]
•arr[2] = new int[1];
格式3
•数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
•简化版格式:
•数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
•举例:
•int[][] arr = {{1,2,3},{4,6},{6}};
还有多维数组
int[][][][][][][] arr = new int[8][7][6][5][4][3][2];
其实不管多少维数组,都是二维数组 只不过是嵌套了多层,都是数组的数组,数组的元素仍旧是数组
JAVA入门到精通-JAVA关键字列表
JAVA关键字与保留字说明及使用
abstract - 1 - boolean - 2 - break - 2 - byte - 2 -
case - 3 - catch - 3 - char - 4 - class - 4 -
continue - 5 - default - 5 - do - 6 - double - 6 -
else - 6 - extends - 6 - false - 7 - final - 7 -
finally - 7 - float - 8 - for - 8 - if - 8 -
implements - 9 - import - 9 - instanceof - 9 -
int - 9 - interface - 10 - long - 10 - native - 10 -
new - 11 - null - 11 - package - 11 - private - 11 -
protected - 12 - public - 12 - return - 13 - short - 13 -
static - 13 - super - 14 - switch - 14 - synchronized - 15 -
this - 16 - throw - 16 - throws - 16 - transient - 17 -
try - 17 - true - 18 - void - 18 - volatile - 18 -
while - 18 -
1.abstract
abstract 关键字可以修改类或方法。
abstract 类可以扩展(增加子类),但不能直接实例化。
abstract 方法不在声明它的类中实现,但必须在某个子类中重写。
-示例-
public abstract class MyClass{
}
public abstract String myMethod();
-注释-
采用 abstract 方法的类本来就是抽象类,并且必须声明为 abstract。
abstract 类不能实例化。
仅当 abstract 类的子类实现其超类的所有 abstract 方法时,才能实例化 abstract 类的子类。这种类称为具体类,以区别于 abstract 类 。
如果 abstract 类的子类没有实现其超类的所有 abstract 方法,该子类也是 abstract 类。
abstract 关键字不能应用于 static、private 或 final 方法,因为这些方法不能被重写,因此,不能在子类中实现。
final 类的方法都不能是 abstract,因为 final 类不能有子类。
2.boolean
变量的值可以是 true 或 false。
-示例-
boolean valid = true;
if (valid){
<statement>
}
-注释-
boolean 变量只能以 true 或 false 作为值。
boolean 不能与数字类型相互转换。
包含 boolean 操作数的表达式只能包含 boolean 操作数。
Boolean 类是 boolean 原始类型的包装对象类。
3.break
用于提前退出 for、while 或 do 循环,或者在 switch 语句中用来结束 case 块。
-示例-
for (i=0; i<max; i++){
if (<loop finished early>){
break;
}
}
int type = <some value>;
switch (type){
case 1:
<statement>
break;
case 2:
<statement>
break;
default:
<statement>
}
-注释-
break 总是退出最深层的 while、for、do 或 switch 语句。
4.byte
byte 是 Java 原始类型。
byte 可存储在 [-128, 127] 范围以内的整数值。
-示例-
byte b = 124;
-注释-
Byte 类是 byte 原始类型的包装对象类。它定义代表此类型的值的范围的 MIN_VALUE 和 MAX_VALUE 常量。
Java 中的所有整数值都是 32 位的 int 值,除非值后面有 l 或 L(如 235L),这表示该值应解释为 long。
5.case
用来标记 switch 语句中的每个分支。
-示例-
int arg = <some value>;
switch (arg){
case 1:
<statements>
break;
case 2:
<statements>
break;
default:
<statements>
break;
}
-注释-
case 块没有隐式结束点。break 语句通常在每个 case 块末尾使用,用于退出 switch 语句。
如果没有 break 语句,执行流将进入所有后面的 case 和/或 default 块。
6.catch
catch 关键字用来在 try-catch 或 try-catch-finally 语句中定义异常处理块。
-示例-
try{
<可能引发异常的块>
}catch (<java.lang.Exception 或子类> e){
<处理异常 e 的代码>
}
try{
<可能引发其他异常的块>
}catch (FooException e){
<处理 FooException e 的代码>
}catch (BarException e){
<处理 BarException e 的代码>
}
try{
<可能引发异常的块>
}catch (<java.lang.Exception 或子类> e){
<处理异常 e 的代码>
}finally{
<有异常或无异常情况下都执行的语句>
}
-注释-
开始和结束标记 { 和 } 是 catch 子句语法的一部分,即使该子句只包含一个语句,也不能省略这两个标记。
每个 try 块都必须至少有一个 catch 或 finally 子句。
如果某个特定异常类未被任何 catch 子句处理,该异常将沿着调用栈递归地传播到下一个封闭 try 块。如果任何封闭 try 块都未捕获到异常,Java 解释器将退出,并显示错误消息和堆栈跟踪信息。
7.char
char 是 Java 原始类型。
char 变量可以存储一个 Unicode 字符。
-示例-
char delimiter = '';'';
-注释-
可以使用下列 char 常量:
\b - 空格
\f - 换页
\n - 换行
\r - 回车
\t - 水平制表符
\'' - 单引号
\" - 双引号
\" - 反斜杠
\xxx - 采用 xxx 编码的 Latin-1 字符。\x 和 \xx 均为合法形式,但可能引起混淆。
\uxxxx - 采用十六进制编码 xxxx 的 Unicode 字符。
Character 类包含一些可用来处理 char 变量的 static 方法,这些方法包括 isDigit()、isLetter()、isWhitespace() 和 toUpperCase()。
char 值没有符号。
8.class
class 关键字用来声明新的 Java 类,该类是相关变量和/或方法的集合。
类是面向对象的程序设计方法的基本构造单位。类通常代表某种实际实体,如几何形状或人。类是对象的模板。每个对象都是类的一个实例。
要使用类,通常使用 new 操作符将类的对象实例化,然后调用类的方法来访问类的功能。
-示例-
public class Rectangle{
float width;
float height;
public Rectangle(float w, float h){
width = w;
height = h;
}
public float getWidth(){
return width;
}
public float getHeight(){
return height;
}
}
9.continue
continue 关键字用来跳转到 for、while 或 do 循环的下一个迭代。
-示例-
for (i=0; i<max; i++){
<statements>
if (<done with this iteration>){
continue;
}
<statements>
}
-注释-
continue 总是跳到最深层 while、for 或 do 语句的下一个迭代。
10.default
default 关键字用来标记 switch 语句中的默认分支。
-示例-
int arg = <some value>;
switch (arg){
case 1:
<statements>
break;
case 2:
<statements>
break;
default:
<statements>
break;
}
-注释-
default 块没有隐式结束点。break 语句通常在每个 case 或 default 块的末尾使用,以便在完成块时退出 switch 语句。
如果没有 default 语句,其参数与任何 case 块都不匹配的 switch 语句将不执行任何操作。
11.do
do 关键字用于指定一个在每次迭代结束时检查其条件的循环。
-示例-
do{
<statements>
}
while (!found);
-注释-
do 循环体至少执行一次。
条件表达式后面必须有分号。
12.double
double 是 Java 原始类型。
double 变量可以存储双精度浮点值。
-示例-
double ratio = .01;
double diameter = 6.15;
double height = 1.35E03; // 1.35 * 103 或 1350.0
double height = 1e-2; // 1.0 * 10-2 或 0.01
-注释-
由于浮点数据类型是实际数值的近似值,因此,一般不要对浮点数值进行是否相等的比较。
Java 浮点数值可代表无穷大和 NaN(非数值)。Double 包装对象类用来定义常量 MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY 和 NaN。
13.else
else 关键字总是在 if-else 语句中与 if 关键字结合使用。else 子句是可选的,如果 if 条件为 false,则执行该子句。
-示例-
if (condition){
<statements>
}else{
<statements>
}
14.extends
extends 关键字用在 class 或 interface 声明中,用于指示所声明的类或接口是其名称后跟有 extends 关键字的类或接口的子类。
-示例-
public class Rectangle extends Polygon{
}
-注释-
在上例中,Rectangle 类继承 Polygon 类的所有 public 和 protected 变量和方法。
Rectangle 类可以重写 Polygon 类的任何非 final 方法。
一个类只能扩展一个其他类。
15.false
false 关键字代表 boolean 变量的两个合法值之一。
-示例-
boolean isComplete = false;
16.final
final 关键字可以应用于类,以指示不能扩展该类(不能有子类)。
final 关键字可以应用于方法,以指示不能重写任何子类中的方法。
-示例-
public final class MyFinalClass{
}
public class MyClass{
public final String myFinalMethod(){
<statements>
}
}
-注释-
一个类不能同时是 abstract 又是 final。abstract 意味着必须扩展类,final 意味着不能扩展类。
一个方法不能同时是 abstract 又是 final。abstract 意味着必须重写方法,final 意味着不能重写方法。
17.finally
finally 关键字用来定义始终在 try-catch-finally 语句中执行的块。
finally 块通常包含清理代码,用在部分执行 try 块后恢复正常运行。
-示例-
try{
<可能引发异常的块>
}catch (<java.lang.Exception 或子类> e){
<处理异常 e 的代码>
}finally{
<有异常或无异常情况下都执行的语句>
}
-注释-
开始和结束标记 { 和 } 是 finally 子句语法的一部分,即使该子句只包含一个语句,也不能省略这两个标记。
每个 try 块都必须至少有一个 catch 或 finally 子句。
如果执行 try 块的任何部分,不论是否出现异常,也不论 try 或 catch 块是否包含 return、continue 或 break 语句,都一定会执行 finally 块中的代码。
如果不出现异常,控件将跳过 try 块,进入 finally 块。
如果在执行 try 块期间出现异常,并且相应的 catch 块包含 break、continue 或 return 语句,控件将首先穿过 finally 块,之后再执行 break、continue 或 return。
18.float
float 是 Java 原始类型。
float 变量可以存储单精度浮点值。
-示例-
float ratio = .01;
float diameter = 6.15;
float height = 1.35E03; // 1.35 * 103 或 1350.0
float height = 1e-2; // 1.0 * 10-2 或 0.01
-注释-
使用此关键字时应遵循下列规则:
Java 中的浮点文字始终默认为双精度。要指定单精度文字值,应在数值后加上 f 或 F,如 0.01f。
由于浮点数据类型是实际数值的近似值,因此,一般不要对浮点数值进行是否相等的比较。
Java 浮点数值可代表无穷大和 NaN(非数值)。Float 包装对象类用来定义常量 MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY 和 NaN。
19.for
for 关键字用于指定一个在每次迭代结束前检查其条件的循环。
-示例-
int i;
for (i=0; i<max; i++){
<statements>
}
-注释-
for 语句的形式为 for(initialize; condition; increment)
控件流进入 for 语句时,将执行一次 initialize 语句。
每次执行循环体之前将计算 condition 的结果。如果 condition 为 true,则执行循环体。
每次执行循环体之后,在计算下一个迭代的 condition 之前,将执行 increment 语句。
20.if
if 关键字指示有条件地执行代码块。条件的计算结果必须是布尔值。
-示例-
if (condition){
<statements>
}
if (condition){
<statements>
}else{
<statements>
}
-注释-
if 语句可以有可选的 else 子句,该子句包含条件为 false 时将执行的代码。
包含 boolean 操作数的表达式只能包含 boolean 操作数。
21.implements
implements 关键字在 class 声明中使用,以指示所声明的类提供了在 implements 关键字后面的名称所指定的接口中所声明的所有方法的实现。
-示例-
public class Truck implements IVehicle{
}
-注释-
在上例中,Truck 类必须提供在 IVehicle 接口中所声明的所有方法的实现。
否则,Truck 类将是独立的;它可以声明其他方法和变量,并扩展另一个类。
一个类可以实现多个接口。
22.import
import 关键字使一个包中的一个或所有类在当前 Java 源文件中可见。可以不使用完全限定的类名来引用导入的类。
-示例-
import java.io.File;
import java.net.*;
-注释-
当多个包包含同名的类时,许多 Java 程序员只使用特定的 import 语句(没有“*”)来避免不确定性。
23.instanceof
instanceof 关键字用来确定对象所属的类。
-示例-
if (node instanceof TreeNode){
<statements>
}
-注释-
在上例中,如果 node 是 TreeNode 类的实例,或者是 TreeNode 的子类的实例,则 instanceof 表达式的值将为 true。
24.int
int 是 Java 原始类型。
int 变量可以存储 32 位的整数值。
-示例-
int number = 5;
int octalNumber = 0377;
int hexNumber = 0xff;
-注释-
Integer 类是 int 原始类型的包装对象类。它定义代表此类型的值的范围的 MIN_VALUE 和 MAX_VALUE 常量。
Java 中的所有整数值都是 32 位的 int 值,除非值后面有 l 或 L(如 235L),这表示该值应解释为 long。
25.interface
interface 关键字用来声明新的 Java 接口,接口是方法的集合。
接口是 Java 语言的一项强大功能。任何类都可声明它实现一个或多个接口,这意味着它实现了在这些接口中所定义的所有方法。
-示例-
public interface IPolygon{
public float getArea();
public int getNumberOfSides();
public int getCircumference();
}
-注释-
实现了接口的任何类都必须提供在该接口中的所有方法的实现。
一个类可以实现多个接口。
26.long
long 是 Java 原始类型。
long 变量可以存储 64 位的带符号整数。
-示例-
long number = 5;
long anotherNumber = 34590L;
long octalNumber = 0377;
long hexNumber = 0xffl;
-注释-
Long 类是 long 原始类型的包装对象类。它定义代表此类型的值的范围的 MIN_VALUE 和 MAX_VALUE 常量。
Java 中的所有整数值都是 32 位的 int 值,除非值后面有 l 或 L(如 235L),这表示该值应解释为 long。
27.native
native 关键字可以应用于方法,以指示该方法是用 Java 以外的语言实现的。
-示例-
native String getProcessorType();
-注释-
Native 方法不在此文档的讨论范围内。
28.new
new 关键字用于创建类的新实例。
-示例-
String sName = new String();
Float fVal = new Float(0.15);
-注释-
new 关键字后面的参数必须是类名,并且类名的后面必须是一组构造方法参数(必须带括号)。
参数集合必须与类的构造方法的签名匹配。
= 左侧的变量的类型必须与要实例化的类或接口具有赋值兼容关系。
29.null
null 是 Java 的保留字,表示无值。
-示例-
Integer i;
i = null;
String s;
if (s != null){
<statements>
}
-注释-
将 null 赋给非原始变量相当于释放该变量先前所引用的对象。
不能将 null 赋给原始类型(byte、short、int、long、char、float、double、boolean)变量。
30.package
package 关键字指定在 Java 源文件中声明的类所驻留的 Java 包。
-示例-
package com.mycompany;
public class MyClass{
}
-注释-
package 语句(如果出现)必须是 Java 源文件中的第一个非-注释-性文本。
在上面的-示例-中,MyClass 类的完全限定类名是 com.mycompany.MyClass。
如果 Java 源文件不包含 package 语句,在该文件中定义的类将位于“默认包”中。请注意,不能从非默认包中的类引用默认包中的类。
31.private
private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。
-示例-
public class MyPublicClass{
private class MyPrivateClass{
}
private int i;
private String myMethod(){
<statements>
}
}
-注释-
只能在声明 private(内部)类、方法或字段的类中引用这些类、方法或字段。在类的外部或者对于子类而言,它们是不可见的。
所有类成员的默认访问范围都是 package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。
32.protected
protected 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。
-示例-
public class MyPublicClass{
protected class MyPrivateClass{
}
protected int i;
protected String myMethod(){
<statements>
}
}
-注释-
可以在声明 protected 类、方法或字段的类、同一个包中的其他任何类以及任何子类(无论子类是在哪个包中声明的)中引用这些类、方法或字段。
所有类成员的默认访问范围都是 package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。
33.public
public 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。
-示例-
public class MyPublicClass{
public class MyPrivateClass{
}
public int i;
public String myMethod(){
<statements>
}
}
-注释-
可能只会在其他任何类或包中引用 public 类、方法或字段。
所有类成员的默认访问范围都是 package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。
34.return
return 关键字会导致方法返回到调用它的方法,从而传递与返回方法的返回类型匹配的值。
-示例-
public void myVoidMethod(){
<statements>
return;
}
public String myStringMethod(){
String s = "my response";
return s;
}
public int myIntMethod(){
int i = 5;
return(i);
}
-注释-
如果方法具有非 void 的返回类型,return 语句必须具有相同或兼容类型的参数。
返回值两侧的括号是可选的。
35.short
short 是 Java 原始类型。
short 变量可以存储 16 位带符号的整数。
-示例-
short number = 5;
short octalNumber = 0077;
short hexNumber = 0xff;
-注释-
Short 类是 short 原始类型的包装对象类。它定义代表此类型的值的范围的 MIN_VALUE 和 MAX_VALUE 常量。
Java 中的所有整数值都是 32 位的 int 值,除非值后面有 l 或 L(如 235L),这表示该值应解释为 long。
36.static
static 关键字可以应用于内部类(在另一个类中定义的类)、方法或字段(类的成员变量)。
-示例-
public class MyPublicClass{
public final static int MAX_OBJECTS = 100;
static int _numObjects = 0;
static class MyStaticClass{
}
static int getNumObjects(){
}
}
-注释-
通常,static 关键字意味着应用它的实体在声明该实体的类的任何特定实例外部可用。
static(内部)类可以被其他类实例化和引用(即使它是顶级类)。在上面的-示例-中,另一个类中的代码可以实例化 MyStaticClass 类,方法是用包含它的类名来限定其名称,如 MyClass.MyStaticClass。
static 字段(类的成员变量)在类的所有实例中只存在一次。
可以从类的外部调用 static 方法,而不用首先实例化该类。这样的引用始终包括类名作为方法调用的限定符。在上面的示例中,MyClass 类外部的代码以 MyClass.getNumObjects() 的形式调用 getNumObjects() static 方法。
模式:
public final static <type> varName = <value>;
通常用于声明可以在类的外部使用的类常量。在引用这样的类常量时需要用类名加以限定。在上面的-示例-中,另一个类可以用 MyClass.MAX_OBJECTS 形式来引用 MAX_OBJECTS 常量。
37.super
super 关键字用于引用使用该关键字的类的超类。
-示例-
public class MyClass{
public MyClass(String arg){
super(arg);
}
public String myStringMethod(){
return super.otherStringMethod();
}
}
-注释-
作为独立语句出现的 super 表示调用超类的构造方法。
super.<methodName>() 表示调用超类的方法。只有在如下情况中才需要采用这种用法:要调用在该类中被重写的方法,以便指定应当调用在超类中的该方法。
38.switch
switch 语句用于基于某个表达式选择执行多个代码块中的某一个。
-示例-
int arg = <some value>;
switch (arg){
case 1:
<statements>
break;
case 2:
<statements>
break;
default:
<statements>
break;
}
char arg = <some value>;
switch (arg){
case ''y'':
case ''Y'':
<statements>
break;
case ''n'':
case ''N'':
<statements>
break;
default:
<statements>
break;
}
-注释-
switch 条件的计算结果必须等于 byte、char、short 或 int。
case 块没有隐式结束点。break 语句通常在每个 case 块末尾使用,用于退出 switch 语句。
如果没有 break 语句,执行流将进入所有后面的 case 和/或 default 块。
39.synchronized
synchronized 关键字可以应用于方法或语句块,并为一次只应由一个线程执行的关键代码段提供保护。
-示例-
public class MyClass{
public synchronized static String mySyncStaticMethod(){
}
public synchronized String mySyncMethod(){
}
}
public class MyOtherClass{
Object someObj;
public String myMethod(){
<statements>
synchronized (someObj){
<statements affecting someObj>
}
}
}
-注释-
synchronized 关键字可防止代码的关键代码段一次被多个线程执行。
如果应用于静态方法(如上例中的 MySyncStaticMethod),那么,当该方法一次由一个线程执行时,整个类将被锁定。
如果应用于实例方法(如上例中的 MySyncMethod),那么,当该方法一次由一个线程访问时,该实例将被锁定。
如果应用于对象或数组,当关联的代码块一次由一个线程执行时,对象或数组将被锁定。
40.this
this 关键字用于引用当前实例。
-示例-
public class MyClass{
int number;
public MyClass(int number){
this.number = number;
}
}
-注释-
当引用可能不明确时,可以使用 this 关键字来引用当前的实例。
在上面的-示例-中,构造方法参数 number 与类的成员变量同名。this.number 明确表示 MyClass 的该实例的 number 成员变量。
41.throw
throw 关键字用于引发异常。
-示例-
import java.io.IOException;
public class MyClass{
public method readFile(String filename) throws IOException{
<statements>
if (error){
throw new IOException("error reading file");
}
}
}
-注释-
throw 语句将 java.lang.Throwable 作为参数。Throwable 在调用栈中向上传播,直到被适当的 catch 块捕获。
引发非 RuntimeException 异常的任何方法还必须在方法声明中使用 throws 修饰符来声明它引发的异常。
42.throws
throws 关键字可以应用于方法,以便指出方法引发了特定类型的异常。
-示例-
import java.io.IOException;
public class MyClass{
public method readFile(String filename) throws IOException{
<statements>
if (error){
throw new IOException("error reading file");
}
}
}
-注释-
throws 关键字将逗号分隔的 java.lang.Throwables 列表作为参数。
引发非 RuntimeException 异常的任何方法还必须在方法声明中使用 throws 修饰符来声明它引发的异常。
要在 try-catch 块中包含带 throws 子句的方法的调用,必须提供该方法的调用者。
43.transient
transient 关键字可以应用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列化时被序列化。
-示例-
public class MyClass{
private transient String password;
}
44.try
try 关键字用于包含可能引发异常的语句块。
-示例-
try{
<可能引发异常的块>
}catch (<java.lang.Exception 或子类> e){
<处理异常 e 的代码>
}
try{
<可能引发其他异常的块>
}catch (FooException e){
<处理 FooException e 的代码>
}catch (BarException e){
<处理 BarException e 的代码>
}
try{
<可能引发异常的块>
}catch (<java.lang.Exception 或子类> e){
<处理异常 e 的代码>
}finally{
<有异常或无异常情况下都执行的语句>
}
-注释-
每个 try 块都必须至少有一个 catch 或 finally 子句。
如果某个特定异常类未被任何 catch 子句处理,该异常将沿着调用栈递归地传播到下一个封闭 try 块。
如果任何封闭 try 块都未捕获到异常,Java 解释器将退出,并显示错误消息和堆栈跟踪信息。
45.true
true 关键字表示 boolean 变量的两个合法值中的一个。
-示例-
boolean isComplete = true;
46.void
void 关键字表示 null 类型。
-示例-
public class MyClass{
public void doSomething(){
<statements>
return;
}
}
-注释-
void 可以用作方法的返回类型,以指示该方法不返回值。
47.volatile
volatile 关键字用于表示可以被多个线程异步修改的成员变量。
注意:volatile 关键字在许多 Java 虚拟机中都没有实现。
-示例-
public class MyClass{
volatile int sharedValue;
}
-注释-
volatile 的目标用途是为了确保所有线程所看到的指定变量的值都是相同的。
48.while
while 关键字用于指定一个只要条件为真就会重复的循环。
-示例-
while (!found){
<statements>
}
Java关键字 速查表
访问控制:
private 私有的
protected 受保护的
public 公共的
类、方法和变量修饰符:
abstract 声明抽象
class 类
extends 扩允,继承
final 终极,不可改变的
implements 实现
interface 接口
native 本地
new 创建
static 静态
strictfp 严格,精准
synchronized 线程,同步
transient 短暂
volatile 易失
程序控制语句:
break 跳出循环
continue 继续
return 返回
do 运行
while 循环
if 如果
else 反之
for 循环
instanceof 实例
switch 开关
case 返回开关里的结果
default 默认
错误处理:
try 捕获异常
catch 处理异常
finally 有没有异常都执行
throw 抛出一个异常对象
throws 声明一个异常可能被抛出
assert 断言
包相关:
import 引入
package 包
基本类型:
boolean 布尔型
byte 字节型
char 字符型
double 双精度,
float 浮点
int 整型
long 长整型
short 短整型
null 空
true 真
false 假
enum 枚举
变量引用:
super 父类,超类
this 本类
void 无返回值
Java关键字(五)——this
this 也是Java中的一个关键字,在《Java编程思想》第四版第五章5.4小节对 this 关键字是这样介绍的:
this 关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。
其实简单来说 this 关键字就是表示当前对象,下面我们来具体介绍 this 关键字在Java中的用法。
1、调用成员变量
在一个类的方法内部,如果我们想调用其成员变量,不用 this,我们会怎么做?
1 package com.ys.test;
2
3 /**
4 * Create by YSOcean
5 */
6 public class ThisTest {
7
8 private String name = "Tom";
9
10 public void setName(String name){
11 name = name;
12 }
13
14 public String getName() {
15 return name;
16 }
17
18 }
看上面的代码,我们在 ThisTest 类中创建了一个 name 属性,然后创建了一个 setName 方法,注意这个方法的形参也是 String name,那么我们通过 name = name 这样赋值,会改变成员变量 name 的属性吗?
1 public static void main(String[] args) {
2 ThisTest tt = new ThisTest();
3 tt.setName("Marry");
4 System.out.println(tt.getName());//Tom
5 }
打印结果是 Tom,而不是我们重新设置的 Marry,显然这种方式是不能在方法内部调用到成员变量的。因为形参的名字和成员变量的名字相同,setName 方法内部的 name = name,根据最近原则,编译器默认是将这两个 name 属性都解析为形参 name,从而导致我们设值操作和成员变量 name 完全没有关系,当然设置不了。
解决办法就是使用 this 关键字。我们将 setName 方法修改如下:
1 public void setName(String name){
2 this.name = name;
3 }
在调用上面的 main 方法进行赋值,打印的结果就是 Marry 了。
this 表示当前对象,也就是调用该方法的对象,对象.name 肯定就是调用的成员变量。
2、调用构造方法
构造方法是与类同名的一个方法,构造方法没有返回值,但是也不能用 void 来修饰。在一个类中,必须存在一个构造方法,如果没有,编译器会在编译的时候自动为这个类添加一个无参构造方法。一个类能够存在多个构造方法,调用的时候根据参数来区分。
1 package com.ys.test;
2
3 /**
4 * Create by YSOcean
5 */
6 public class ThisTest {
7 private String name;
8
9 public ThisTest(){
10 this("Marry");
11 }
12 public ThisTest(String name) {
13 this.name = name;
14 }
15 }
通过 this("Marry") 来调用另外一个构造方法 ThisTest(String name) 来给成员变量初始化赋值。
注意:通过 this 来调用构造方法,只能将这条代码放在构造函数的第一行,这是编译器的规定,如下所示:放在第二行会报错。
3、调用普通方法
this 表示当前对象,那么肯定能够调用当前类的普通方法。
1 public void printName(){
2 this.say();
3 }
4
5 public void say(){
6 System.out.println("say method...");
7 }
第 2 行代码,在 printName() 方法内部调用了 say() 方法。
4、返回当前对象
1 /**
2 * Create by YSOcean
3 */
4 public class ThisTest {
5
6 public Object newObject(){
7 return this;
8 }
9 }
这表示的意思是谁调用 newObject() 方法,那么就返回谁的引用。
关于Java关键字和java关键字有哪些及其作用的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于-1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义、JAVA入门到精通-JAVA关键字列表、Java关键字 速查表、Java关键字(五)——this的相关知识,请在本站寻找。
本文标签: