java开发中准则怎么写_Java开发中通用的方法和准则20条
1. 不要在常量和变量中出现易混淆的字母
包名全小写、类名首字母全大写、常量全部大写并下划线分割、变量采用驼峰命名等,这些是最基本的Java编码规范。
public class TestDemo {
public static void main(String[] args) {
long i = 1l;
System.out.println("i的两倍是:" + (i+i)); //2
}
}
字母 "l" 作为长整型标志时,务必大写!
2. 不要让常量变成变量
public class TestDemo {
public static void main(String[] args) {
System.out.println("这次常量值是:" + Const.RAND_CONST); // 每次运行值不一样
}
}
interface Const {
public static final int RAND_CONST = new Random().nextInt();
}
务必让常量的值在运行期保持不变。
3. 三元操作符的类型必须一致
public class TestDemo {
public static void main(String[] args) {
int i = 80;
String s1 = String.valueOf(i < 100 ? 90 : 100);
String s2 = String.valueOf(i < 100 ? 90 : 100.0);
System.out.println(s1 + " " + s2); // 90 90.0
System.out.println("两者是否相等:" + s1.equals(s2)); // false
}
}
保证三元操作符中的两个操作数类型一致,即可减少诸多可能错误的发生。
4. 避免带有变长参数的方法重载
public class TestDemo {
public static void main(String[] args) {
Client client = new Client();
// 499元的货物,75折 == 374.25
client.calPrice(49900, 75); // 简单折扣的价格:374.25
}
}
class Client{
public void calPrice(int price, int discount) {
float knockdownPrice = price * discount / 100.0F;
System.out.println("简单折扣的价格:" + formateCurrency(knockdownPrice));
}
public void calPrice(int price, int... discounts) {
float knockdownPrice = price;
for (int i : discounts) {
knockdownPrice = knockdownPrice * i / 100;
}
System.out.println("复杂折扣的价格:" + formateCurrency(knockdownPrice));
}
// 格式化货币形式
private String formateCurrency(float price) {
return NumberFormat.getCurrencyInstance().format(price/100);
}
}
避免带有变长参数的方法重载,以免陷入某些伤脑筋的小陷阱里。
5. 别让 null 值和空值威胁到变长方法
public class TestDemo {
public static void main(String[] args) {
TestDemo t = new TestDemo();
String[] ss = null;
t.m1("china", ss); // 此处可以编译过
t.m1("aaa", 0);
t.m1("china", "people");
t.m1("china", null); // 此处编译不过,为何?
}
public void m1(String s, Integer... is) {
System.out.println("111");
}
public void m1(String s, String... strs) {
System.out.println("222");
}
}
null值对于可变长参数来说,需要确保让编译器知道其类型,否则会有编译报错。
6. 重写变长方法也循规蹈矩
public class TestDemo {
public static void main(String[] args) {
Base b = new Sub();
b.fun(100, 50);
Sub sub = new Sub();
sub.fun(100, 50); // 报错!!!
}
}
class Base {
void fun(int p, int... d) {
}
}
class Sub extends Base {
void fun(int p, int[] d) {
}
}
重写的方法参数与父类相同,不仅仅是类型、数量,还需要包括显示形式。
7. 警惕自增的陷阱
public class TestDemo {
public static void main(String[] args) {
int count = 0;
for (int i = 0; i < 10; i++) {
count = count++;
}
System.out.println("count=" + count); // 0
}
}
后++的操作,赋值时,会先取值,后运算++。因此避免同时++时赋值的操作。
8. 不要让旧语法困扰你
public class TestDemo {
public static void main(String[] args) {
int f = 200;
saveDefault:save(f); // 编译不报错,输出 200
}
static void saveDefault() { }
static void save(int fee) {
System.out.println(fee);
}
}
可读性优先,旧的语法纵然不报错,也得让它随风去吧...
未完待续...
java开发中准则怎么写_Java开发中通用的方法和准则20条相关推荐
- 编写高质量代码:改善Java程序的151个建议 (第1章 Java开发中通用的方法和准则)
第1章 Java开发中通用的方法和准则 The reasonable man adapts himself to the world;the unreasonable one persists in ...
- 来了超火爆的Java游戏羊了个羊_java开发游戏项目
<羊了个羊>是一款网络上的卡通背景消除闯关游戏,游戏利用各种道具和提示来消除每一个关卡当中的障碍和陷阱. 游戏规则 羊了个羊在游戏下方共有7个槽位,玩家只要把3个相同方块点到槽位中就会消除 ...
- 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议1~5)...
The reasonable man adapts himself to the world; The unreasonable one persists in trying ...
- 01-第一章 Java开发中通用的方法和准则
建议1:不用在常量和变量中出现易混淆的字母 包括名全小写,类名首字母全大写,常量全部大写并用下划线分割,变量采用驼峰命名法(Camel Case)命名等. 例如: package com.compan ...
- java代码优化的方法和准则_编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)...
建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它 ...
- 转载--编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)...
阅读目录 建议16:易变业务使用脚本语言编写 建议17:慎用动态编译 建议18:避免instanceof非预期结果 建议19:断言绝对不是鸡肋 建议20:不要只替换一个类 回到顶部 建议16:易变业务 ...
- 转载----编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议1~5)...
阅读目录 建议1:不要在常量和变量中出现易混淆的字母 建议2:莫让常量蜕变成变量 建议3:三元操作符的类型务必一致 建议4:避免带有变长参数的方法重载 建议5:别让null值和空值威胁到变长方法 ...
- java开发中遇到的问题_java开发中遇到的问题及解决方法(持续更新)
摘自 http://blog.csdn.net/pony12/article/details/38456261 工作中,以C/C++开发为主,难免与其他服务和Web进行交换,Java开发必不可少,又不 ...
- 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)...
建议6:覆写变长方法也循规蹈矩 在JAVA中,子类覆写父类的中的方法很常见,这样做既可以修正bug,也可以提供扩展的业务功能支持,同时还符合开闭原则(Open-Closed Principle). 符 ...
最新文章
- 力扣每日一题——独一无二出现的次数
- Android.mk 配置参数
- Java设计模式(十三):代理设计模式
- 笔记-信息化与系统集成技术-信息资源管理
- IPHONE 64位和32位
- Oracle DBA之配置静态监听(listener registered statically)
- stm32怎么调用for循环内部的变量_循环中的异步amp;amp;循环中的闭包
- eclipse不进入断点_Eclipse 调试中不支持运行到断点问题
- jquery响应式内容滑动插件bxSlider
- 【报告分享】新基建专题报告:5g和数据中心的投资机会分析.pdf(附下载链接)...
- 2018ACM-ICPC南京赛区网络赛: B. The writing on the wall
- centos系统安全设置
- 蚂蚁金服CTO程立:金融级分布式交易的技术路径
- Spotlight – Recommend Node.js Projects For January
- excel线性拟合的斜率_Excel 应用SLOPE函数计算线性回归线的斜率
- 【Linux驱动开发】串口
- 树莓派 串口如何使用 以及树莓派引脚对照表
- C 语言编码规范(MISRA-C-:2004)
- 昆腾通过集成新的LTO-8磁带扩大在存储效率领域的领导地位
- c语言生日快乐音乐程序,89S51演奏生日快乐的歌曲c程序
热门文章
- LeetCode之Next Greater Element I
- Linux怎么查询全部容器时间,linuxea:如何单单修改docker容器的系统时间
- python里split_python中split()的用法
- 快速掌握MATLAB应用,从这一步开始
- 计算机如何实现共享接入,局域网内电脑实现共享设置方法
- 触发键盘_雷蛇这款光轴机械键盘开箱评测,光速触发,颜值爆表
- axure 组件_技巧分享 | Axure后台组件制作的全过程
- pythonlive2d_Unity-Live2D资源载入
- 树莓派能直接运行python程序_树莓派怎么运行python程序
- 绘制矩形php,PHP_php绘制一个矩形的方法,本文实例讲述了php绘制一个矩 - phpStudy...