前段时间阿里开源了《阿里巴巴 JAVA 开发手册》,里面详细叙述了有关编程命名、sql规约、工程规约等内容,作为一个初学者,只讨论一下-编程规约-的部分。

这几天又重新回去看了看JavaSE的部分,使用的是毕向东的系列视频,别嫌弃人家是培训机构,这个系列的课程确实讲的很好,而且经典基础的部分改动很少,是不?

一、一般的参考书上对标识符定义的要求以下几个:

阿拉伯数字0-9,不做开头;
字符a-z,大小写皆可;
符号‘_’‘$’可用,其他符号不可用,可做开头;
非关键字;

这几个要求挺好满足的,很容易注意到,也很容易记住,但是这还不够,下面是几条我特别赞同的。

(1)Java里禁止使用那两个符号_ 、作为开头。(所以这里我有些费解)

(2)包名、类名、方法名、常量名、变量名,这几个点很好理解。

包名采用三段式命名,默认全部小写

【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。

类名,首字母大写,并且遵循驼峰形式

【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外: (领域模型的相关命名) DO / BO / DTO / VO 等。

方法名、常量名、变量名(成员,局部),首字母小写,驼峰形式

【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。

有几点不理解的:

1关于不能使用下划线和美元符号作为变量或者方法开头的规则,为什么要这样用呢,记得初学的时候明确写着可以用,而且javascript和python都在大量使用这类命名方式。

2关于数组的命名方法,‘7. 【强制】中括号是数组类型的一部分,数组定义如下: String[] args;反例: 使用 String args[]的方式来定义。’,这两种类型的却别大吗?先留下一个坑,以后学静了再来填上。


这份文档的内容很多,对很多内容进行了限定,初拿到这份文档的时候,感觉真是‘繁文缛节’,后来随着学习的深入,意识到这些内容的价值不仅仅是一本关于命名规范的手册,还是对整个团队协作的大改进。

我们都知道Java是强类型语言,本身就制定了很多规范,正式这些规范造就了Java,现在回想那些动态语言,很多地方让人费解,在此留坑,日后再来填上。

JavaSE二次学习之标识符和编程命名相关的内容的更多相关文章

  1. 孙鑫VC学习笔记:多线程编程

    孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified ...

  2. 201871010126 王亚涛《面向对象程序设计(Java)》第十二周学习总结

      内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/ ...

  3. 201871020225-牟星源《面向对象程序设计(java)》第十二周学习总结

    201871020225-牟星源<面向对象程序设计(java)>第十二周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  4. 毕业设计 之 二 PHP学习笔记(一)

    毕业设计 之 二 PHP学习笔记(一) 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 一.环境搭建 1.XAMPP下载安装 XAMPP是PHP.MySQL ...

  5. (十二) 一起学 Unix 环境高级编程 (APUE) 之 进程间通信(IPC)

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  6. 学习《Python核心编程》做一下知识点提要,方便复习(一)

    学习<Python核心编程>做一下知识点提要,方便复习. 计算机语言的本质是什么? a-z.A-Z.符号.数字等等组合成符合语法的字符串.供编译器.解释器翻译. 字母组合后产生各种变化拿p ...

  7. Python 2.7 学习笔记 面向对象的编程

    python是一种面向对象的语言.本文介绍如何用python进行面向对象的编程. 首先我们说下对象和类,类是一种类型的定义,对象是类的实例. 一.内置对象类型(内置类) 其实我们前面已经大量用到了对象 ...

  8. WCF学习笔记之事务编程

    WCF学习笔记之事务编程 一:WCF事务设置 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元: WCF通过System.ServiceModel.TransactionFlowA ...

  9. 201521123061 《Java程序设计》第十二周学习总结

    201521123061 <Java程序设计>第十二周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对 ...

随机推荐

  1. tensorflow softmax应用

    ---恢复内容开始--- 1.softmax函数 2.tensorflow实现例子 #!/usr/bin/env python # -*- coding: utf-8 -*- import tenso ...

  2. Python判断文件是否存在的三种方法

    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...

  3. TypeScript--变量及类型的那些事儿

    变量(类型)声明 格式:关键字  变量名称:类型=值 (强类型)     /   关键字  变量名称=值 例子: Array数组声明   Tuple元组类型 声明一个包含多类型的数组: Enum枚举类 ...

  4. Objective-C 使用核心动画CAAnimation实现动画

    先来看看效果吧 整个核心动画就不多做介绍了,随便一搜就能有很多很详细的解释,主要使用以下四种 CABasicAnimation //经典动画 CAKeyframeAnimation //关键帧动画 C ...

  5. ubuntu14.04下编译安装ambari-2.4.2.0

    ubuntu14.04下编译安装ambari-2.4.2.0 编译前的准备工作 准备工作有: 系统参数 系统依赖(编译环境) 离线安装包 java环境 maven环境 Nodejs环境 git环境 a ...

  6. HDU1049

    Problem Description An inch worm is at the bottom of a well n inches deep. It has enough energy to c ...

  7. ORACLE - 用户和角色的权限管理

    在ORACLE中,创建用户后需要授权才能使用. 一.用户管理 1. 用户和角色信息查询 --查询所有用户 SQL> select * from dba_users; --经授予的用户或角色的系统 ...

  8. JavaScript关于js垃圾回收

    js中会自动回收那些我们不使用的变量 一般回收算法用的是一个回收器, 这个回收器周期性的遍历程序运行中的所有变量, 并且给这些变量所引用的值做上一个标记, 如果被引用的值是一个对象或是一个数组, 那么 ...

  9. iOS底层学习-KVC使用实践以及实现原理

    简介 KVC(Key-value coding)键值编码,顾名思义.额,简单来说,是可以通过对象属性名称(Key)直接给属性值(value)编码(coding)"编码"可以理解为& ...

  10. MySql学习笔记(四)

    MYSQL如何查看系统帮助: 1.查看官方API文档: http://dev.mysql.com/doc/ 2.通过Mysql中的help命令 比如:help create database MYSQ ...