Java提高篇(三八)—–Java集合细节(四):保持compareTo和equals同步
chenssy 1年前 (2014-08-06) 1636浏览 0评论
在Java中我们常使用Comparable接口来实现排序,其中compareTo是实现该接口方法。我们知道compareTo返回0表示两个对象相等,返回正数表示大于,返回负数表示小于。同时我们也知道equals也可以判断两个对象是否相等,那么他们两者...
JAVA提高篇Java提高篇(三八)—–Java集合细节(四):保持compareTo和equals同步chenssy 1年前 (2014-08-06) 1636浏览 0评论 在Java中我们常使用Comparable接口来实现排序,其中compareTo是实现该接口方法。我们知道compareTo返回0表示两个对象相等,返回正数表示大于,返回负数表示小于。同时我们也知道equals也可以判断两个对象是否相等,那么他们两者... Java提高配(三七)—–Java集合细节(三):subList的缺陷chenssy 1年前 (2014-08-05) 2053浏览 3评论 我们经常使用subString方法来对String对象进行分割处理,同时我们也可以使用subList、subMap、subSet来对List、Map、Set进行分割处理,但是这个分割存在某些瑕疵。 一、subList返回仅仅只是一个视图 首先我们先看... Java提高篇(三六)—–Java集合细节(二):asList的缺陷chenssy 1年前 (2014-08-03) 1856浏览 2评论 在实际开发过程中我们经常使用asList讲数组转换为List,这个方法使用起来非常方便,但是asList方法存在几个缺陷: 一、避免使用基本数据类型数组转换为列表 使用8个基本类型数组转换为列表时会存在一个比较有味的缺陷。先看如下程序: publi... Java提高篇(三五)—–Java集合细节(一):请为集合指定初始容量chenssy 1年前 (2014-07-30) 1395浏览 5评论 集合是我们在Java编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容器还可以无限变大(如果条件允许)。当这个海、容器的量变得非常大的时候,它的初始容量就会显得很重要了,因为挖海、扩容是需要消耗大量的人力物力财力的... Java提高篇(三四)—–fail-fast机制chenssy 1年前 (2014-07-26) 3098浏览 3评论 在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentMo... Java提高篇(三三)—–Map总结chenssy 1年前 (2014-07-16) 3956浏览 4评论 在前面LZ详细介绍了HashMap、HashTable、TreeMap的实现方法,从数据结构、实现原理、源码分析三个方面进行阐述,对这个三个类应该有了比较清晰的了解,下面LZ就Map做一个简单的总结。 推荐阅读: java提高篇(二三)—–HashM... Java提高篇(三二)—–List总结chenssy 1年前 (2014-07-12) 1904浏览 5评论 前面LZ已经充分介绍了有关于List接口的大部分知识,如ArrayList、LinkedList、Vector、Stack,通过这几个知识点可以对List接口有了比较深的了解了。只有通过归纳总结的知识才是你的知识。所以下面LZ就List接口做一个总结... Java提高篇(三一)—–Stackchenssy 1年前 (2014-07-08) 1313浏览 1评论 在Java中Stack类表示后进先出(LIFO)的对象堆栈。栈是一种非常常见的数据结构,它采用典型的先进后出的操作方式完成的。每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出,如下: Stack通过五个操作对Vector进行扩展,允许将向量视为堆... java提高篇(三十)—–Iteratorchenssy 1年前 (2014-07-02) 2316浏览 9评论 迭代对于我们搞Java的来说绝对不陌生。我们常常使用JDK提供的迭代接口进行Java集合的迭代。 Iterator iterator = list.iterator(); while(iterator.hasNext()){ ... java提高篇(二九)—–Vectorchenssy 1年前 (2014-06-22) 2137浏览 4评论 在java提高篇(二一)—–ArrayList、java提高篇(二二)—LinkedList,详细讲解了ArrayList、linkedList的原理和实现过程,对于List接口这里还介绍一个它的实现类Vector,Vector 类可以实现可增长的对... 详解java定时任务chenssy 1年前 (2014-06-14) 2095浏览 6评论 在我们编程过程中如果需要执行一些简单的定时任务,无须做复杂的控制,我们可以考虑使用JDK中的Timer定时任务来实现。下面LZ就其原理、实例以及Timer缺陷三个方面来解析java Timer定时器。 一、简介 在java中一个完整定时任务需要由Ti... Java提高篇(二八)—–TreeSetchenssy 1年前 (2014-06-06) 1255浏览 0评论 与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的。在《Java提高篇(二七)—–TreeMap》中LZ详细讲解了TreeMap实现机制,如果客官详情看了这篇博文或者多TreeMap有比... Java提高篇(二七)—–TreeMapchenssy 1年前 (2014-05-22) 2200浏览 5评论 TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获... Java提高篇(二六)——hashCodechenssy 2年前 (2014-04-08) 1448浏览 0评论 在前面三篇博文中LZ讲解了(HashMap、HashSet、HashTable),在其中LZ不断地讲解他们的put和get方法,在这两个方法中计算key的hashCode应该是最重要也是最精华的部分,所以下面LZ揭开hashCode的“神秘”面纱。 ... java提高篇(二五)—–HashTablechenssy 2年前 (2014-04-03) 2026浏览 2评论 在java中与有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,value)方法保存起来,然后通过get(key)方法获取相对应的value值。一个是前面提到的HashMap... java提高篇(二四)—–HashSetchenssy 2年前 (2014-03-24) 2366浏览 0评论 在前篇博文中(java提高篇(二三)—–HashMap)详细讲解了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素。所以如果对HashMap比较熟悉... java提高篇(二三)—–HashMapchenssy 2年前 (2014-01-15) 3662浏览 9评论 HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据... java提高篇(二二)—LinkedListchenssy 2年前 (2014-01-10) 2180浏览 9评论 一、概述 LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口的大小可变数组的实现,LinkedList是List接口链表的实现。基于链表实现... java提高篇(二一)—–ArrayListchenssy 2年前 (2013-12-30) 1890浏览 4评论 一、ArrayList概述 ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的... java提高篇(二十)—–集合大家族chenssy 2年前 (2013-12-28) 1637浏览 2评论 在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的Arra... java提高篇(十八)—–数组之一:认识JAVA数组chenssy 2年前 (2013-12-22) 1076浏览 1评论 噢,它明白了,河水既没有牛伯伯说的那么浅,也没有小松鼠说的那么深,只有自己亲自试过才知道!道听途说永远只能看到表明现象,只有亲自试过了,才知道它的深浅!!!!! 一、什么是数组 &nb... java提高篇(十九)—–数组之二chenssy 2年前 (2013-12-22) 1053浏览 0评论 前面一节主要介绍了数组的基本概念,对什么是数组稍微深入了一点点,在这篇博文中主要介绍数组的其他方面。 三、性能?请优先考虑数组 ... java提高篇(十七)—–异常(二)chenssy 2年前 (2013-12-22) 1132浏览 0评论 承接上篇博文:java提高篇—–异常(一) 五、自定义异常 Java确实给我们提供了非常多的异常,但是... java提高篇(十六)—–异常(一)chenssy 2年前 (2013-12-22) 1064浏览 0评论 Java的基本理念是“结构不佳的代码不能运行”!!!!! 大成若缺,其用不弊。 &nb... java提高篇(十五)—–关键字finalchenssy 2年前 (2013-12-22) 1044浏览 3评论 在程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了。final是java的关键字,它所表示的是“这部分是无法修改的”。不想被改变的原因有两个:效率、设计... java提高篇(十四)—–字符串chenssy 2年前 (2013-12-22) 1067浏览 0评论 可以证明,字符串操作是计算机程序设计中最常见的行为。 一、String 首先我们要明确,String并不是基本数据类型,而... java提高篇(十三)—–equals()方法总结chenssy 2年前 (2013-12-22) 1105浏览 3评论 equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等。该方法的源码如下: public b... java提高篇(十二)—–代码块chenssy 2年前 (2013-12-22) 1081浏览 3评论 在编程过程中我们可能会遇到如下这种形式的程序: public class Test { { //// } } &nb... java提高篇(十一)—–强制类型转换chenssy 2年前 (2013-12-22) 976浏览 0评论 在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。 在Java... java提高篇(十)—–详解匿名内部类chenssy 2年前 (2013-12-22) 951浏览 0评论 在java提高篇—–详解内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客。在这篇博客中你可以了解到匿名内部类的使用、匿... java提高篇(七)—–关键字staticchenssy 2年前 (2013-12-22) 1041浏览 0评论 一、 static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成... java提高篇(九)—–实现多重继承chenssy 2年前 (2013-12-22) 976浏览 4评论 多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时... java提高篇(八)—–详解内部类chenssy 2年前 (2013-12-22) 1064浏览 2评论 可以将一个类的定义放在另一个类的定义内部,这就是内部类。 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二)。 第一次见面 ... java提高篇(五)—–抽象类与接口chenssy 2年前 (2013-12-22) 1197浏览 4评论 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别... java提高篇(六)—–使用序列化实现对象的拷贝chenssy 2年前 (2013-12-22) 1263浏览 0评论 我们知道在Java中存在这个接口Cloneable,实现该接口的类都会具备被拷贝的能力,同时拷贝是在内存中进行,在性能方面比我们直接通过new生成对象来的快,特别是在大对象的生成上,使得性... java提高篇(四)—java的四舍五入chenssy 2年前 (2013-12-22) 1154浏览 0评论 Java小事非小事!!!!!!!!!!!! 四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么简单了。在讲解之间我们先看如下一个经典的案例: pu... java提高篇(三)—–理解java的三大特性之多态chenssy 2年前 (2013-12-22) 1437浏览 5评论 面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了... java提高篇(二)—–理解java的三大特性之继承chenssy 2年前 (2013-12-22) 1762浏览 1评论 在《Think in java》中有这样一句话:复用代码是Java众多引人注目的功能之一。但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情。在这句... java提高篇(一)—–理解java的三大特性之封装chenssy 2年前 (2013-12-22) 2497浏览 15评论 从大二接触java开始,到现在也差不多三个年头了。从最基础的HTML、CSS到最后的SSH自己都是一步一个脚印走出来的,其中开心过、失落过、寂寞过。虽然是半道出家但是经过自己的努力也算是完... |
|