博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读书笔记-容器、泛型及反射
阅读量:4961 次
发布时间:2019-06-12

本文共 1803 字,大约阅读时间需要 6 分钟。

            本文来自 ,引用必须注明出处!

        在Java中,对象的封装非常常见,今天我们可以聊下容器和泛型的问题,对对象进行更深入一点的研究。

        常见窗口有Set、Queue、Map,也称为集合类,属于Collection。ArrayList属于一个“可以自动扩充自身尺寸的数组“,LinkedList具有List接口中未包含的额外方法,而TreeMap与Map也同样。Arrays.asList方法可以将一个数组或逗号分隔的元素转换成一个List对象;Queue(FIFO)只允许一端入一端出;ArrayList和LinkedList也是根据插入顺序来保存数据的,不同之处在于某些操作的性能;Set类型中,如果TreeSet可以保存顺序,且升序,LinkedHashSet按存储顺序保存,都不允许保存重复数据。

         前边博文我们已经说过,LinkedList的增、删、改比较快,但ArrayList的查找比较快速,所以多的还是用后者。容器中有个很好用的东西,叫迭代器,主要用来遍历对象。LinkedList添加了将其作为栈、队列、双端队列使用的方法。Stack,压入弹出在保存Activity的状态时会经常用到。PriorityQueue描述最典型的队列规则,默认排序,每次弹出最优先元素。

        HashMap设计用来快速访问,而TreeMap保持”键“始终处于排序状态,LinkedHashMap保持元素插入的顺序,但也通过散列提供快速访问的能力。LinkedHashSet按插入顺序保存元素。

        异常特色,重发throw e,可以抛给上一升环境中的异常处理程序。如果try...catch...finally...try中有return,finall中也有return ,那么会先执行finally再执行try后的return。

        字符串,对一个字符串操作后就生成新的串,有新的引用和对象地址。StringBuilder与StringBuffer相比,前者从始至终都是一个对象,但后者每经一个循环便产生一个新的对象;后者实现同步,线程安全,当然开销也要大些。pritnf("Row 1: [%d %f]",1,2.0f) ,%d 代表一整数,%f表示一浮点数,当然也可以将printf换成System.out.format,说到这里要讲到URLEncoder和URLDecoder分别可以将汉字转成浏览器识别汉字,和将浏览器改变的汉字还原。正则常见:\d,数字;\w 字母 ^表示开始 $表示结束,dw大写表示非,?表示一个字符,+表示多个。

         类型信息,Java通过RTTI(Runtimer type information)和反射来识别对象类型信息,识别包含三个步骤:1、加载,classloader加载类的class文件;2、链接,验证类中字节码,解析类引用;3、初始化,执行静态数据和构造器的初始化模块。

类.class.newInstance可以初始化一个对象,instanceof用来判断对象类型.Class与java.lang.reflect使用Field、Method、Constructor分别来表示字段、方法、构造器对象。

        泛型是使用擦除实现的,List<String>和List<Integer>其实是同一个对象。超类通配符<? super MyClass> 或才<? super T>指定特定类的基类。

         数组是一种效率最高的存储和随机访问对象引用序列的方式。概念:标识符指向保存对象的地址,是引用;length表示数组大小,并不是实际保存元素的个数;数值默认值为0,布尔默认值为false;对一组数据用Arrays操作,一般采用Arrsys.toString,但多维数组要采用Arrays.deepToString;比较操作一维用equals,多维用deepEquals。

         程序设计基本目标:将保持不变的事物与会发生改变的事物相分离,这能通常采用策略模式,将会发生变化的功能写成一个接口,让不同适应类来实现。

        数组排序采用compare方法,创建一个Comparator接口来做,也可以用个个reverseOrder方法来生成一个Comparator,binarySearch方法是在排序完成后才能用的。

          

转载于:https://www.cnblogs.com/fengju/p/6174434.html

你可能感兴趣的文章
#hashMap冲突原理#详细
查看>>
基于单片机定时器---年月日时分秒的算法
查看>>
linux中IDE和SATA硬盘的区别
查看>>
关于清理缓存的解决方案
查看>>
编译时获得系统的日期和时间
查看>>
Unity3D写雷电游戏(一)
查看>>
Mybatis之使用注解开发CRUD
查看>>
C语言错误:request for member ‘xxx’ in something not a structure or union
查看>>
[LintCode] Pow(x, n) 求x的n次方
查看>>
冒泡排序逐步详解相关笔记(一)
查看>>
sql server split 分割 两种方法
查看>>
spring学习之@ModelAttribute运用详解
查看>>
语义分析应用——美通社
查看>>
数据类型及操作
查看>>
提高前端开发效率的N种方法
查看>>
第一个Vus.js
查看>>
10款最好的Python IDE
查看>>
js如何获取样式?
查看>>
保护视力最佳电脑窗口颜色配置Win7、Vista和XP适用!转
查看>>
一道题的分析
查看>>