zoukankan      html  css  js  c++  java
  • [Effective Java 读书笔记] 第8章 通用程序设计

    本章主要讲了以下几条基本的JAVA编程原则:

    1.将局部变量的作用域控制在最小,在使用时才定义

    2.for-each优于for循环

        有三个例外(1,2点主旨就是,for each只能用于读取,不能用于修改):

         1. 如果要删除集合中的一个元素,需要显示的使用迭代器,以便调用迭代器iterator的remove方法(也不能使用集合的remove在循环中删除);不能直接在for each里删除:

            List<String> ll = new ArrayList<String>();
            ll.add("11");
            ll.add("11");
            ll.add("12");
            ll.add("13");
            ll.add("14");
            ll.add("15");
            for(String e :ll){
                if(e.equals("13")){
                    ll.remove(e);                
                }
            }
            System.out.println(ll);
    
    
    Exception in thread "main" java.util.ConcurrentModificationException
        at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
        at java.util.ArrayList$Itr.next(Unknown Source)
        at MainTestJava.main(MainTestJava.java:21)

         2. 如果要修改集合中的元素值,需要迭代器,以便设定元素值

         3. 平行迭代,如果需要并行的遍历多个集合,就需要显示的控制爹地阿奇或者索引变量,以便所有迭代器或者索引变量都可以得到同步前移,

    3.基本类型优于装箱基本类型;基本类型更简单,快速,

         a. 基本类型和装箱类型混合使用, 装基本类型都会被拆箱

         b. 当作为集合中的元素 键和值时,必须使用装箱类型

    4.如果使用其他类型更适合,避免使用String

    5.字符串连接操作符 +效率低,使用StringBuilder来替代String进行StringBuilder的append操作

    6.使用接口而不是类来引用对象。这样程序会更加的灵活

    7.反射是一种功能强大的机制,对于特定的复杂系统编程任务(工具类)是必须的,但是也有一些缺点:

        a.反射三十了编译时类型检查的好处

        b.执行反射访问所需要的代码非常笨拙和冗长

        c.性能松狮

  • 相关阅读:
    安装nginx
    查看Linux内核
    Python学习总结11:获取当前运行类名和函数名
    Python学习总结10:获取shell输出结果
    Python学习总结9:目录操作方法汇总
    Python学习总结8:文件模式及操作方法汇总
    Python学习总结7:随机字符串和随机数
    Python学习总结6:字符串格式化操作及方法总结
    Python学习总结5:数据类型及转换
    Python学习总结4:字符串常量与操作汇总
  • 原文地址:https://www.cnblogs.com/jiangz222/p/4941106.html
Copyright © 2011-2022 走看看