JavaSe
文章平均质量分 80
传a奇
这个作者很懒,什么都没留下…
展开
-
Comparator 与 Comparable
说道Comparator 与 Comparable接口,就不得不说一下Collections和Arrays这两个类,他们分别为集合和数组提供一些查找、排序的操作。那么就以Collections为例,它有一个sort(),方法可以试下集合元素的排序。比如一个集合 ArrayList arr,我们可以通过Collections.sort(arr),对其进行排序,那么问题来了,Integer类型是数字原创 2015-12-09 17:09:35 · 384 阅读 · 0 评论 -
实现自己的HashMap
参考源码,实现了一个简单的HashMap。。。。。。package test;import java.util.Map;import test.MyHashMap.Entry;public class MyHashMap { private Entry[] table;//Entry数组表 static final int DEFAULT_INITIAL_原创 2016-01-09 15:12:22 · 617 阅读 · 0 评论 -
JAVA多态的实现方式
多态从实现的角度分为:静态多态和动态多态 静态多态也叫做编译时多态 动态多态也叫做运行时多态 1.静态的多态:函数重载是静态的多态的一种实现形式:举例说明:class MethodOverloading { viod receive(int i) { System.out.println("Received one原创 2015-12-06 16:22:55 · 2007 阅读 · 0 评论 -
sleep和wait的区别
1、这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。 sleep是Thread的静态类方法,谁调用的谁就进入睡眠状态(所以这个sleep的名字取得还真好),即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。2、sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步原创 2015-11-28 15:22:47 · 409 阅读 · 0 评论 -
Thread类和Runable接口
在java中可有两种方式实现多线程:一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。Thread实现多线程代码如下: package org.thread.demo; class M原创 2015-11-28 15:02:41 · 414 阅读 · 0 评论 -
Java transient关键字
最近看JDK源码,发现很多的变量用transient修饰,竟然不知道这个transient到底是什么意思,不觉让我这个自认为精通Java的人惊出一身冷汗,赶紧查了一下有关transient的只是,总是又长知识了,活到老学到老,我还只是个菜鸟(还挺押韵!!!)。。。。。。 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式原创 2015-12-13 14:36:54 · 362 阅读 · 0 评论 -
clone方法的深复制和浅复制
clone()方法是Object类中的一个方法,clone是穿件对象的四大方法之一(另外三个 new ,反射,发序列化),通过调用该方法,可以新建一个对象。那什么是深复制什么是浅复制呢?还是举例子来说比较直观。首先是浅复制,反下面代码:public class Student implements Cloneable{ private String studentName;原创 2015-12-28 12:13:52 · 631 阅读 · 0 评论 -
java中PriorityQueue优先级队列的使用
PriorityQueue是在Java SE 5.0中,引入了的Collection API,他与传统queue不同的是,PriorityQueue并非是FIFO的队列,PriorityQueue会对里面的元素按照优先级进行排序。他是如何按优先级排序的呢?PriorityQueue队列按照在构造时所指定的顺序对元素排序,既可以根据元素的自然顺序来指定排序(参阅 Comparable),也可原创 2015-12-13 17:52:11 · 918 阅读 · 0 评论 -
一个异常引发的对Hashtable和HashMap的思考
对于Hashtable和HashMap,相信每个学习Java的人都不会陌生,这两个集合在用法上并没有什么不同,但在使用环境上却有很大差别:(1)区别,这两个类主要有以下几方面的不同: Hashtable和HashMap都实现了Map接口,但是Hashtable的实现是基于Dictionary抽象类 在HashMap中,null可以作为键,这样的键只有一个;可以有一个原创 2015-11-17 20:28:56 · 786 阅读 · 0 评论 -
一个异常引发的集合多线程思考
对于Hashtable和HashMap,相信每个学习Java的人都不会陌生,这两个集合在用法上并没有什么不同,但在使用环境上却有很大差别:(1)区别,这两个类主要有以下几方面的不同: Hashtable和HashMap都实现了Map接口,但是Hashtable的实现是基于Dictionary抽象类 在HashMap中,null可以作为键,这样的键只有一个;可以有一个原创 2015-11-17 21:04:51 · 870 阅读 · 0 评论 -
多线程实现死锁(Java实现)
学习Java比较久了,对多线程也比较熟悉,前段时间面试的时候,面试官问我:请你写一段多线程实现死锁的代码。说实话当时有点儿蒙,以前做的都是如何避免死锁,现在要产生死锁,还真没写过,不过回忆一下产生死锁的四大必要条件,要写出这段代码还是不难的。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不原创 2015-11-18 10:15:14 · 394 阅读 · 0 评论 -
Collection 和 Collections 的区别(Array和Arrays区别)
Collection 和 Collections 的区别是在面试过程中经常被问到的知识,两个单词虽然只有一个s的不同,但含义和用法却是天差地别:首先,Collection 是个 java.util 下的接口 ,它是各种集合结构的父接口。继承与他的接口主要有 Set 和 List。学习Java的人是必须对Collection了如指掌的,因为不管以后你是做服务器开发还是做安卓,集合都是必须要原创 2015-10-31 15:34:33 · 468 阅读 · 0 评论 -
实现阻塞队列
阻塞队列是Concurrent包下的类,常用的包括ArrayBlockingQueue和LinkedBlockingQueue,阻塞队列中put()和take()两个方法的实现从源码中华可以看出是用消费者-生产者模式实现的,下面就是自己实现的简单的ArrayBlockingQueue废话诗少说,直接上代码:/** * 一个简单的阻塞队列 */ class MyBlock原创 2016-01-26 11:50:30 · 950 阅读 · 0 评论