美文网首页
Java工程师成神之路学习笔记(一)

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

作者: ashin_l | 来源:发表于2020-05-07 16:55 被阅读0次

    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工程师成神之路学习笔记(一)

          本文链接:https://www.haomeiwen.com/subject/livoghtx.html