
Java基础
别志华
这个作者很懒,什么都没留下…
展开
-
Java - 基础概念
抽象抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处.继承在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需求,这就是继承.继承通过extends关键字来实现,被继承的是父类,继承者是子类,继承是子类自动共享父类数据和方法的机制,原创 2016-08-22 22:02:21 · 475 阅读 · 0 评论 -
【Java集合源码剖析】LinkedList源码剖析
推荐一篇分析LinkedList的博客,非常不错:传送门LinkedList是基于双向链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。LinkedList同样是非线程安全的,只在单线程下适合使用。LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。源码如下。publ原创 2016-07-20 15:24:24 · 1300 阅读 · 0 评论 -
【Java集合源码剖析】HashMap源码剖析
本来准备研究一下源码的,但是看了这篇文章发现根本不用了。非常不错,推荐一下:Java-HashMap工作原理及实现转载 2016-07-20 17:16:15 · 439 阅读 · 0 评论 -
【Java集合源码剖析】ArrayList源码剖析
转载自:http://blog.youkuaiyun.com/ns_code/article/details/35568011 内容略有修改A转载 2016-07-20 12:44:53 · 472 阅读 · 0 评论 -
Java集合源码剖析】Java集合框架
转载自:http://blog.youkuaiyun.com/ns_code/article/details/35564663 其中内容略有修改转载 2016-07-20 10:08:31 · 570 阅读 · 0 评论 -
Java - 死锁
死锁某个任务在等待另一个任务,而后者又在等待别的任务,这样一直下去,直到这样链条上的任务又在等待第一个任务释放锁.这得到了一个任务之间相互等待的联系循环,没有那个线程能够继续,称之为死锁.当以下四个条件同时满足时,就会发生死锁:互斥条件.任务使用的资源中至少有一个是不能共享的.至少有一个任务它必须持有一个资源且正在等待获取一个当前被别的任务持有的资源.资源不能被任务抢占,任务必须把资源释放当做原创 2016-07-16 13:51:42 · 465 阅读 · 0 评论 -
Java - 散列码
散列与散列码正确的equals()方法必须满足以下5个条件: 1. 自反性.对任意x,x.equals(x)一定返回true. 2. 对称性.对任意x/y,如果y.equals(x)返回true,则x.equals(y)也返回true 3. 传递性.对任意x/y/z,如果有x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)一定返回true. 4.原创 2016-07-04 21:26:37 · 1481 阅读 · 0 评论 -
Java - Map
MapHashMap使用了特殊的值,称作散列码.散列码是相对唯一的,用以代表对象的int值.hashCode()是根类Object中的方法,因此所有Java对象都能产生散列码.HashMap就是使用对象的hashCode()进行快速查询的,此方法能够显著提高性能. __ __ HashMap Map基于散列表的实现,它取代了HashTable.插入和查询”键值对”的开销是固定的.可以通原创 2016-07-03 22:23:51 · 613 阅读 · 0 评论 -
Java - 队列
队列 Queue队列是一个典型的先进先出(FIFO)的容器.队列常被当做一种可靠的将对象从程序的一个区域传送到另一个区域的途径.队列在并发编程中特别重要.offer()方法将一个元素插入到对位peek()和element()在不移除的情况下返回队头,当为空时,一个返回null,一个抛出NoSuchElementExceptionpoll()和remove()移除并返回队头,当为空时,一个返回n原创 2016-06-30 23:01:24 · 656 阅读 · 0 评论 -
Java - Set和存储顺序
接口 描述 Set 存入Set的每一个元素都必须是唯一的,因为Set不保存重复元素.加入Set的元素必须定义equals()方法以确保对象的唯一性. Set和Collection有完全一样的接口.Set接口不保证维护元素的次序. HashSet * 为快速查找而设计的Set.存入HashSet的元素必须定义HashCode()方法. TreeSet 保持次序的Set,底层为原创 2016-06-29 23:06:46 · 8624 阅读 · 1 评论 -
Java - 线程状态
一个线程可以处于以下四种状态:新建(new):当线程被创建时,它只会短暂的处于这种状态.此时它已经分配了必须的系统资源,并执行了初始化.此刻线程已经有资格获得CPU时间了,之后调度器将把这个线程 转变位可运行状态或阻塞状态.就绪(runnable):在这种状态下,只要调度器把时间片分配给线程,线程就可以运行.也就是说,在任意时刻,线程可以运行也可以不运行.只要调度器能分配时间片给线程,他就可以原创 2016-07-11 22:06:46 · 543 阅读 · 0 评论 -
Java - 如何进入阻塞状态
进入阻塞状态一个线程进入阻塞状态,可能有如下原因:通过调用sleep(millseconds)使任务进入休眠状态,在这种状态下,任务在指定的时间内不会运行.通过wait()使线程挂起.直到线程得到了notify()或notifyAll()消息,或是signal()和singalAll(),线程才会进入就绪状态.任务在等待某个输入/输出完成.任务试图在某个对象上调用其同步控制方法,但是对象锁不原创 2016-07-11 22:11:11 · 2889 阅读 · 0 评论 -
Android关于销毁你所应该知道的
finalize()用途何在五步看懂:我们都了解初始化的重要性,当常常会忘记同样也重要的清理工作。在Java中有垃圾回收器负责(GC)回收无用的对象占据的内存资源。但是也有特殊情况:假定你的对象(并非使用new)获得一块“特殊”的内存区域。为了处理这种情况,Java允许在类中定义一个名为finalize()的方法。它的工作原理“假定”是这样的:一旦垃圾回收期准备好释放对象占用的存储空间,将首先调用f原创 2016-05-09 23:52:34 · 3844 阅读 · 0 评论 -
Java基础加强-反射、注解
基础加强一回顾泛型二泛型的反射三注解基础加强一、回顾泛型泛型的基本概念:以ArrayList<E>为例:① ArrayList<E>中的E称为类型参数变量ArrayList<Integer>中的Integer称为实际类型参数②整个ArrayList<E>称为泛型类型整个ArrayList<Integer>称为参数化的类型(ParameterizedType)定义一个泛型方法::// <原创 2015-02-13 01:38:59 · 1893 阅读 · 0 评论 -
Java - Abstract class 和 Interface区别
两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。 ~~~~~~~~ Abstract Class Interface 实例化 不能 不能 类 是一种继承关系,一个类只能使用一次继承关系.可以通过继承多个接口实现多重继承. 一个类可以实现多个接口 数据成员 可以由自己的 必须是static fi原创 2016-08-22 22:42:02 · 687 阅读 · 0 评论