笔者最近帮助一些朋友应聘远程工作(一般都是一些国外的项目),国外的项目负责人一般都会要求提供github账号或者一些源代码,很多朋友在这一关就被筛选掉了,其中不乏一些我认为技术非常厉害的行业大牛,他们都研发过很多的大型项目,经验与技术实力都非常不错。那究竟是为什么呢?我经过仔细的研究,发现他们都有一个共同点,就是命名规范不太严谨。我对这些在应聘远程项目第一关就被筛选掉了的程序员做了一个问卷调查:你都知道哪些java命名规范?最终结果显示:

  • 类的首字母要大写,使用驼峰标识
  • 变量首字母小写,使用驼峰标识
  • 常量字母全部大写,下划线分隔
  • 使用英文单词,不要使用拼音

在很多的java程序员看来能做到这些,就已经是很规范的命名方式了,究竟还有哪些不足之处?笔者总结了一下java开发中的最常用的一些命名规范,如果有不足之处,还请各位朋友不吝赐教!如果您觉得本文对您有帮助,期待您能帮忙关注、转发!

一、package命名规范

软件项目的包名称应该是由您的公司的域名的倒序,再加上您的项目的名称,均使用小写字母,不能包含其他符号。可以在最后添加包的版本,如下图实例所示:


org.example.aprojectname
org.example.aprojectname.innerpkg
org.example.aprojectname.innerpkg.anotherpkg
org.example.aprojectname.innerpkg2 org.example.anotherproject
org.example.anotherproject.v2

二、Class命名规范

类名必须是一个 名词,使用驼峰命名方式,首字母应大写,例如HashMap。应该可以从类名中推断出它大概会包含什么样的函数和变量。例如:


class Student{} class ArrayList{} class HashMap{} class ComputerEngineer{}

三、Interface接口

接口名称应尽量使用 形容词。有时也可以是名词,如:ListMap。与类的命名规范一样,使用驼峰命名,首字母应大写。如下:


interface Cloneable{} interface AutoCloseable{} interface PreparedStatement{} interface Engineer{}
  • 接口通常代表一类对象的总称。形容词“会跑的”可以是一个接口名称,实现类可以是人、狗、猫。
  • 而使用名词需要具有一定的概括性,“爪子”比“猫爪”更像是一个接口的名字。

四、变量

变量尽量是简短而且有意义的名词,遵循驼峰命名,首字母小写。并且不要使用划线('_')或美元符号'$'字符。

  • 在for循环中使用的计数变量,可以是i,j,k,m和n,它们也常用于整数
  • 对于 布尔值,通常开头应该是ishas
  • 可以使用Of串联多个名词
  • 可以使用形容词修饰名词

int countOfCustomer; //Of串联 float averageInterest; //形容词修饰名词 long timeInMillisecond, daysInYear; //时间 boolean isEngineer, isCompleted, hasSubmitted; //布尔类型

五、常量

常量也是程序的重要组成部分。也要使用名词,或者形容词修饰的名词。全部字母大写,使用下划线分隔单词。


public static final float PI = 3.14; static int CREATED_ON_YEAR = 2019;

六、方法

方法名称要使用动词,并且应该从名称中可以推断出方法的功能,尽量简短。使用驼峰标志命名。通常, get 和 set 用于分别获取数据和设置数据。对于布尔值,方法名称应与与变量名称相同。


void print(Object obj); void remove(Obejct obj); Object update(); int getCountOfCustomer();//getter void setCountOfCustomer(int countOfCustomers);//setter boolean isUserAdmin(User user); //布尔类型

七、泛型

使用单个大写字母, T使用的比较广泛。E通常被用于集合元素,KV通常被用于映射关系。请勿使用多字符。


public <T> void print(T t); interface List<E>{} class HashMap<K, V> {};

期待您的关注

