Java 中合法但是不推荐使用的几种书写

“程序是写给人来读的,只是偶尔让机器执行一下。”
在 Java 中,存在很多满足语法规定但是可读性或者可维护性差的代码书写情况,在实际的开发过程中应该尽力避免。毕竟代码并不是一劳永逸的事情,以后还是要维护的。
试着总结了几点常见的合法但不推荐使用的情况,一时间也想不到太多,后续再逐步完善吧,希望大家持续关注。

main 方法的书写

对于 Java 程序的开发者来说,可能没有比 main 更熟悉的方法了,但往往越是常用的东西,越容易被忽略。

public static viod main(String[] args) { }

从接触 Java 的第一天起,老师就会说,main 方法是固定的写法,照抄就可以,不能改,实际上,是这样的吗?

static public void main(String[] args) { }

将 static 和 public 互换位置可以通过编译并实现 main 的作用(程序入口)吗?经过实际运行,是可以的。但是我们习惯将权限修饰符放在最前面。

public static final void main(String[] args) { }

在原有的基础上,新增一个 final 修饰,经过编译测试,可以实现。

折腾完修饰词,再来看参数列表,可以知道,main 的参数列表是一个元素类型为 String 的数组。既然是数组,就应该符合数组的语法规范。

public static void main(String args[]) { }

这当然是可以的,比较刺激的是,参数名可以更换吗?

public static void main(String[] arr) { }

实际上,这都是可以的。

虽然在语法上,上面的 main 方法的方法头声明都是符合 Java 语法和规范的,但是推荐使用public static void main(String[] args) { }

数组的声明

String[] arr1;
String [] arr2;
String arr3[];
String arr4 [];
String[][] arr5;
String [] [] arr6;
String arr7[][];
String arr8 [] [];
String [] arr9 [];
String []arr0[];

有没有要疯掉的感觉?可恨的是上面的书写格式都是被允许的。但是良好的书写习惯是String[] arrString[][] arr.

标识符的定义

Java 中对标识符的组成的描述为由数字、字母、下划线和美元符号组成,但是不以数字开头。因为Java采用的是Unicode编码,所以字符的含义是所有被16位Unicode编码覆盖的字符,包括中文
但是,实际的命名中应该避免出现中文字符,也不要使用美元符号。

对于避免中文字符命名的原因,有人说直观但是不专业,也有人说虽然 Java 提供了对中文的支持,但是有些框架未必。这一块我也很迷糊,但是至今,见过用汉语拼音命名的标识符,还真没见过用汉字的。

美元符号,一般是用来表示类关系的。比如有一个类Test,包含了内部类InnerClass.

public class Test {
	class InnerClass { }
}

Test.java经过编译之后会产生两个 .class文件,文件名分别是 Test.classTest$InnerClass.class.

变量定义

Java 中允许将相同数据类型的变量在同一条语句中声明,格式如下:

int a, b, c;

这样书写虽然简单,但是,为了良好的程序可读性,还是建议分别定义。

一个类中定义多个静态代码块或者非静态代码块

public class Test {
	static {
		System.out.println("static 1");
	}
	static {
	System.out.println("static 2");
 	}
 	{
  		System.out.println("3");
 	}
 	{
  	System.out.println("4");
 	}
}

是的,代码块是顺序执行的,但是为什么不只定义一个相同类型的代码块,就像下面这样呢?

public class Test {
	static {
		System.out.println("static 1");
		System.out.println("static 2");
	}
	{
		System.out.println("3");
		System.out.println("4");
	}
}	

省略if等结构体的花括号

这是一个大家都十分熟悉的问题了,而且在使用编辑工具能够自动补全括号的时候,大部分人还是会顺手写一个大括号的,这样能使得代码结构更加清晰。

switch 结构体中的 default 出现的位置

如果你一直是将 default 写在最后的话,应该一直保持下去。如果在别人的代码里面发现 default 被写在任意的位置了,不要大惊小怪,帮他写到最后。

switch (key) {
	case 1:
		break;
	default:
		break;
	case 2:
		break;
}		

相比这样的写法,个人认为还是应该强制将 default 写在最后,这也符合一般人的逻辑思维。否则代码读的好好的,突然跳出来一个 default,然后竟然还有下文,思路很受影响。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值