目录
java的关键字
java有53个关键字,true,false,null也是关键字,关键字都是小写
关键字 | 含义 |
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 | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
new | 用来创建新实例对象 |
package | 包 |
private | 一种访问控制方式:私用模式 |
protected | 一种访问控制方式:保护模式 |
public | 一种访问控制方式:共用模式 |
return | 从成员方法中返回数据 |
short | 基本数据类型之一,短整数类型 |
static | 表明具有静态属性 |
strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 |
super | 表明当前对象的父类型的引用或者父类型的构造方法 |
switch | 分支语句结构的引导词 |
synchronized | 表明一段代码需要同步执行 |
this | 指向当前实例对象的引用 |
throw | 抛出一个异常 |
throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
transient | 声明不用序列化的成员域 |
try | 尝试一个可能抛出异常的程序块 |
void | 声明当前成员方法没有返回值 |
volatile | 表明两个或者多个变量必须同步地发生变化 |
while | 用在循环结构中 |
标识符
在java中可以自定义的名称(在工作中命令需要注意,每个公司和部门都可能会有自己的命名规范,如果在工作中需要按照对应的命名法则,如果没有规范,在行内尽量优选驼峰命名法)
使用前注意事项:
1、由于Java面向对象编程的特性, 在命名时应尽量选择名词
2、驼峰命名法(Camel-Case): 当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,首字母以小写开头,每个单词首字母大写(第一个单词除外)。
如:myFirstName
一 包名的书写规范 (Package) 推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性。包名全部为小写字母,且具有实际的区分意义。
1.1 一般要求 1、选择有意义的名字,能快速地传达该类的用途。
2、所有包的命名必须采用小写英文字母。
1.2 实际应用 应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页面控制action类)。
1、包名的前几个为固定名称, 如果是网站的话,采用网站的域名的反写,如果域名还没有确定的话,采用公司固定的几个名称。如:net.vschool
2、在包名的接下来一个单词为模块的名称。如:用户模块,包名为net.vschool.user
3、关于模块的访问操作,采用分层形式,一般分为:
Dao层操作:一般定义在net.vschool.xxx.dao 中,其中xxx为模块名称。
Service层操作:一般定义在net.vschool.xxx.servie中。
web层操作:一般定义在 net.vschool.xxx.action中。
如下关于用户模块的例子:
net.vschool.user
net.vschool.user.dao
net.vschool.user.action
net.vschool.user.service
二 类名的书写规范 (Class) 类名必须使用名词,如果一个类名内含多个单词,那么各个单词第一个字母大写,后续字母小写,起伏呈驼峰状,人称驼峰式命名。给类名命名时,必须保证准确、简洁且容易理解。尽量使用完整单词,避免使用缩写词(除了大家公认的)
2.1 类的命名 2.1.1 一般要求 1、选择有意义的名字,能快速地传达该类的用途。
2、参照java驼峰命名法,类名的首字母必须采用大写的形式,如果类名为多词组合而成的话,那么每个词的首字母必须采用大写。如:StudentAnswer.java
3、当要区别接口类和实现类的时候,可以在类的后面加上“Impl”。
如:接口类:UserInterface.java 接口实现类:UserInterfaceImp
4、推荐实体类没有后缀名。
2.1.2 实际应用 应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页面控制action类),每一层的类的名称尽量带上该层后缀。
1、Dao层
a、接口类:采用JavaBean+Interface+Dao的形式来定义,即,实体对象+Interface+Dao。
如:用户对象接口类: UserInterfaceDao,其中xxx为模块名称。
b、实现类:采用JavaBean+Interface+Impl+Dao的形式来定义,即,实体对象
+Interface+Impl+Dao。 如:用户对象实现类:UserInterfaceImplDao
2、Service层
a、接口类:采用Xxx+Interface+Service的形式来定义,即,模块+Interface+Service。
如:用户管理接口类:UserMsgInterfaceServiec
b、实现类:采用Xxx+Interface+Impl+Service的形式来定义,即,模块+Interface+
Impl+Service。如:用户管理实现类:UserMsgInterfaceImplServiec
3、Web层(action类)
a、实现类:采用县 Xxx+Operator+Action的形式来定义,即,模块+操作+Action。如
用户模块User+删除操作Delete+Action = UserDeleteAction
2.1 变量的命名 2.2.1 普通变量 2.2.2.1 一般要求 1、选择有意义的名字,能快速地传达该变量的用途。
2、参照java驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。
2.2.2.2 实际应用 1、变量命名采用基本结构为typeVariableName,使用3字符前缀来表示数据类型。
例如,定义一个整形变量:intDocCount,其中int表明数据类型,后面为表意的英文名,每个单词首字母大写。
数据类型或对象类型 | 变量前缀 | 备注 |
byte | bye | 1、做数组用时,再加前缀-a,如字符串数组:astr, 2、自定义类型的变量可以采用本身的名称,把首字母改为小写。 3、采用名称要能代表在方法中的意义。如果员工列表:employeeList |
char | chr | |
float | flt | |
boolean | bln | |
Integer/int | int | |
short | sht | |
Long/long | lng | |
Double/double | dbl | |
string | str |
2、变量使用技巧:
a、在一段函数中不使用同一个变量表示前后意义不同的两个数值。
b、除非是在循环中,否则一般不推荐使用单个字母作为变量名,i、j、k等只作为小型循环的循环索引变量。
c、避免用Flag来命名状态变量。
d、用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。
e、如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。
2.2.2 静态变量 1、选择有意义的名字,能快速地传达该变量的用途。
2、参照java驼峰命名法,采用全部大写的形式来书写,对于采用多词合成的变量采用“_”来连接各单词。如:USER_LIST
2.3 方法的命名 2.3.1 一般要求 1、选择有意义的名字,能快速地传达该方法的用途。
2、参照java驼峰命名法,首字母以小写开头,每个单词首字母大写(第一个单词除外)。
2.3.2 实际应用 1、方法表示一种行为,它代表一种动作,最好是一个动词或者动词词组或者第一个单词为一个动词。
2、属性方法:以get/set开头,其后跟字段名称,字段名称首字母大写。如:getUserName()
3、数据层方法:只能以insert(插入),delete(删除),update(更新),select(查找),count(统计)开头,其他层方法避免以这个5个单词开头,以免造成误解。
4、服务层方法,根据方法的行为命名,只描述方法的意义,而不采用方法的目的命名。比如系统的添加新用户,用户可以前台注册,也可以管理员后台添加,方法会被重用,所以最好不要用使用register,采用add会更好写。避免使用与web层相关的方法。
5、Web层方法最好是贴近web的语言,如register,login,logout等方法。
三 注释的书写规范 (Javadoc) Java除了可以采用我们常见的注释方式(//、/* */)之外,Java语言规范还定义了一种特殊的注释,也就是我们所说的Javadoc注释,以/**开头,而以*/结束, Javadoc 注释可以被自动转为在线文档,省去了单独编写程序文档的麻烦。 推荐使用。
Javadoc注释主要涉及范围:类、属性、方法。
例如:
package org.ietf.jgss;
import java.net.InetAddress;
import java.util.Arrays;
/**
* 该类的整体性描述。
*
* @author 作者
* @version 1.0, 05/22/07
* @since 1.0
*/
public class ChannelBinding {
/**
* 对该变量的备注信息
*/
private InetAddress initiator;
/**
* 对该变量的备注信息
*/
private InetAddress acceptor;
/**
* 对该变量的备注信息
*/
private byte[] appData;
/**
* 对该类的构造函数的备注信息。
*
* @param initAddr 对参数的备注。
* @param acceptAddr对参数的备注。
* @param appData对参数的备注。
*/
public ChannelBinding(InetAddress initAddr, InetAddress acceptAddr,
byte[] appData) {
initiator = initAddr;
acceptor = acceptAddr;
if (appData != null) {
this.appData = new byte[appData.length];
java.lang.System.arraycopy(appData, 0, this.appData, 0,
appData.length);
}
}
/**
* 对该类的具体一函数的备注信息
*
* @param obj 参数的备注信息
* @return 返回值的备注信息
*/
public boolean equals(Object obj) {
if (this == obj)
return true;
if (! (obj instanceof ChannelBinding))
return false;
ChannelBinding cb = (ChannelBinding) obj;
return Arrays.equals(appData, cb.appData);
}
}
四 其他书写规范
4.1 Jsp页面名称的书写规范 1.全部采用小写的英文字符和”_ ”组成。
2.整体采用模块名+操作的形式。如:user_view.jsp
3.Jsp页面尽可能与action的意思对应,如UserListAction 对应者user_list.jsp
接口:
使用驼峰式命名。除了用名词外,还可以用形容词命名(体现其功能特性)
方法:
规定用动词命名,适合用驼峰式命名,但与类名的最大区别在于,首字母必须小写
变量:
规定为名词,其他同“方法”命名方式一样。变量名非常关键,应含有具体意义且易于理解,一般不允许使用单个字母做变量名。除非一些临时性变量,像在循环中使用到的计数器等。在使用单个字母做变量名时,一般I、J、K用来命名整形变量。
常量:
规定全用大写字母表示,如果名字必须用多个单词来表示,那么各单词间用“-“分隔。常量要求必须意义明确,能表达出常量的含义。
java注释的三种方式
①单行注释:使用 // ,其注释内容从//开始到本行结束,比较常用,
快捷键为:Ctrl + / 或者 Ctrl + Shift + C
取消注释:Ctrl + / 或者 Ctrl + Shift + C
②多行注释:配套使用 /* 和 */ ,可以将一段比较长的注释括起来,注意不能嵌套使用,
快捷键为:Ctrl + Shift + /
取消注释:Ctrl + Shift + \
③文档注释:这种注释方法以 /** 开始,以 */ 结束,
快捷键:Alt + Shift + J
Java文档注释详细说明
JDK包含的Javadoc工具可以有源文件生成一个HTLM文档,这种方式可以将代码与注释保存在一个地方。
1、注释的插入
①javadoc实用程序(utility)从以下特性抽取信息:包、共有类与接口、公有的和受保护的构造器及方法、公有的和受保护的域;
②应该为上面几部分编写注释,并且注释应该放置在所描述特性的前面;
③文档注释为 /** 开始,并以 */ 结束;
④每个/** ... */文档注释在标记之后紧跟着自由格式文本,标记由@开始,如@author或@param;
⑤在自由格式文本中,可以使用HTML修饰符,例如,用于强调的<em>...</em>、用于着重强调的<strong>...</strong>以及包含图像的<img ...>等,
但是不能使用<h1>或<hr>,因为它们会与文档的格式产生冲突;
⑥在自由格式文本中,若要键入等宽代码,需使用{@code ...},而不是<code>...</code>,这样避免了对代码中<字符的转义。
注:如采文档中有到其他文件的链接, 例如, 图像文件(用户界面的组件的图表或图像等), 就应该将这些文件放到子目录 doc-files中。
javadoc实用程序将从源目录拷贝这些目录及其中的文件到文档目录中。
在链接中需要使用doc-files目录 , 例如:<img src= “doc-files/uml.png” alt= “ UMLdiagram ” >。
2、类注释
类注释必须放在import i再句之后, 类定义之前。
3、方法注释
每一个方法注释必须放在所描述的方法之前。除了通用标记之外,还可以使用下面的标记:
①@param变量描述
这个标记将对当前方法的“param”(参数)部分添加一个条目。这个描述可以占据多行,并可以使用HTML标记。一个方法的所有@param标记必须放在一起。
②@return描述
这个标记将对当前方法添加“return”(返回)部分。这个描述可以跨越多行,并可以使用HTML标记。
③@throws类描述
这个标记将添加一个注释, 用于表示这个方法有可能抛出异常。
4、域注释
只需要对公有域(通常指的是静态常量)。例如:
1 /** 2 * The "Hearts" card suit 3 */ 4 public static final int HEARTS = 1;
5、通用注释
@author 姓名 | 作者条目 |
@version 文本 | 版本条目 |
@since 文本 | 始于条目 |
@deprecated 文本 | |
@see 引用 |