阿里巴巴编程规范-(五) 日期时间
(五) 日期时间
【强制】日期格式化时,传入 pattern 中表示年份统一使用小写的 y。说明:日期格式化时,yyyy 表示当天所在的年,而大写的 YYYY 代表是 week in which year(JDK7 之后引入的概念),意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,返回的 YYYY就是下一年。正例:表示日期和时间的格式如下所示:new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”)
【强制】在日期格式中分清楚大写的 M 和小写的 m,大写的 H 和小写的 h 分别指代的意义。说明:日期格式中的这两对字母表意如下:1) 表示月份是大写的 M;2) 表示分钟则是小写的 m;3) 24 小时制的是大写的H;4) 12 小时制的则是小写的 h。
【强制】获取当前毫秒数:System.currentTimeMillis(); 而不是 new Date().getTime()。说明:如果想获取更加精确的纳秒级时间值,使用 System.nanoTime 的方式。在 JDK8 中,针对统计时间等场景,推荐使用 I ...
阿里巴巴编程规范-(四) OOP 规约
(四) OOP 规约
【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。
【强制】所有的覆写方法,必须加@Override 注解。说明:getObject()与 get0bject()的问题。一个是字母的 O,一个是数字的 0,加@Override 可以准确判断是否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。
【强制】相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。说明:可变参数必须放置在参数列表的最后。(提倡同学们尽量不用可变参数编程)正例:public List listUsers(String type, Long… ids) {…}
【强制】外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生影响。接口过时必须加@Deprecated 注解,并清晰地说明采用的新接口或者新服务是什么。
【强制】不能使用过时的类或方法。说明:java.net.URLDecoder 中的方法 decode(String encodeStr) ...
阿里巴巴编程规范-(三)代码格式
(三) 代码格式
【强制】 如果是大括号内为空,则简洁地写成{}即可,大括号中间无需换行和空格;如果是非空代码块则:1) 左大括号前不换行。2) 左大括号后换行。3) 右大括号前换行。4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
【强制】 左小括号和右边相邻字符之间不出现空格; 右小括号和左边相邻字符之间也不出现空格;而左大括号前需要加空格。详见第 5 条下方正例提示。反例: if (空格 a == b 空格)
【强制】 if/for/while/switch/do 等保留字与括号之间都必须加空格。
【强制】 任何二目、 三目运算符的左右两边都需要加一个空格。说明: 包括赋值运算符=、逻辑运算符&&、加减乘除符号等。
【强制】 采用 4 个空格缩进,禁止使用 tab 字符。说明:如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。 IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tabcharacter;而在 eclipse 中,必须勾选 ...
阿里巴巴编程规范-(二) 常量定义
【强制】不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。反例:(二) 常量定义//本例中同学 A 定义了缓存的 key,然后缓存提取的同学 B 使用了 Id#taobao 来提取,少了下划线,导致故障。String key = “Id#taobao_” + tradeId;cache.put(key, value);
【强制】在 long 或者Long 赋值时,数值后使用大写的 L,不能是小写的 l,小写容易跟数字混淆,造成误解。说明:Long a = 2l; 写的是数字的 21,还是Long 型的 2。
【推荐】不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。说明:大而全的常量类,杂乱无章,使用查找功能才能定位到修改的常量,不利于理解,也不利于维护。正例:缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 ConfigConsts 下。
【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。1) 跨应用共享常量:放置在二方库中,通常是 c ...
阿里巴巴编程规范-编程规约-(一) 命名风格
泰山版,首次发布错误码统一方案一、 编程规约(一) 命名风格
【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例:name / name / $name / name / name$ / name
【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。正例:ali / alibaba / taobao / cainiao/ aliyun/ youku / hangzhou 等国际通用的名称,可视同英文。反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3
【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO ...
阿里巴巴编程规范-编程规约-(一) 命名风格
最近公司也在培训编程规范,个人呢,顺道把疫情期间阿里云1分钱的羊毛机会也用了。大家感兴趣的话,可以去考一下这个。感觉编程的规范还是有必要学习一下的。毕竟别人的代码你看着顺眼,你的代码别人看着顺眼,工作起来才更加舒服。才不会被打。最近的话,就分享一下各种的编程规范了。
泰山版,首次发布错误码统一方案一、 编程规约(一) 命名风格
【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例:name / name / $name / name / name$ / name
【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。正例:ali / alibaba / taobao / cainiao/ aliyun/ youku / hangzhou 等国际通用的名称,可视同英文。反例:DaZhePromotion [ ...
redis.conf配置文件详解
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220 ...
day19_125_验证回文串
题目给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
12输入: "A man, a plan, a canal: Panama"输出: true
示例 2:
12输入: "race a car"输出: false
Related Topics
双指针
字符串
解答123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354//给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 //// 说明:本题中,我们将空字符串定义为有效的回文串。 //// 示例 1: //// 输入: "A man, a plan, a canal: Panama"//输出: true// //// 示例 2: //// 输入: "race a car"//输出: f ...
day18_14_最长公共前缀
题目编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
12输入: ["flower","flow","flight"]输出: "fl"
示例 2:
123输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
Related Topics
字符串
解答123456789101112131415161718192021class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length == 0){ return ""; } String res = st ...
day17_155_最小栈
题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) —— 将元素 x 推入栈中。
pop() —— 删除栈顶的元素。
top() —— 获取栈顶元素。
getMin() —— 检索栈中的最小元素。
示例:
12345678910111213141516输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-3,null,0,-2]解释:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.getMin(); --> 返回 -3.minSta ...