【JavaSE专栏4】关键字、标识符和命名规范

news2024/9/22 13:39:42

作者主页:Designer 小郑
作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。热爱技术、专注业务、开放合作、乐于分享,期待你我共同成长!
主打方向:Vue、SpringBoot、微信小程序

目录

    • 一、Java 关键字
    • 二、Java 标识符
    • 三、命名规范
      • 3.1 基本命名规范
      • 3.2 高级命名规范
        • 3.2.1 类名
        • 3.2.2 方法名
        • 3.2.3 变量名
        • 3.2.4 常量名
        • 3.2.5 包命名
        • 3.2.6 泛型命名
    • 4 课时小结


一、Java 关键字

Java 中的关键字,指的是有特殊含义的小写字符串,不能被定义为变量名称。

关键字是 Java 语言事先写好的特殊标识符,开发人员不能去重定义。

接下来介绍 Java 中的 50 个关键词,在 Java 实战开发中,最常用的关键词已加粗展示。


abstract:表明类或者成员方法具有抽象属性

assert:断言,用来进行程序调试

boolean:基本数据类型之一,声明布尔类型的关键字

break:提前跳出一个块

byte:基本数据类型之一,字节类型

case:用在switch语句之中,表示其中的一个分支

catch:用在异常处理中,用来捕捉异常

char:基本数据类型之一,字符类型

class:声明一个类

const:保留关键字,没有具体含义

continue:回到一个块的开始处

default:默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现

do:用在do-while循环结构中

double:基本数据类型之一,双精度浮点数类型

else:用在条件语句中,表明当条件不成立时的分支

enum:枚举

extends:表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口

final:用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量

finally:用于处理异常情况,用来声明一个基本肯定会被执行到的语句块

float:基本数据类型之一,单精度浮点数类型

for:一种循环结构的引导词

goto:保留关键字,没有具体含义

if:条件语句的引导词

implements:表明一个类实现了给定的接口

import:表明要访问指定的类或包

instanceof:用来测试一个对象是否是指定类型的实例对象

int:基本数据类型之一,整数类型

interface:接口

long:基本数据类型之一,长整数类型

native:用来声明一个方法是由与计算机相关的语言实现的

new:用来创建新实例对象

package:包

private:一种访问控制方式:私用模式

protected:一种访问控制方式:保护模式

public:一种访问控制方式:共用模式

return:从成员方法中返回数据

short:基本数据类型之一,短整数类型

static:表明具有静态属性

strictfp:用来声明单精度或双精度浮点数表达式,遵循IEEE 754算术规范

super:表明当前对象的父类型的引用或者父类型的构造方法

switch:分支语句结构的引导词

synchronized:表明一段代码需要同步执行

this:指向当前实例对象的引用

throw:抛出一个异常

throws:声明在当前定义的成员方法中所有需要抛出的异常

transient:声明不用序列化的成员域

try:尝试一个可能抛出异常的程序块

void:声明当前成员方法没有返回值

volatile:表明两个或者多个变量必须同步地发生变化

while:用在循环结构中

另外还有3个特殊直接量:true、false、null,也不能作为标识符哦!

在这里插入图片描述


二、Java 标识符

在 Java 程序中,标识符指我们自己定义的内容

比如类、方法的名字和变量的名字。

标识符的命名规则如下:

  1. 由字母、数字、下划线_和美元符号$组成,如 test1_
  2. 不能以数字开头,如 0aaa6988 这样的标识符是不允许的。
  3. 大小写敏感,如 a668A668 这样的两个标识符是不同的。
  4. 长度没有限制,你可以命名 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 的标识符。
  5. 不能使用 Java 中的关键字或保留字,如 intdouble 这样的标识符是不允许的。

在这里插入图片描述


三、命名规范

3.1 基本命名规范

基本命名规范是所有 Java 开发者必须要遵守的,否则代码无法完成编译。

  • 类名和接口名:每个单词首字母需要大写。
  • 包名:多个单词组成的所有小写字母。
  • 变量名,函数名:多个单词组成的时候,除了第一个单词外,其他的单子首字母大写(驼峰)。
  • 常量名:多个单词组成,所有单词全部大写,单词之间用下划线分隔开。

3.2 高级命名规范

