`

java编程思想阅读笔记(九)数组和容器

 
阅读更多
Java编程思想,注重的应该是思想,我怎么笔记记得就是Java语法细节呢,很多例子的设计的思想也都没有写出来,个人感觉还是缺少实际的操作实践参考和分析的缘故吧;而且本身里面很多的设计模式方面的也没有写,是不敢写,怕误了自己,慢慢体会,也算是由浅入深吧。但其实不从设计的角度来谈,毕竟还是逃脱不了纷繁复杂的细节说明。
数组,书中没有再去细细的分析,而且建议优先使用容器,因为从效率、类型、保存基本类型上看,可能只有在效率上还有些优势,但是在稍微灵活些的实现上,似乎都会有很多限制;个人觉得从其方便性和理解上(从c过来的人)可能更简单直观;数组的赋值,特别是赋以根据自己特定需要的有意义的值,不是那么直接,(也包括容器),需要用Generator类(根据自己的需要而修改产生的)解决(书上给了很好的示例)。最后就是介绍了System.arraycopy()、binarySearch()、Array.asList、CompareTo等实用方法。

深入容器:可以理解为更好的使用容器,推荐一般默认常用的容器。ArrayList、HashSet、HashMap


首先比较完整的容器图很好,可以看到我们最常用的List、Set、Queue是继承自Collection,而Map是单独出来的接口,带有Abstract开头的抽象类,方便我们自定义需要的容器,其实最常用的还是原来那张简化图足够了。先说说共性的,常考虑的
(1)容器填充:fill() addALL() 或者自定义的Generator
(2)Collection常用方法:书中有张表很详细。注意的是不包括随机访问元素的get()方法(Set是自己维护内部顺序);如clear() contains() remove() iterator()
(3)UnsupportedOperationException异常:“执行各种不同的添加和移除的方法在Collection接口中都是可选操作”,是特殊的接口定义方法,不保证调用某些方法是有意义的行为,当出现这种没有实际定义的方法是产生异常;这样的好处是防止出现接口爆炸的情况。
(4)散列(HashCode方法):可以根据需要自己覆盖原有的该方法,也可以利用Object自带的hashcode方法;应该都学过散列的冲突问题,因此可以想到散列值对应的位置存储的该是一个存放引用的列表;相应的就会理解在HashMap中为什么要弄个容量和负载因子的设置了,如果能够估计HashMap的使用量,合理的预先设置会减少再散列以及查找元素带来的性能损耗问题。
(5)同步控制:容器在①防止多个进程同时修改同一个容器②获取迭代之后(iterator),遍历完之前,的插入、删除等操作都有报错。
(6)持有引用:主要说了为垃圾回收提供了不同级别的间接提示的Java.lang.ref类库:
SoftReference(对内存敏感的高速缓存)、WeakReference(“规范映射”,同一个值只有一个存储空间)、PhantomReference(最弱,依赖于ReferenceQueue);
具体的List、Set、Map的使用,下面的表更有用。


而对于具体的选择在前面的持有对象里面说的也有,书中在这里使用了个性能测试框架。
分享到:
评论

相关推荐

    Java编程思想-笔记.docx

    Java编程思想笔记 本笔记涵盖了Java编程思想的多个方面,包括访问权限控制、封装、继承、多态、接口、内部类、持有对象等。 访问权限控制 访问权限控制是为了把变动的事物与保持不变的事物区分开来。Java中有四种...

    Java编程思想学习笔记

    在讨论Java编程思想学习笔记时,首先需要了解的是Java语言的平台无关性,而这一特性正是通过Java虚拟机(JVM)得以实现的。JVM作为Java程序设计的关键组成部分,对于Java开发人员来说是必须掌握的基础知识。在该学习...

    Java编程思想笔记(全)

    ### Java编程思想笔记知识点概述 #### 第 1 章 对象导论 在这一章节中,主要介绍...以上内容概括了《Java编程思想笔记》中的核心知识点,涵盖了Java语言的基础到高级特性,适合初学者和有一定经验的开发者参考学习。

    计算机Java核心编程笔记

    Java面向对象编程是基于对象的编程思想。它包括类、对象、继承、多态、封装等概念。 十二、Java常用转义字符 Java常用转义字符包括\ddd、\uxxxx、‘、”、\\、r、\n、\b、\t等。 十三、Java文档注释 Java文档...

    java学习笔记JDK6.0课件和代码

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。JDK(Java Development Kit)是Java...随着Java技术的不断发展,虽然JDK 6.0已经过时,但它仍然是初学者理解和掌握Java编程思想的宝贵资源。

    java笔试题算法-Thinking-in-Java:《ThinkingInjava》-Note《Java编程思想》笔记作者:[美]Bruce

    《Java编程思想》笔记 看了两个月,书中有穿插着一些设计模式应用到实际的例子中。这本书不会一味地讲语法,更多的是会讲一些Java的设计思想,比如他不会一开始就教你怎么用泛型,而是先介绍为什么会出现泛型,没有...

    JAVA经典教材笔记

    - Java作为一种广泛使用的编程语言,其学习路径包括掌握基本语法、理解面向对象编程思想、熟悉标准库使用等。 - **JAVA发展概述** - Java的发展历程:从1995年由Sun Microsystems公司发布以来,Java经历了多次重大...

    java私塾学习笔记整理

    ### Java私塾学习笔记整理 #### 第一章:Java入门 ...以上内容涵盖了Java基础知识的重要方面,从语言基础到高级特性,以及常见的开发技术和工具,帮助读者全面了解Java编程的基础知识和技术要点。

    Java学习的详细心得笔记

    Java学习的详细心得笔记是一份宝贵的资源,特别适合那些刚刚踏...在阅读"Java笔记"的过程中,结合实际的编程练习,可以逐步提升Java编程技能。这份笔记将是一个很好的辅助工具,帮助初学者从基础到深入地探索Java世界。

    超全面java笔记1

    - 面向对象:Java基于面向对象的编程思想,支持类、接口和继承等特性。 - 平台无关性:Java代码编译成字节码,由JVM在任何支持Java的平台上解释执行。 - 安全性:Java具有严格的内存管理和访问控制,防止恶意代码的...

    张龙 java se课程笔记

    【Java SE课程笔记详解】 Java SE(Standard Edition)是Java平台的核心版本,它为开发桌面应用、服务器端...通过深入学习和实践,你可以扎实掌握Java编程基础,为进一步深入学习Java EE或Android开发打下坚实的基础。

    韩顺平-循序渐进学Java零基础完整笔记

    这份笔记通过丰富的实例和详尽的解释,帮助读者从零开始,逐步建立起对Java编程的全面认识,是学习Java编程的理想资源。学习过程中,读者将不仅掌握Java语言本身,还能理解面向对象编程思想,为后续深入学习Java Web...

    java学习笔记整理

    为了开发软件,需要选择合适的计算机语言、开发工具以及编程思想。计算机语言主要分为三类:机器语言、汇编语言和高级语言。高级语言是面向用户的编程语言,它更接近人类自然语言,易于理解和编写。常见的高级语言有...

    CoreJava学习笔记

    ### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...

    2023年java基础总结大全笔记.doc

    Java是一种广泛使用的编程语言,以其跨平台性和强大的功能而闻名。以下是对《2023年Java基础总结大全笔记》的详细...以上就是对Java基础的详尽解析,涵盖了从基本概念到高级特性的多个方面,是学习Java编程的良好起点。

    JAVA学习笔记(全面)

    - **面向对象**:Java完全基于面向对象的编程思想构建,所有的Java程序都是通过类和对象来实现的。 - **健壮性**:Java拥有强大的错误检测能力,并且通过自动垃圾回收机制减少了内存泄漏等问题。 - **多线程**:Java...

    最全的java学习笔记(必看).pdf

    2. **面向对象**:Java基于面向对象编程思想,支持类、接口和继承等概念。 3. **健壮性**:Java有严格的类型检查,避免了许多潜在的运行时错误。 4. **安全性**:Java设计时考虑了安全性,通过沙箱机制防止恶意代码...

    java基础知识笔记总结

    - 面向对象是一种编程思想,它将现实世界中的事物抽象为对象,通过对象的交互来完成程序设计。 2. **类** - 类是具有相同特征的对象的抽象,是创建对象的模板。 3. **构造方法** - 构造方法用于初始化对象,其...

    [Java学习笔记doc]-javase基本知识

    **Java学习笔记——Java SE基本知识** Java是一种广泛使用的面向对象的编程语言,以其跨平台、安全性高和可移植...通过这份学习笔记,你可以逐步掌握Java编程的基础,并为进阶到Java EE或Android开发打下坚实的基础。

Global site tag (gtag.js) - Google Analytics