Java工程师成神之路学习笔记(一)

To Be Top Javaer - Java工程师成神之路原文链接
点击以下各个标题均跳转至原文

类变量、成员变量和局部变量

Java中共有三种变量,分别是类变量成员变量局部变量。他们分别存放在JVM的方法区堆内存栈内存中。

    /**
     * @author Hollis
     */
    public class Variables {

        /**
         * 类变量
         */
        private static int a;

        /**
         * 成员变量
         */
        private int b;

        /**
         * 局部变量
         * @param c
         */
        public void test(int c){
            int d;
        }
    }

上面定义的三个变量中,变量a就是类变量,变量b就是成员变量,而变量c和d是局部变量。

如何正确定义接口的返回值(boolean/Boolean)类型及命名(success/Success)

class Model1  {
    private Boolean isSuccess;
    public void setSuccess(Boolean success) {
        isSuccess = success;
    }
    public Boolean isSuccess() {
        return isSuccess;
    }
 }

class Model2 {
    private Boolean success;
    public Boolean isSuccess() {
        return success;
    }
    public void setSuccess(Boolean success) {
        this.success = success;
    }
}

class Model3 {
    private boolean isSuccess;
    public boolean isSuccess() {
        return isSuccess;
    }
    public void setSuccess(boolean success) {
        isSuccess = success;
    }
}

class Model4 {
    private boolean success;
    public boolean isSuccess() {
        return success;
    }
    public void setSuccess(boolean success) {
        this.success = success;
    }
}

以上定义中推荐使用 Model2 的形式,或者 Model4 也可以。
不建议使用 isSuccess 主要考虑到 json 序列化时不同包的处理存在差异。
在定义一个布尔类型的变量,尤其是一个给外部提供的接口返回值时,要使用success来命名,阿里巴巴Java开发手册建议使用封装类来定义POJO和RPC返回值中的变量。但是这不意味着可以随意的使用null,我们还是要尽量避免出现对null的处理的。

字符串拼接的几种方式和区别

虽然字符串是不可变的,但是还是可以通过新建字符串的方式来进行字符串的拼接。
常用的字符串拼接方式有五种,分别是使用+、使用concat、使用StringBuilder、使用StringBuffer以及使用StringUtils.join。
由于字符串拼接过程中会创建新的对象,所以如果要在一个循环体中进行字符串拼接,就要考虑内存问题和效率问题。
因此,经过对比,我们发现,直接使用StringBuilder的方式是效率最高的。因为StringBuilder天生就是设计来定义可变字符串和字符串的变化操作的。
但是,还要强调的是:
1、如果不是在循环体中进行字符串拼接的话,直接使用+就好了。
2、如果在并发场景中进行字符串拼接的话,要使用StringBuffer来代替StringBuilder。

你可能感兴趣的:(Java工程师成神之路学习笔记(一))