高级命名规范是为了提高代码的可读性,根据开发经验指定的,不遵守也可以完成代码编译,但还是建议遵守。

3.2.1 类名

  1. 通常是见名知意的名词:如 UserTeacher
  2. 首字母大写。
  3. 多个单词时,采用驼峰命名法:如 AlgorithmDevelopment(算法开发)。
  4. 不建议使用中文缩写来命名,如 SuanFaKaiFa(算法开发),是不建议的。
  5. 测试类一般以 Test 结尾,实现类一般以 Impl 结尾,异常类一般以 Exception 结尾

3.2.2 方法名

  1. 通常是见名知意的名词,驼峰命名,首字符小写。
  2. 返回数据的方法一般加 get 前缀,如 getUserListgetMyData
  3. 设置的方法一般加对应的动词作为前缀,如 addUserupdateUser
  4. 查询的方法一般加 selectfind 作为前缀。
  5. 带有条件的方法一般使用 by 前缀命名。
  6. 带有判断性质的方法一般使用 is 前缀命名。
  7. 带有测试性质的方法一般使用 test 前缀命名。

3.2.3 变量名

  1. 通常是见名知意的名词,首字符小写,驼峰命名,如 userNameuserMobile
  2. 不建议使用中文缩写来命名,不建议使用下划线作为连接。

3.2.4 常量名

  1. 通常是见名知意的名词,字符全部大写,如 USER_SIZEARRAY_LENGTH
  2. 多个单词之间使用“_”进行分隔,不建议使用中文缩写来命名,枚举类同理。

3.2.5 包命名

  1. 使用小写英文字母进行命名。
  2. 多层包之间用点进行分隔。
  3. 一般采用域名倒写的方式进行命名,如 cn.zwz.entity
  4. 一般控制器层使用 controller,服务层使用 service,数据链路层使用 mapper,实体类使用 entity

3.2.6 泛型命名

  • U / S 标识,通常表示任意类型。
  • ? 标识,通常表示不确定的Java类型。
  • N 标识,通常表示Number,通常表示数值类型。
  • T 标识,通常表示Type(类型),通常指类。
  • K 标识,通常表示Key(键),通常用于 Map 中。
  • V 标识,通常表示Value(值),通常用于 Map 中,与 K 成对出现。
  • X 标识,通常表示异常的类型。

4 课时小结

在本课时中学习了 Java 有哪些关键字,以及每个关键词的用途;然后学习了标识符的定义方式和命名规范,包括能通过编译的基础命名规范,和规范化的高级命名规范。在下一个课时中将讲解 Java 的数据类型和取值范围。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

k8s部署elk+filebeat。springCloud集成elk+filebeat+kafka+zipkin实现多个服务日志链路追踪聚合到es

一、目的 如今2023了,大多数javaweb架构都是springboot微服务,一个前端功能请求后台可能是多个不同的服务共同协做完成的。例如用户下单功能,js转发到后台网关gateway服务,然后到鉴权spring-sercurity服务,然后到业务…

mysql数据库管理-GTID详解

一、GTID概述 1 sql线程执行的事件也可以通过log_slave_updates系统变量来决定是否写入自己的二进制文件中,这是可以用于级联复制的场景。 GTID是MYSQL5.6新增的特性,GTID(Global Transaction Identifier)全称为全局事务标示符…

17种编程语言实现排序算法-计数排序

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort/ 覆盖语言:C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台:安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、…

力扣sql简单篇练习(五)

力扣sql简单篇练习(五) 1 游戏玩法分析 I 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 第一次登录平台的日期就代表是时间靠前的日期 # 窗口函数是Mysql8版本后才能使用 SELECT e.player_id,e.event_date first_login FROM (SELECT player_id,e…

五、python-地图可视化篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. 基础地图 2. 设置分段 1. 基础地图 from pyecharts.charts import Map # 准备地图对象 map Map() # 准备数据 data[ ("北京",99), ("上海",199), ("…

17种编程语言实现排序算法-堆排序

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort/ 覆盖语言:C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台:安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、…

Maplab 2.0发布:多传感器融合的SLAM框架,支持多机器人、语义回环检测功能

