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编程的时候,就依照手册里的规范来要求自己,养成良好的编码习惯。

最后,希望你我共勉。
写的都是日常工作中的亲身实践,处于自己的角度从0写到1,保证能够真正让大家看懂。
文章会在公众号 [入门到放弃之路] 首发,期待你的关注。

Java入门者:如何写出美观的Java代码?的更多相关文章
- JAVA语言之怎样写出高性能的Java代码?
本文主要向大家介绍了JAVA语言之怎样写出高性能的 Java 代码?通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 在这篇文章中,我们将讨论几个有助于提升Java应用程序性能的方法.我 ...
- 【原创】怎样才能写出优雅的 Java 代码?这篇文章告诉你答案!
本文已经收录自 JavaGuide (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. 本文比较简短,基本就是推荐一些对于写好代码非常有用的文章或者 ...
- 如何用java写出无副作用的代码
搞java的同学们可能对无副作用这个概念比较陌生,这是函数式编程中的一个概念,无副作用的意思就是: 一个函数(java里是方法)的多次调用中,只要输入参数的值相同,输出结果的值也必然相同,并且在这个函 ...
- 请阐述调用Activity有哪几种方法,并写出相关的Java代码
请阐述调用Activity有哪几种方法,并写出相关的Java代码. 答案:可以采用两种方式调用Activity:显示调用和隐式调用.显示调用直接指定了Activity,代码如下: Intent int ...
- 如何写出健壮的Java代码
近来在公司写代码,写出的代码发现BUG很多,为了实现一个功能,代码改了又改,影响了工单的效率,也影响个人绩效,因此从网上找了些关于写健壮代码的文章看了看,再加上自己的一些经验总结. 所谓健壮的代码是指 ...
- 面试刷题28:如何写出安全的java代码?
对jdk,jvm,java应用程序的攻击多种多样?那么从java程序员的角度,如何写出安全的代码呢? 我是李福春,我在准备面试,今天的题目是:如何写出安全的java代码? 答:这个需要从功能设计到实现 ...
- 如何写出没有BUG的代码
1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室里使用 Mark II 和 Mark III 计算机进行研究工作.她的团队跟踪到 Mark II 上的一个错误,操作人 ...
- 如何写出没有 bug 的代码?
来源:www.cnblogs.com/sherrywasp/p/9262877.html 1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室里使用 Mark II 和 ...
- 《数据结构与算法之美》 <05>链表(下):如何轻松写出正确的链表代码?
想要写好链表代码并不是容易的事儿,尤其是那些复杂的链表操作,比如链表反转.有序链表合并等,写的时候非常容易出错.从我上百场面试的经验来看,能把“链表反转”这几行代码写对的人不足 10%. 为什么链表代 ...
随机推荐
- js上 十二、函数初步-1
11-1.引入(认识函数) 引入: 说起函数,其实我们并不陌生,在初中数学中我们就接触过函数:例如我们所学的 y = 2X+1 ; 这是一个二元一次方程,也是我们数字中的函数: 当我们每次输入 ...
- matplotlib的学习8-scatter散点图
import matplotlib.pyplot as plt import numpy as np n = 1024 # data size #生成1024个呈标准正太分布的二维数组(平均数为0,方 ...
- metinfo小于v6.2.0版本通杀SQL盲注漏洞分析
0x01 此漏洞是由于未将decode解码后的数据过滤,而直接带入SQL语句中,从而导致SQL盲注漏洞. 0x02 漏洞分析:此处复现为metinfo6.1.3版本,漏洞最初产生为:/app/syst ...
- 百度实习生,以修仙者的角度聊聊怎么学MySQL,不来看看你的修为如何吗?
目录 因为我个人比较喜欢看修仙类的小说,所以本文的主体部分借用修仙者的修为等级,将学习旅程划分成:练气.筑基.结丹.元婴.化神.飞升六个段位,你可以看下你大概在哪个段位上哦! 本文目录: 我为什么要写 ...
- python的常用内建模块与常用第三方模块
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 一.常用内置模块1.datetimePython 提供了一个 time 和 calendar 模块可 ...
- Excel-VLOOKUP函数组合应用④
问题场景 查找匹配并返回多列数据,例如:将某个部门所涉及的相关列的数据从[全员数据源]中整理出来,并按照一定顺序,然后发送给各部门的负责人. 场景 从[全员数据源]中共23列数据,整理出[测试部门人员 ...
- 使用js方法将table表格中指定列指定行中相同内容的单元格进行合并操作。
前言 使用js方法对html中的table表格进行单元格的行列合并操作. 网上执行此操作的实例方法有很多,但根据实际业务的区别,大多不适用. 所以在网上各位大神写的方法的基础上进行了部分修改以适合自己 ...
- ubuntu20部署php-swoole开发环境
第1步:安装依赖 add-apt-repository ppa:ondrej/php apt install php-dev 第2步:编译安卓swoole wget https://codeload. ...
- redis错误解决
第一次运行redis-server的时候闪退 win+R运行cmd打开命令行 进入redis根目录 输入 redis-server.exe redis.windows.conf 查看运行状态 此时如果 ...
- Net Core(Net5) 部署到不同操作系统遇到问题的解决方法
Net Core(Net5) 部署到不同操作系统的解决方法 目录 Net Core(Net5) 部署到不同操作系统的解决方法 1 系统版本升级补丁 1.1应用程序部署时VC无法安装,导致应用程序缺少配 ...