Java编程之10个提升代码的小技巧


引言

      同为程序员,谁都希望能比别人更强,那么如何在当今这激烈的竞争环境中脱颖而出?咱们中国有句老话说得好,细节决定成败,接下来我就来给大家总结下Java中的一些小细节。


1、把字符串常量放在前面

相信大家平时使用equals()是基本都是像下面这样的写法,这样的写法没错

String text = "ppx";

if (text.equals("ppx")){
    
    
    System.out.println("成功");
}else {
    
    
    System.out.println("失败");
}

但是如果text为null就会报错NullPointerException

String text = null;

if (text.equals("ppx")){
    
    
    System.out.println("成功");
}else {
    
    
    System.out.println("失败");
}

在这里插入图片描述

但如果是下面这样的写法就不会报NullPointerException,而是直接失败

String text = null;

if ("ppx".equals(text)){
    
    
   System.out.println("成功");
}else {
    
    
   System.out.println("失败");
}

在这里插入图片描述

这样的细节在你眼中可能没什么,但是在工作中,你的代码是要交给别人,可能会有领导可拿到你的代码,他可能就会因为这样的细节从而关注你,这样的细节使我们必须所掌握的。


2、检查null和长度

不管什么时候你有一个集合、数组或者其他的,确保它存在并且不为空。
在学习前期这样的行为对你来说可能是多此一举,但对于已经工作或者做过项目的小伙伴来说,相信这样的代码对你来说不会陌生。

List list = new ArrayList();

if (list.size() > 0 && list != null) {
    
    
    
}

3、switch语句末尾总是加上default

int num = 4;

switch (num){
    
    
    case 1:
        System.out.println("值为1");
        break;
    case 2:
        System.out.println("值为2");
        break;
    default:
        System.out.println("无此值");
}

在这里插入图片描述

如果你没有写default,而刚好判断的值是你case没有的,其结果就是什么都没有,如下

在这里插入图片描述


4、字符串拼接使用 StringBuilder

一般的字符串拼接在编译期 java 会进行优化,但是在循环中字符串拼接,java 编译期无法做到优化,所以需要使用 StringBuilder 进行替换。

String str1 = "a";
String str2 = "b";
String str3 = "c";

String str = str1 + str2 + str3;  //java会进行优化
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < 3; i++) {
    
    
    //循环中java无法优化,需使用StringBuilder
    stringBuilder.append(i);
}

5、使用 String.valueOf(value) 代替 “”+value

当要把其它对象或类型转化为字符串时,使用 String.valueOf(value) 比 “”+value 的效率更高。

Integer num = 1;
String str = "" + num;

String string = String.valueOf(num);
System.out.println(str);
System.out.println(string);

6、注意 String.split(String regex)用法

字符串 String 的 split 方法,传入的分隔字符串是正则表达式!部分关键字(比如. , [] , () , |等)需要转义

String string = "aa.b.c.aa";
String[] split = string.split(".");
for (String s:split) {
    
    
    System.out.println(s);
}

在这里插入图片描述

String string = "aa.b.c.aa";
//进行转义
String[] split = string.split("\\.");
for (String s:split) {
    
    
    System.out.println(s);
}

在这里插入图片描述


7、长整型常量后添加大写 L

在使用长整型常量值时,后面需要添加 L ,必须是大写的 L ,不能是小写的 l ,小写 l 容易跟数字 1 混淆而造成误解。
在这里插入图片描述


8、尽量使用基本数据类型代替对象

String str = “hello”;

上面这种方式会创建一个“hello”字符串,而且JVM的字符缓存池还会缓存这个字符串;

String str = new String(“hello”);

此时程序除创建字符串外,str所引用的String对象底层还包含一个char数组,这个char数组依次存放了h,e,l,l,o


9、公有静态常量应该通过类访问

虽然通过类的实例访问公有静态常量是允许的,但是容易让人它误认为每个类的实例都有一个公有静态常量。所以,公有静态常量应该直接通过类访问。

public class test01 {
    
    
    public static final String STR = "ppx";
}
public class test{
    
    


    public static void main(String[] args) {
    
    
        //不推荐写法
        test01 t = new test01();
        System.out.println(t.STR);
    
        //推荐写法
        System.out.println(test01.STR);
    }
}

10、不要用 NullPointerException进行空指针捕获

空指针异常应该用代码规避(比如检测不为空),而不是用捕获异常的方式处理。

String str = null;

try {
    
    
    if (str.equals("ppx")){
    
    
        System.out.println("皮皮虾");
    }
}catch (NullPointerException e){
    
    
    e.printStackTrace();
}

在这里插入图片描述


博主会持续更新,有兴趣的小伙伴可以点赞、关注和收藏下哦,你们的支持就是我创作最大的动力!

Java学习路线目录索引

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/llllllkkkkkooooo/article/details/108428304