摘要 将多种传感器和深度学习集成到SLAM系统中是当前研究的重要领域。多模态是一块跳板,既可以在挑战场景下增强鲁棒性,又可以解决不同传感器配置的多机系统建图问题。Maplab 2.0提供了一个更加通用的开源平台,最初的Maplab用于创建和管理视…

5-3中央处理器-数据通路的功能和基本结构

文章目录一.功能二.基本结构三.数据流向(一)内部单总线方式1.寄存器之间的数据传送2.主存与CPU之间的数据传送3.执行算术或逻辑运算(二)专用数据通路方式一.功能 数据在功能部件之间传送的路径称为数据通路。路径上的部件称为数据…

合宙ESP32C3上手使用

概述经典款是有ch343 ttl 转usb 需要安装驱动 GPIO20/21新款使用usb 直连不需要驱动 USB GPIO18/19ESP32C3 是ESP-RISC-V CPU 是基于 RISC-V ISA 的 32 位内核,包括基本整数 (I),乘法/除法 (M) 和压缩 (C) 标准扩展。ESP-RISC-V CPU 内核具有 4 级有序标…

【蓝桥杯】简单数论1——GCDLCM

GCD 最大公约数Greatest Common Divisor(GCD):整数a和b的GCD是指能同时整除a和b的最大整数,记为gcd(a,b)。由于-a的因子和a的因子相同,因此gcd(a, b) gcd(al, |bl)。编码时只关注正整数的最大公约数。 GCD性质 (1) gcd(a, b) gcd(a, ab) …

一、python准备工作篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. python官网 2. 检查是否安装完毕 3. pycharm官网 5. phcharm更换主题 6. 新建第一个python文件 7. pycharm字体大小设置 8. 设置快捷键 设置字体大小 ​​​​​​​9. 安装中文…

Python机器学习:假设检验

方差分析这部分内容还不是很理解,在这里先做一个笔记,以后有时间再回过头来改一改。 用到的数据集→\rightarrow→Iris 什么是假设检验? 假设检验就是利用样本数据对某个事先做出的统计假设,再按照某种方法去检验,最后…

CSS样式基础内容2

目录 Emmet语法 快速格式化代码 CSS的复合选择器 后代选择器 子选择器 并集选择器 伪类选择器 链接伪类选择器 focus伪类选择器 CSS元素显示模式 块元素 行内元素 行内块元素 元素显示模式转换 案例-简洁版侧边栏 单行文字垂直居中 CSS的背景 背景图片 方位名词…

【蓝桥云课】最大公约数与最小公倍数

一、最大公约数gcd(a,b) 引例: a24,其因子有1、2、3、4、6、8、12、24 b15,其因子有1、3、5、15 最大公约数gcd(a,b)gcd(24,15)3 欧几里得辗转算法: a max(a,b); b min(a,b); while(b>0){t a%b;a b;b t; }运算过程&…

postgresql源码学习(53)—— vacuum②-lazy vacuum之heap_vacuum_rel函数

一、 table_relation_vacuum函数 1. 函数定义 前篇最后(https://blog.csdn.net/Hehuyi_In/article/details/128749517),我们提到了table_relation_vacuum函数(tableam.h文件),本篇继续学习。 如前面所说&a…

人大金仓数据库对象访问权限

数据库的表、索引、视图等,在数据库中的一切都可以称为数据库对象。 对象分为以下两类 模式(SCHEMA)对象:可视为一个表的集合,可以理解为一个存储目录,包含视图、索引、数据类型、函数和操作符等。非模式…

AcWing1229.日期问题——学习笔记

目录 题目 代码 AC结果 思路: 一、获取数据 二、验证日期合法性 三、去重 四、排序 五、主方法中调用&输出 题目 1229. 日期问题 - AcWing题库https://www.acwing.com/problem/content/description/1231/ 代码 import java.util.Scanner;public class…

XILINX FPGA OV5640 摄像头驱动(一)

影像行业是一个值得深耕的方向,废话不多说 先看输入和输出 输入是光照,输出是光照的数字信号 image area:说的是感光矩阵,CMOS图像传感器的最核心部分,接收光照产生电信号的部分。决定了图像质量的好坏 矩阵就会行列…

MyBatisPlus笔记

一、MyBatisPlus概述 MyBatisPlus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 MyBatis-Plus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成&…

leetcode1143 最长公共子序列

题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(…