编写代码的一些小细节,主要是性能方面的注意吧

时间:2021-11-23 02:26:40
1.字符串的拼接  ,  在编写代码时   为了方便 使用 +号去 拼接字符串,  会创建多余的对象,  应该使用StringBuffer 或 StringBuilder 2. 基本类型和封装类型:  基本类型 的运行效率要远远高 过 封装类型  ---  因为 封装类型在运算的时候 是要 拆包 成 基本类型的  运算完成还要 封包  ----  比较影响效率 -- 在没有特殊原因尽量使用基本类型。 3.静态方法要比抽象方法的运行效率高, 还可以避免只是要使用一个类的方法,并不会访问这个类的字段。而去创建一个没有必要的对象。 4.对类的常量,使用static final ,  可以使所有的常量在dex文件的初始化器的进行初始化,就避免了  在使用时采用字段搜索的方式。
    /**      *   这里还是扯一下蛋,装个小13       *    /     普通的常量 在jvm第一次加载class文件的时候,回去调用一个 <clinit>的方法 去对普通的常量赋值。     而被final 修饰的常量 是不会去调用 <clinit>方法去赋值的  ,  原因就在于  final 的特殊性。

    大家一般会觉得  final 和 static 没有什么区别  ,一个是只是赋值一次, 一个可以多次赋值。我也怎么觉得,后来神经病发了,就发现:
    static 作用于成员变量 表示 保存了一份副本。 注意这个副本。     final 作用于成员变量 表示 变量不可变。 
    我们都知道一件事, 副本是由于 替换值使用。     final 代表  没有副本。  就不会 发生替换值的问题。 也就不会在初始化赋值。  这里 使用的是  初始化赋值。

    这就扯到另一个问题了,final 不可变的是什么?          当含有final属性的类被加载进内存并且被实例化的时候,就会为这个final属性分配内存,同时必须对该属性进行初始化,之后不可变。也就是说如果是基本类型的,那么它的值不能再改变;如果是对象,则引用不可变,而对象本身还是可以改变的。 --- 《java编程思想》

    也就是static final 修饰的 常量  相当于  “123”;的概念。
     这样jvm  就不会采用字段搜索的方式去,初始化了。  而会采用相对轻量级的常量方式。

    忘了说 static 修饰的成员变量,的确是静态的  ,不过我们好像 很容易就忽略了 ,他还是变量的问题 ,是变量就一定会在类加载的时候,调用<clinit>方法去初始化赋值的。
    常量直接在 jvm加载class文件的时候,初始化完成了。               感觉不会有人看的懂,我写这些鬼。。。。
    5.对使用的容器 的数据结构进行了解 ,  根据其数据结构的优缺点选择有效的容器实现 数据操作。     6.在 for的()中 ,尽量不要调用方法,可以提升效率。          《java编程思想》 一本看起有许多意思的书,可以看看。不知道写什么了,拜拜。                                                                                                                                                                                                                                                                         ----- EndingWar

    结尾附上一首诗,来激励自己,细细去体会学习的快乐:     Seven times I have despised my soul——Kahlil Gibran
第一次,当它本可进取时,却故作谦卑;第二次,当它在空虚时,用爱欲来填充;第三次,在困难和容易之间,它选择了容易;第四次,它犯了错,却借由别人也会犯错来宽慰自己;第五次,它*软弱,却把它认为是生命的坚韧;第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。