参与国际化项目需遵循的java命名规范的更多相关文章

  1. Java~命名规范

    下面总结以点java命名规范 虽然感觉这些规范比起C#来说有点怪,但还是应该尊重它的命名! 命名规范 项目名全部小写 包名全部小写 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写. ...

  2. 软帝学院教你java命名规范法则

    java命名规范法则大全 在我们在刚开始学习java的时候,给包.类.方法等命名的时候总是取名不规范,大多都是随便取的,对于一个专业的程序员来说.命名规范化也是必不可少的.命名规范的话能够在编码过程中 ...

  3. java编程规范之java命名规范

    想要成为一个优秀的程序员,首先要培养良好的编程习惯,为了提高代码的可读性,必须有好的命名规范. 这篇文章是小编结合网上的很多资料整理出来的,若有不当或错误的地方,欢迎大家指正 在文章开始前,为方便阅读 ...

  4. Java命名规范基础

    一.java命名规范 1.类和接口:由多个单词组成时,所有单词的首字母大写,如TestJava 2.变量名和方法(函数):由多个单词组成时,所有第一个单词的首字母小写,之后每一个单词的首字母大写,如: ...

  5. 【JAVA】笔记(1)---JVM内存图;方法重载条件;输入方法;转义字符;强制类型转换;变量分类及区别;Java命名规范;

    Java命名规范: 1.包:全部字母小写: 2.类+接口:所有单词的首字母大写: 3.变量+方法:第一个单词的首字母小写,其余单词首字母大写: 3.常量名:所有字母均大写,且用下划线" _ ...

  6. 告别编码5分钟,命名2小时!史上最全的Java命名规范参考!

    简洁清爽的代码风格应该是大多数工程师所期待的.在工作中笔者常常因为起名字而纠结,夸张点可以说是编程5分钟,命名两小时!究竟为什么命名成为了工作中的拦路虎. 每个公司都有不同的标准,目的是为了保持统一, ...

  7. 史上最全的Java命名规范[转]

    每个公司都有不同的标准,目的是为了保持统一,减少沟通成本,提升团队研发效能.所以本文中是笔者结合阿里巴巴开发规范,以及工作中的见闻针对Java领域相关命名进行整理和总结,仅供参考. 一.Java中的命 ...

  8. Java命名规范

    驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写. 每个单词的第一个字母都大写,来得到大驼峰式命名. 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名. 为避免歧 ...

  9. java命名规范和编程技巧

    一个好的java程序首先命名要规范. 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,方便维护等作用 Package 的命名 Package 的名字应该都是由一个小写 ...

随机推荐

  1. lnmp环境搭设

    安装nginx============================ 1添加nginx的rpm信息 rpm -Uvh http://nginx.org/packages/centos/7/noarc ...

  2. Python 3.8.0 正式版发布,新特性初体验

    北京时间 10 月 15 日,Python 官方发布了 3.8.0 正式版,该版本较 3.7 版本再次带来了多个非常实用的新特性. 赋值表达式 PEP 572: Assignment Expressi ...

  3. 《java编程思想》P22-P37(第二章一切都是对象)

    1.JAVA操纵的标识符实际上是对象的一个"引用";如String s;里的s是String类的引用并非对象. 2.程序运行时,有五个不同的地区可以存储数据. (1)寄存器:最快的 ...

  4. 构造函数语义学——Default Constructor篇

    构造函数语义学--Default Constructor 篇 这一章原书主要分析了:编译器关于对象构造过程的干涉,即在对象构造这个过程中,编译器到底在背后做了什么 这一章的重点在于 default c ...

  5. VPS虚拟专用服务器

    目录   0x00 VPS服务器概述 0x01 VPS工作原理 0x02 VPS用途 0x03 VPS优势 0x04 VPS特点 0x00 VPS服务器概述 VPS服务器(虚拟专用服务器)(" ...

  6. nginx::基于Nginx+nginx-rtmp-module+ffmpeg搭建rtmp、hls流媒体服务器

    待续 ffmpeg -re -i "/home/bk/hello.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 4 ...

  7. Myeclipse 反编译工具插件

    JadClipse是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高.可惜用起来不太方便.还好 找到myeclipse下的插件,叫JadClipse,安装好之后,只要双击.class文 ...

  8. vue实现跑马灯效果

    vue实现跑马灯效果为阿中哥哥应援 1.效果图 2.实现代码 <!DOCTYPE html> <html lang="en"> <head> & ...

  9. 解决Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory报错

    前几日看到鸟哥介绍的 <让你的PHP7更快之Hugepage>, 于是想试试手给服务器加上,参照格式安装好扩展,调整好配置文件,然后重启php-fpm,结果启动一直报Zend OPcach ...

  10. Eureka和zookeeper的比较

    什么是CAP? CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不 ...