• Java入门者:如何写出美观的Java代码?


    前言

    在帮助各位同学远程解决代码问题的时候,发现很多同学的代码都有一个共同问题:代码书写格式不规范。虽然代码书写规范对程序性能及运行并不影响,但影响着别人对你编程习惯或能力的第一印象,同时也会给阅读者带来不一样的的观感。

    我刚接触编程的时候,代码开发的格式也是随心所欲,这里加一个空格,那里加一个空格。后来在朋友的提醒下,就开始按照<阿里巴巴Java开发手册>来严格要求自己的。工作中也逐渐发现,你更乐意去阅读按照别人规范格式编写的代码。这里先写一个demo进行对比。

    入门时写的代码:

      int[] a={1,2,3,4,5};
      int sum=0;
      for(int i=0;i<a.length;i++){
          sum+=a[i];
      }
    

    现在写的代码:

      int[] a = {1, 2, 3, 4, 5};
      int sum = 0;
      for (int i = 0; i < a.length; i++) {
          sum += a[i];
      }
    

    可能根据上面寥寥几行的代码,你可能觉得两种代码格式并无不同。但是在项目中,往往一个Java源文件里面的代码就有成百上千行。如果用第一种写法,代码看起来就会很紧凑,读起来特别累,所以在实际工作中,基本上都是使用第二种写法。

    接下来就盘点一下最基本的代码书写格式规范。

    代码格式

    空格

    1.if/for/while/switch/do等保留字与括号之间都必须加空格

    2.任何赋值运算符=、逻辑运算符&&、加减乘除符号、三目运算符的左右两边都要加空格

    3.else和前后的大括号都加空格

    4.括号(和右边相邻字符之间没有空格; )和左边相邻字符之间也不出现空格;而左大括号{前需要加空格

    5.注释的双斜线与注释内容之间有且仅有一个空格

    6.方法参数在定义和传入时,多个参数逗号后边必须加空格

    以上综合样例:

    // abc三个参数逗号后面加空格,方法)和{之间有空格
    public static void test(int a, int b, int c) {
        c = 0;
        if (true) {
            a = b + c;
        } else {
            a = a == 1 ? a : 1;
        }
    }
    

    7.采用4个空格缩进,禁止使用tab字符

    如果使用 tab 缩进,必须设置 1 个 tab 为 4 个空格。IDEA 设置 tab 为 4 个空格时,请勿勾选 Use tab character

    8.在进行类型强制转换时,右括号与强制转换值之间不需要任何空格隔开

     long first = 1000000000000L; 
     int second = (int)first + 2;
    

    换行

    1.单行字符数限制不超过 120 个,超出需要换行

    2.如果是大括号内为空,则简洁地写成{}即可,大括号中间无需换行和空格

    口诀:左大括号前不换行,左大括号后换行;右大括号前换行,右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行

    3.不同逻辑、不同语义、不同业务的代码之间插入一个空行分隔开来以提升可读性

    命名规范

    1.代码中的命名均不能以下划线或美元符号开始和结束

    2.方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格。

    3.任何命名禁止使用中英文混合或者中文拼音

    4.在long或者Long赋值时,数值后使用大写的L,不能是小写的

    错误示范:

    // 1 应该是name,中间可以用_和$
    int _name = 1;
    int name$ = 2;
    // 2 正确的应该是countSumAll
    int countsumall = 0;
    // 3 不应该用拼音,应该用price来表示价格
    int jiage = 10;
    

    建议

    上面就是最常见的一些代码书写规范。包括Java其他方面例如集合操作等规范,这些皆在<阿里Java开发手册>中有迹可循。所以建议刚入门的小伙伴们,在刚开始学习Java编程的时候,就依照手册里的规范来要求自己,养成良好的编码习惯。

    阿里巴巴Java开发手册泰山版

    最后,希望你我共勉。



    写的都是日常工作中的亲身实践,处于自己的角度从0写到1,保证能够真正让大家看懂。

    文章会在公众号 [入门到放弃之路] 首发,期待你的关注。

    公众号

  • 相关阅读:
    Bzoj 2748: [HAOI2012]音量调节 动态规划
    Bzoj 1222: [HNOI2001]产品加工 动态规划
    Bzoj 2763: [JLOI2011]飞行路线 拆点,分层图,最短路,SPFA
    Bzoj 2718: [Violet 4]毕业旅行 && Bzoj 1143: [CTSC2008]祭祀river 传递闭包,二分图匹配,匈牙利,bitset
    Bzoj 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛 传递闭包,bitset
    Hdu 5036-Explosion 传递闭包,bitset,期望/概率
    Bzoj 1703: [Usaco2007 Mar]Ranking the Cows 奶牛排名 传递闭包,bitset
    Bzoj 1696: [Usaco2007 Feb]Building A New Barn新牛舍 中位数,数学
    最小公倍数(LCM)
    最大公约数(GCD)
  • 原文地址:https://www.cnblogs.com/seven0007/p/coding.html
Copyright © 2020-2023  润新知