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条相关推荐

  1. 编写高质量代码:改善Java程序的151个建议 (第1章 Java开发中通用的方法和准则)

    第1章 Java开发中通用的方法和准则 The reasonable man adapts himself to the world;the unreasonable one persists in ...

  2. 来了超火爆的Java游戏羊了个羊_java开发游戏项目

    <羊了个羊>是一款网络上的卡通背景消除闯关游戏,游戏利用各种道具和提示来消除每一个关卡当中的障碍和陷阱. 游戏规则 羊了个羊在游戏下方共有7个槽位,玩家只要把3个相同方块点到槽位中就会消除 ...

  3. 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议1~5)...

                 The reasonable man adapts himself to the world; The unreasonable one persists in trying ...

  4. 01-第一章 Java开发中通用的方法和准则

    建议1:不用在常量和变量中出现易混淆的字母 包括名全小写,类名首字母全大写,常量全部大写并用下划线分割,变量采用驼峰命名法(Camel Case)命名等. 例如: package com.compan ...

  5. java代码优化的方法和准则_编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)...

    建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它 ...

  6. 转载--编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)...

    阅读目录 建议16:易变业务使用脚本语言编写 建议17:慎用动态编译 建议18:避免instanceof非预期结果 建议19:断言绝对不是鸡肋 建议20:不要只替换一个类 回到顶部 建议16:易变业务 ...

  7. 转载----编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议1~5)...

    阅读目录 建议1:不要在常量和变量中出现易混淆的字母 建议2:莫让常量蜕变成变量 建议3:三元操作符的类型务必一致 建议4:避免带有变长参数的方法重载 建议5:别让null值和空值威胁到变长方法    ...

  8. java开发中遇到的问题_java开发中遇到的问题及解决方法(持续更新)

    摘自 http://blog.csdn.net/pony12/article/details/38456261 工作中,以C/C++开发为主,难免与其他服务和Web进行交换,Java开发必不可少,又不 ...

  9. 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)...

    建议6:覆写变长方法也循规蹈矩 在JAVA中,子类覆写父类的中的方法很常见,这样做既可以修正bug,也可以提供扩展的业务功能支持,同时还符合开闭原则(Open-Closed Principle). 符 ...

最新文章

  1. 力扣每日一题——独一无二出现的次数
  2. Android.mk 配置参数
  3. Java设计模式(十三):代理设计模式
  4. 笔记-信息化与系统集成技术-信息资源管理
  5. IPHONE 64位和32位
  6. Oracle DBA之配置静态监听(listener registered statically)
  7. stm32怎么调用for循环内部的变量_循环中的异步amp;amp;循环中的闭包
  8. eclipse不进入断点_Eclipse 调试中不支持运行到断点问题
  9. jquery响应式内容滑动插件bxSlider
  10. 【报告分享】新基建专题报告:5g和数据中心的投资机会分析.pdf(附下载链接)...
  11. 2018ACM-ICPC南京赛区网络赛: B. The writing on the wall
  12. centos系统安全设置
  13. 蚂蚁金服CTO程立:金融级分布式交易的技术路径
  14. Spotlight – Recommend Node.js Projects For January
  15. excel线性拟合的斜率_Excel 应用SLOPE函数计算线性回归线的斜率
  16. 【Linux驱动开发】串口
  17. 树莓派 串口如何使用 以及树莓派引脚对照表
  18. C 语言编码规范(MISRA-C-:2004)
  19. 昆腾通过集成新的LTO-8磁带扩大在存储效率领域的领导地位
  20. c语言生日快乐音乐程序,89S51演奏生日快乐的歌曲c程序

热门文章

  1. LeetCode之Next Greater Element I
  2. Linux怎么查询全部容器时间,linuxea:如何单单修改docker容器的系统时间
  3. python里split_python中split()的用法
  4. 快速掌握MATLAB应用,从这一步开始
  5. 计算机如何实现共享接入,局域网内电脑实现共享设置方法
  6. 触发键盘_雷蛇这款光轴机械键盘开箱评测,光速触发,颜值爆表
  7. axure 组件_技巧分享 | Axure后台组件制作的全过程
  8. pythonlive2d_Unity-Live2D资源载入
  9. 树莓派能直接运行python程序_树莓派怎么运行python程序
  10. 绘制矩形php,PHP_php绘制一个矩形的方法,本文实例讲述了php绘制一个矩 - phpStudy...