`
wang_hao_long
  • 浏览: 1884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

编写高质量代码 读书笔记

 
阅读更多

第一章

 

<!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> 1   3元操作符的结果,会自动转型到最大类型:int转成long,long转成float


2 序列化:

   (1) 反序列化时,构造函数不会执行

   (2) final变量,反序列化时会重新计算其值,

        但是这个"值"指的是基本类型,数组,字符串
        以下情况不会被重新赋值
          (1 通过构造函数为final变量赋值
          (2 通过方法返回值为final变量赋值
          (3 final修饰的属性不是基本类型

第二章

     1 用偶判断,不用奇判断
<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->
  
      (1) i%2 == 1 ? "奇数" : "偶数" :这样判断有问题,-1居然变成偶数了
   
           所以需要这样判断:i%2 == 0 ? "偶数" : "奇数"

第三章

      1 Java的静态方法不能复写,但是可以隐藏:
<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->
         因为静态方法属于前期绑定,复写属于后期绑定,所以静态方法不能复习


       2 内部类可以实现Java的多重继承:在外部类继承了其他类的前提下,内部类还可以继承一个类

第四章 字符串

    1 编码问题
<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->

   即使一个Java源文件是用gbk编码,生成的.class文件也会变成使用utf-8格式编码的unicode字符集.因为Java设计之初就采用unicode字符集设计class文件


第五章 :数组和集合

<!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> 1 Arrays.copyOf():这个是浅拷贝

2 subList()方法

     1 subList方法返回的是原列表的视图,所以对视图的修改动作直接作用于原列表

     2 生产子列表后,不可以再对原列表执行写操作,否则会抛异常

          (1) 生成的子列表只有一个时,可以对子列表执行写操作.
   
          (2) 生成的子列表多于一个时,则不可以对任何一个子列表执行写操作

3  Arrays.asList():此方法产生的list对象不可更改,比如对此对象进行add操作会抛异常
  
          (1)基本类型数组不能作为asList方法的输入参数,这会导致逻辑混乱.建议采用基本类型的包装类型作为输入参数

                       原因:asList方法的入参是一个泛型变长数组,而基本类型不能泛型化,但是Java中数组是一个对象,可以泛化.这就导致整个入参作为变长数组的一个元素.


                       方法asList(T …a)
                       
                       int[] ints = new int[]{1,2,3};
                       List list = Arrays.asList(ints);// list的size=1. T表示int[]

                       Integer integers = new Integer[]{1,2,3};
                       List list = Arrays.asList(integers);//list的size=3,T表示Integer

4 Collections.shuffle():打乱列表顺序:用于抽奖程序等
                                              

5 hashMap中的元素,如果hashcode相同,那么查找效率就和arraylist类似,退化成了链表查找



第6章 枚举和注解


<!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> 1 switch语句判断枚举类型,与以下代码相同: switch(enumEg.ordinal()),所以如果枚举值为null,就会抛空指针异常

2 枚举的valueOf():返回和枚举项中字面值与参数相等的枚举项,如果传入的参数不匹配,抛无效参数异常

一个枚举项的个数最好不要超过64个

  原因:因为Java会把一个不多于64个枚举项的枚举映射到了一个long类型的变量上,如果大于64个,则按照64个为一组拆分成多组,每组都映射到一个long类型上


 
分享到:
评论

相关推荐

    代码质量-读书笔记

    【代码质量】这一主题在IT行业中占据着至关重要的地位,它是软件开发过程中的基石,直接影响到项目的稳定性和可维护性。...通过不断学习和实践,我们可以编写出更高质量的代码,为软件项目奠定坚实的基础。

    (读书笔记)《编写好质量代码》--马伟

    综上所述,《编写好质量代码》这本书中的建议涵盖了从数据类型的选择到程序控制语句的优化等多个方面,对于希望编写高质量C程序的开发者来说非常实用。遵循这些建议可以帮助开发者编写出更加安全、健壮、高效的代码...

    编写高质量代码改善C#程序的建议读书笔记

    编写高质量代码改善C#程序的建议读书笔记 本文旨在总结编写高质量代码的建议,旨在帮助C#程序员编写高效、可读性强的代码。在本文中,我们将讨论三个重要的建议,包括正确操作字符串拼接、使用默认转型方法和区别...

    高质量java程序设计读书笔记

    本文将基于"高质量java程序设计读书笔记"的主题,深入探讨Java编程中的异常处理以及面向对象编程(OOP)中的继承和组合设计原则。 首先,异常处理是Java程序设计中的重要组成部分,它提供了一种结构化的方式来处理...

    编写高质量代码 Web前端开发修炼之道 书摘精要

    《编写高质量代码 Web前端开发修炼之道》是一本深入探讨前端开发实践与技巧的书籍,旨在提升Web应用的质量和可维护性。书中强调了遵循Web标准的重要性,这些标准主要分为结构、样式和行为三大部分。 结构标准包括...

    《Python编程金典》读书笔记

    ### 《Python编程金典》读书笔记知识点梳理 #### 1. 绪论 绪论部分通常会介绍Python的历史背景、特点以及为什么选择Python作为学习和使用的编程语言。此外,还会涉及Python与其他编程语言的区别,以及它在不同领域...

    JAVA模式的读书笔记

    总的来说,Java模式是提升代码质量的有效工具,它们可以帮助我们编写更加优雅、可维护的代码,并为软件的长期发展打下坚实的基础。在实际开发中,应结合具体问题灵活运用这些模式,以达到最优的设计效果。

    编写高质量IOS的方法

    编写高质量iOS与OS X代码的52个有效的方法][1],这本书非常好,看了很多遍,今天把自己看的,感觉很常用的知识记录下来,就当做是一个简单的读书笔记好了。

    素贞之91建议——进阶读书笔记.pdf

    Python进阶的读书笔记,实际是编写高质量代码:改善Python的九十一个建议; 对于入门后的童鞋来说,读完此书又可以上升一个层次了!

    《C#与.NET3.0高级程序设计》读书笔记

    读书笔记主要涵盖了以下几个方面的内容: 1. C#语言特性:包括匿名方法、lambda表达式、闭包、委托、事件、泛型、LINQ(Language Integrated Query)等。这些特性是C# 3.0及更高版本的核心,极大地增强了代码的...

    python59条代码编辑建议读书笔记

    《Effective Python:编写高质量Python代码的59个有效方法》是Brett Slatkin所著的一本关于Python编程实践的书籍。这本书通过59条具体的建议,深入浅出地介绍了如何提升Python代码的质量和效率。以下是对这59条建议...

    代码整洁之道-----读书笔记

    这本书主要探讨了如何通过编写整洁、易于理解的代码来提高软件的质量和可维护性,尤其针对Java编程语言提供了许多实用的指导原则和技巧。在阅读这本书的过程中,我们可以学到很多关于代码整洁性的关键概念。 1. **...

    Swing读书笔记

    ### Swing读书笔记:深入理解Swing的包与版面结构 #### Swing的常用包解析 Swing作为Java中用于创建图形用户界面(GUI)的主要库,提供了丰富的组件和功能,其核心包及其作用如下: 1. **`javax.swing`**: - 这是...

    PSP读书笔记1

    【PSP读书笔记1】 PSP,全称Personal Software Process,是面向个人的软件开发过程,旨在提升软件工程师的效率和软件质量。该框架通过结构化的方法指导工程师进行自我管理和改进,涵盖了时间管理、计划制定、缺陷...

    C++primer读书笔记

    ### C++ Primer 读书笔记概览 在深入探讨C++ Primer各...通过对本书的深入学习,不仅可以掌握C++的基本和高级特性,还能学会如何编写高质量、可维护的代码。无论是初学者还是有经验的开发者,都能从这本书中获益匪浅。

    Effective C++ Roy T 读书笔记。

    书中的每一项都包含丰富的讨论和示例,指导读者如何写出更高质量的C++代码。通过对这些知识点的掌握,开发者能够提升C++编程的技能,写出更加健壮和高效的程序。阅读Roy T的读书笔记可以帮助我们回顾和巩固这些关键...

    统计学与R读书笔记(第四版)

    2. **数据可视化**:使用ggplot2库创建高质量的图表,包括散点图、直方图、箱线图等,并学习自定义图形元素。 3. **数据导入导出**:如何读取和写入各种格式的数据文件,如CSV、Excel或数据库文件。 4. **R包的...

Global site tag (gtag.js) - Google Analytics