03 2019 档案

摘要:作为一门面向对象的编程语言,Java认为一切皆是对象,每个对象都能归属于某个类,甚至每个类均可提取出一种特殊的类型,即Class类型。早在前面介绍多态的时候,就提到每个类都存在独一无二的基因,通过比较实例的类基因与具体类名的类基因,即可分辨某个实例是否属于目标类。例如,若想获取公鸡类的类型,则可通过 阅读全文
posted @ 2019-03-30 09:11 pinlantu 阅读(466) 评论(0) 推荐(0) 编辑
摘要:前面在介绍清单用法的时候,讲到了既能使用for循环遍历清单,也能通过stream流式加工清单。譬如从一个苹果清单中挑选出红苹果清单,采取for循环和流式处理都可以实现。下面是通过for循环挑出红苹果清单的代码例子: 至于通过流式处理挑出红苹果清单的代码示例如下: 然而上述的两段代码只能在数据完整的情 阅读全文
posted @ 2019-03-27 20:41 pinlantu 阅读(1506) 评论(0) 推荐(0) 编辑
摘要:每个程序员都希望自己的程序稳定运行,不要隔三岔五出什么差错,可是程序运行时冒出来的各种异常着实烦人,令人不胜其扰。虽然可以在代码中补上try/catch语句捕捉异常,但毕竟属于事后的补救措施。与其后知后觉地亡羊补牢,不如一开始就未雨绸缪,只要防患于未然,必能收到事半功倍的成效。就编码时的常见异常而言 阅读全文
posted @ 2019-03-25 09:59 pinlantu 阅读(446) 评论(0) 推荐(0) 编辑
摘要:前面介绍的几种异常(不包含错误),编码的时候没认真看还发现不了,直到程序运行到特定的代码跑不下去了,程序员才会恍然大悟:原来这里的代码逻辑有问题。像这些在运行的时候才暴露出来的异常,又被称作“运行时异常”,与之相对的另一类异常叫做“非运行时异常”。所谓非运行时异常,指的是在编码阶段就被编译器发现这里 阅读全文
posted @ 2019-03-23 10:36 pinlantu 阅读(1121) 评论(0) 推荐(1) 编辑
摘要:前面介绍的几种异常,其实都存在这样那样的逻辑问题,属于程序员的编码手误。还有一大类系统错误,表面上看不出什么问题,但是程序仍然运行不下去,兹举二例说明。第一个例子且看下列的测试代码: 执行测试代码中的testUnlimitedString方法,一开始程序正常打印日志,然而不一会儿就报错退出了,错误信 阅读全文
posted @ 2019-03-21 22:01 pinlantu 阅读(628) 评论(0) 推荐(0) 编辑
摘要:一个程序开发出来之后,无论是用户还是程序员,都希望它稳定地运行,然而程序毕竟是人写的,人无完人哪能不犯点错误呢?就算事先考虑得天衣无缝,揣着一笔巨款跑去岛国买了栋抗震性能良好的海边别墅,谁料人算不如天算,碰到猴年马月遇上了一场大海啸,整个别墅被冲到山上去了。计算机程序也是如此,不管是人为的错误,还是 阅读全文
posted @ 2019-03-19 10:51 pinlantu 阅读(529) 评论(0) 推荐(0) 编辑
摘要:通过前面几篇文章的学习,大家应能掌握几种容器类型的常见用法,对于简单的增删改和遍历操作,各容器实例都提供了相应的处理方法,对于实际开发中频繁使用的清单List,还能利用Arrays工具的asList方法给清单对象做初始化赋值,另外提供了专门的Collections工具进行排序、求最大元素、求最小元素 阅读全文
posted @ 2019-03-15 21:59 pinlantu 阅读(675) 评论(0) 推荐(0) 编辑
摘要:清单作为一组数据的有序队列,它在组织形式上与数组有着某些异曲同工之处,数组有专门的数组工具Arrays来进行加工操作,照理清单也应该配备对应的清单工具。当然容器这个大家族确实拥有自己的容器工具Collections,不过数组工具Arrays也隐藏着一个清单方法,它便是asList,该方法类似数组的初 阅读全文
posted @ 2019-03-13 22:12 pinlantu 阅读(253) 评论(0) 推荐(0) 编辑
摘要:由于泛型存在某种不确定的类型,因此很少直接运用于拿来即用的泛型类,它更经常以泛型接口的面目出现。例如几种基本的容器类型Set、Map、List都被定义为接口interface,像HashSet、TreeMap、LinkedList等等只是实现了对应容器接口的具体类罢了。泛型的用途各式各样,近的不说, 阅读全文
posted @ 2019-03-11 21:44 pinlantu 阅读(1207) 评论(1) 推荐(0) 编辑
摘要:前面从泛型方法的用法介绍到了泛型的起源,既然单个方法允许拥有泛化的参数类型,那么一个类也应当支持类级别的泛化类型,例如各种容器类型ArrayList、HashMap等等。一旦某个类的定义代码在类名称后面添加“<T>”这种泛型声明,该类就变成了泛型类(也称模板类)。况且泛型类不单单支持一种泛型参数,还 阅读全文
posted @ 2019-03-09 10:33 pinlantu 阅读(909) 评论(0) 推荐(0) 编辑
摘要:前面介绍各种容器之时,通过在容器名称后面添加包裹数据类型的一对尖括号,表示该容器存放的是哪种类型的元素。这样一来总算把Java当中的各类括号都凑齐了,例如包裹一段代码的花括号、指定数组元素下标的方括号、容纳方法输入参数的圆括号,还有最近跟在容器名称之后的尖括号。可是为什么尖括号要加到容器后面呢?它还 阅读全文
posted @ 2019-03-06 22:05 pinlantu 阅读(401) 评论(0) 推荐(0) 编辑
摘要:前面介绍了集合与映射两类容器,它们的共同特点是每个元素都是唯一的,并且采用二叉树方式的类型还自带有序性。然而这两个特点也存在弊端:其一,为啥内部元素必须是唯一的呢?像手机店卖出了两部Mate20,虽然这两部手机一模一样,但理应保存两条销售记录才是。其二,不管是哈希类型还是二叉类型,居然都不允许按照加 阅读全文
posted @ 2019-03-04 21:19 pinlantu 阅读(477) 评论(0) 推荐(0) 编辑
摘要:前面介绍了两种集合的用法,它们的共性为每个元素都是唯一的,区别在于一个无序一个有序。虽说往集合里面保存数据还算容易,但要从集合中取出数据就没那么方便了,因为集合居然不提供get方法,没有get方法怎么从一堆数据之中挑出你想要的东西呢?难道只能从头遍历集合的所有元素,再逐个加以辨别吗?显然这个缺陷是集 阅读全文
posted @ 2019-03-02 10:05 pinlantu 阅读(454) 评论(0) 推荐(0) 编辑