Java初学者笔记二-关键字及标识符

hi,大家好,我是终南有客,一个半路出家的程序员……
想要获取更多信息,请关注(终南有客)公众号,了解最新消息

一.关键字(共50多个)

关键字的定义:某种语言赋予了特殊含义的单词,例如:extends、class
保留字的含义:保留字:还没有赋予特殊含义的单词,但是准备日后要用到的单词

关键字分类:

1.访问控制

private protected public

2.类,方法和变量修饰符

abstract class extends final implements interface native new
static strictfp synchronized transient volatile

3.程序控制

break continue return do while if else for instanceof switch
case default

4.异常处理

try cathc throw throws

5.包相关

import package

6.基本类型

boolean byte char double float int long short null true false

7.变量引用

super this void

8.保留字

goto const

关键字具体含义:

  1. abstract 表明类或者成员方法具有抽象属性
  2. assert 用来进行程序调试
  3. boolean 基本数据类型之一,布尔类型
  4. break 提前跳出一个块
  5. byte 基本数据类型之一,字节类型
  6. case 用在switch语句之中,表是其中的一个分支
  7. catch 用在异常处理中,用来捕捉异常
  8. char 基本数据类型之一,字符类型
  9. class 类
  10. const 保留关键字,没有具体含义
  11. continue 回到一个块的开始处
  12. default 默认,例如,用在switch语句中,表明一个默认的分支
  13. do 用在do-while循环结构中
  14. double 基本数据类型之一,双精度浮点数类型
  15. else 用在条件语句中,表明当条件不成立时的分支
  16. enum 枚举
  17. extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
  18. final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变
  19. finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
  20. float 基本数据类型之一,单精度浮点数类型
  21. for 一种循环结构的引导词
  22. goto 保留关键字,没有具体含义
  23. if 条件语句的引导词
  24. implements 表明一个类实现了给定的接口
  25. import 表明要访问指定的类或包
  26. instanceof 用来测试一个对象是否是指定类型的实例对象
  27. int 基本数据类型之一,整数类型
  28. interface 接口
  29. long 基本数据类型之一,长整数类型
  30. native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
  31. new 用来创建新实例对象
  32. package 包
  33. private 一种访问控制方式:私用模式
  34. protected 一种访问控制方式:保护模式
  35. public 一种访问控制方式:共用模式
  36. return 从成员方法中返回数据
  37. short 基本数据类型之一,短整数类型
  38. static 表明具有静态属性
  39. strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
  40. super 表明当前对象的父类型的引用或者父类型的构造方法
  41. switch 分支语句结构的引导词
  42. synchronized 表明一段代码需要同步执行
  43. this 指向当前实例对象的引用
  44. throw 抛出一个异常
  45. throws 声明在当前定义的成员方法中所有需要抛出的异常
  46. transient 声明不用序列化的成员域
  47. try 尝试一个可能抛出异常的程序块
  48. void 声明当前成员方法没有返回值
  49. volatile 表明两个或者多个变量必须同步地发生变化
  50. while 用在循环结构中

二.标识符

1.大多数人理解的Java标志符的定义规则:

  1. 标识符由字母、数字、货币符号(¥、$)、连接符号(_)组成。
  2. 标识符的首字母可以是字母、货币符号与连接符号,但是不能为数字。
  3. 标识符不能与Java中的关键字相同。
  4. 标识符不能与Java中预定义的字面常量名称相同(如true、false、null)。

  上面的规则在大部分时候是正确的,但是要注意这里的字母不只是传统中的26个英文字母,而是Unicode字符集,Unicode字符集的取值范围是U+0000~U+10FFFF,但是不是每一个Unicode值都与一个字符相对应,这就意味着不是整个Unicode字符集都可以作为Java中的标识符。

  还有就是不能作为Java标识符首字母的字符集,也不仅仅是简单的0~9这10个数字。那么我们怎么判断一个Unicode是否可以作为Java标识符呢?

在Character中有这样两个方法可以进行判断:

public static boolean isJavaIdentifierStart(char ch);判断对应的字符是否可以作为Java的标识符的首字符

public static boolean isJavaIdentifierPart(char ch);判断对应的字符是否可以作为Java的标识符

  由于Unicode字符集的扩展,为了能够处理增补字符(U+10000~U+10FFFF),在jdk1.5中增加了两个方法,也用于此作用:

public static boolean isJavaIdentifierStart(int codePoint);判断代码点对应的字符是否可以作为Java的标识符的首字符

public static boolean isJavaIdentifierPart(int codePoint);判断代码点对应的字符是否可以作为Java的标识符

2.重新定义一下标识符的定义规则:

  1. 标识符的首字母对应的代码点必须使得Character类的isJavaIdentifierStar()方法返回值为true,后续的字符对应的代码点必须使得Character类的isJavaIdentifierPart()的返回值为true。
  2. 标识符不能与Java中的关键字相同。
  3. 标识符不能和Java中预定义的字面常量名称相同。
  4. 标识符的长度必须在系统所支持的范围内。

3.注意符号“$”的使用

  在定义Java标识符的时候,我们可以使用 ,并且可以使用它作为标识符的首字母,但是我们需要注意 ,并且可以使用它作为标识符的首字母,但是我们需要注意 ,并且可以使用它作为标识符的首字母,但是我们需要注意这个符号可以在内部类中使用,所以当我们使用$作为关键字字符时,需要考虑到这一点

public class User$Vip {
 
	public static void main(String[] args) {
		
	}
}

class User{
	class Vip{
		void print()
		{
			System.out.println("vip");
		}
	}
}

  上面这个例子就是因为类标志符中使用 ,与内部类中的 ,与内部类中的 ,与内部类中的冲突,所以编译的时候会报错,提示User.Vip类重复了。其原因是在编译为class文件的时候,会存在两个User$Vip.class,所以会报错。

4.标识符的最大长度

  在Java语言规范中,对于Java标志符的长度是没有限制的,但是在Java虚拟机规范中,标识符是有长度限制的。在class文件中,代表标识符的常量字符串存储在CONSTANT_Utf8_info表中,这个表用了两个字节的来表示字符串的长度。所以最大表示65535.

想要了解更多信息,请关注(终南有客)公众号
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL初学者笔记是一份由一位学习数据库的初学者总结的详细笔记,其包含了MySQL的基础知识和高级应用。这份笔记包括了MySQL的高级查询方法和存储过程的编写,旨在帮助初学者更好地理解和应用MySQL数据库。这份笔记还提供了一些具体的代码示例,可以帮助开发者进行实践和应用。 在MySQL初学者笔记,还涵盖了一些基本的语法规则和约束类型,比如非空、主键、唯一等。例如,在创建表时,可以在字段名和类型后面追加约束类型来设置列级约束。其,支持的约束类型有:默认、非空、主键、唯一(除了外键都支持)。 这份笔记可以作为MySQL初学者的学习参考,特别是对于想要掌握MySQL的高级查询方法和利用存储过程编写复杂程序逻辑的学习者来说,是非常有用的。可以根据自己的需要,重点学习存储过程部分,并通过实践来提高自己的开发效率。 希望这份MySQL初学者笔记能为初学者们提供帮助,并带领他们更深入地学习和应用MySQL数据库。如果有任何不对的地方,也欢迎指正和纠正。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [很详细的mysql数据库笔记.pdf](https://download.csdn.net/download/dafeidouzi/12043750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MySQL学习笔记2-高级查询与存储.md](https://download.csdn.net/download/weixin_52057528/88240999)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [尚硅谷MySQL基础学习笔记](https://blog.csdn.net/qq_21579045/article/details/98111827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值