zoukankan      html  css  js  c++  java
  • 《Effective Java》学习笔记之一

    《代码整洁之道》读到11章开始步入我不熟悉的架构等部分,因为还没有过实际应用,暂时停止。开始学习另一本《Effective Java》。
    1.
    首先是构造器,当对象是固定的,不要频繁创建,比如redis配置,log4j的配置或者项目中的constant类内对象的配置,调用对应的静态工厂类或者自己创建一个静态工厂对象来达到初始化的效果。当对象属性比较多或复杂时,又不是没次都需要初始化所有属性,可以用Builder模式,这样既避免了写多个不同数量参数的构造器繁琐,也可以避免用JavaBean导致对象的不稳定(尤其是线程安全方面)。同样,builder模式的初始化也简洁明了。
    2.
    还有字符串的赋值,和stringBuffer的机制一样,不要不断的new新对象再赋值,可以直接赋值“XXX”,这样后续再用到“XXX”也只是一个对象,用StringBuffer来完成字符串的合并。对于不用的对象可以置null,不要再最频繁的循环里new对象等,也不要让变量的作用域超过了它的使用范围,导致生存周期加长。
    3.建立了新的自定义对象(model),要记得重写equal,hashcode,CompareTo,Iterable这些方法,最好也重写下toString,但是尽量不要去重写clone。而前两个重写(equla,hashcode),虽然不是必须的,但常常是一个好的习惯,可以避免程序运行时发生不可预测的bug,而且这种bug很难定位,编译是没有问题的。
    4.尽量使用for each
    5.慎重使用static,不然内存开销会很大。

  • 相关阅读:
    纯C分割 字符串 devC++版本 vs各种奇怪的问题,
    C的字符串操作 split
    MyArray框架搭建与实现
    三目运算符(C++)
    ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    sqlServer not in 分页
    web 移动端开发手机查看效果
    webpack 安装babel处理ES6语法
    webpack 的环境搭建
    web 服务器添加数据到 SQL server
  • 原文地址:https://www.cnblogs.com/zhangdebin/p/5567909.html
Copyright © 2011-2022 走看看