Java SE
v墨竹v
个人独立博客:http://blog.mozhu.org
展开
-
细节决定成败:java中,是不是无法import默认包中的类?
假如有一个类,直接不加package,也就是属于默认包: public class ClassInDefaultPackage { public void doSomething(){ System.out.println("I am in default package."); }} 另外一个类,处于com包(或者任何非默认包),如何使用原创 2009-08-31 13:15:00 · 12152 阅读 · 1 评论 -
Java排序算法(四):冒泡排序
Java排序算法(四):冒泡排序冒泡排序是计算机的一种排序方法,它的时间复杂度为O(n^2),虽然不及堆排序、快速排序的O(nlogn,底数为2),但是有两个优点:1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺原创 2011-07-05 00:58:27 · 3373 阅读 · 0 评论 -
Java排序算法(六):直接插入排序
直接插入排序的基本操作就是将待排序的数据元素按其关键字值的大小插入到前面的有序序列中。算法描述对一个有n个元素的数据序列,排序需要进行n-1趟插入操作:第1趟插入,将第2个元素插入前面的有序子序列--此时前面只有一个元素,当然是有序的。第2趟插原创 2011-07-05 23:11:20 · 4057 阅读 · 0 评论 -
Java排序算法(七):折半插入排序
Java排序算法(七):折半插入排序折半插入排序法,又称二分插入排序法,是直接插入排序法的改良版,不同之处在于,第i趟插入,先找出第i个元素应该插入的的位置,假定前1~i-1个数据是已经处于有序状态。代码实现:package sort;public class Binar原创 2011-07-06 21:10:21 · 9431 阅读 · 2 评论 -
Java排序算法(九):归并排序
Java排序算法(九):归并排序 归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide a原创 2011-07-08 00:25:41 · 65245 阅读 · 6 评论 -
Java排序算法(十):桶式排序
Java排序算法(十):桶式排序桶式排序不再是一种基于比较的排序方法,它是一种比较巧妙的排序方式,但这种排序方式需要待排序的序列满足以下两个特征:待排序列所有的值处于一个可枚举的范围之类;待排序列所在的这个可枚举的范围不应该太大,否则排序开销太大。排序的具体步骤如下:(1)对于这原创 2011-07-10 15:26:40 · 6844 阅读 · 6 评论 -
Java排序算法(一):概述
Java排序算法(一):概述排序是程序开发中一种非常常见的操作,对一组任意的数据元素(或记录)经过排序操作后,就可以把他们变成一组按关键字排序的有序队列。对一个排序算法来说,一般从下面3个方面来衡量算法的优劣:时间复杂度:它主要是分析关键字的比较次数和记录的移原创 2011-07-04 22:14:08 · 2473 阅读 · 0 评论 -
Java排序算法(五):快速排序
Java排序算法(五):快速排序快速排序是一个速度非常快的交换排序算法,它的基本思路很简单,从待排的数据序列中任取一个数据(如第一个数据)作为分界值,所有比它小的数据元素放到左边,所有比它大的数据元素放到它的右边。经过这样一趟下来,该序列形成左右两个子序列,左原创 2011-07-05 22:32:23 · 4122 阅读 · 1 评论 -
Java排序算法(十三):补充-洗牌算法
Java排序算法(十三):补充-洗牌算法这个算法的要求是这样的:将N个数乱序后输出.由于和扑克牌的洗牌过程比较相似所以我也就称为洗牌算法了.很多地方都不自觉的需要这个算法的支持.也可以将这个算法扩展为从N个数中取出M个不重复的数(0思路:有n个数据的数据列,从第一个元素开始,随机原创 2011-07-10 23:39:15 · 8408 阅读 · 3 评论 -
Java排序算法(八):希尔排序(Shell排序)
Java排序算法(八):希尔排序(Shell排序)希尔排序(缩小增量法) 属于插入类排序,由Shell提出,希尔排序对直接插入排序进行了简单的改进:它通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使数据项大跨度地移动,当这些数据项排过一趟序之后,希尔排原创 2011-07-07 22:41:42 · 14439 阅读 · 9 评论 -
Java排序算法(十二):总结
Java排序算法(十二):总结前面讲了10种基本的排序算法,现在来作下总结,基于下面几个方面来比较各个排序算法的优劣:时间复杂度,空间复杂度,稳定性,适用场景原创 2011-07-10 16:22:19 · 3038 阅读 · 0 评论 -
深入Java集合学习系列:HashMap的实现原理
深入Java集合学习系列:HashMap的实现原理1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2转载 2011-07-04 19:55:13 · 978 阅读 · 1 评论 -
匪夷所思的“i=i++”
不管是C,还是C++,还是JAVA,相信“i++”和“++i”一直是初学者最难区别的2个运算符大家所熟知的区别就是:“i++”意味着“变量i先被使用,之后再进行自加1操作”,而“++i”则意味着“变量i先进行自加1操作,之后再被使用”。 最近看到这样一段JAVA代码:public class Test { public static void main(String i原创 2009-09-02 18:20:00 · 1288 阅读 · 2 评论 -
String和StringBuffer类
String和StringBuffer类可以说是Java代码中最常见、最常用的类。例如: String s;s += "helloWorld"; 一、使用String类 有时写得太频繁和习惯,通常会忽略性能方面的留意。有时这种性能差异是相当大的。例如:String s = ""; for(int i = 0;i<10000;i++){转载 2009-09-03 05:28:00 · 886 阅读 · 0 评论 -
自动装箱(autoboxing)与自动拆箱(unboxing)
基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unboxing)是J2SE 5.0提供的新功能。虽然为你打包基本数据类型提供了方便,但提供方便的同时表示隐藏了细节,建议在能够区分基本数据类型与对象的差别时再使用。 1) autoboxing和unboxing 在Java中,所有要处理的东西几乎都是对象(Object)。然而基本(Primitive)数据类型不是原创 2009-09-06 17:33:00 · 4711 阅读 · 4 评论 -
包装类(Wrapper Class)
Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class),有些地方也翻译为外覆类或数据类型类。包装类均位于java.lang包,包装类和基本数据类型的对应关系如下:基本数据类型(包装类)byt原创 2009-09-09 06:46:00 · 22322 阅读 · 0 评论 -
[Linux]在Linux上部署Java开发环境笔记(二):Linux中安装JDK6.0
在Linux上部署Java开发环境笔记(二):Linux中安装JDK6.0原创 2010-06-14 12:29:00 · 5591 阅读 · 1 评论 -
Java集合 - BlockingQueue
Java集合 - BlockingQueue 本例介绍一个特殊的队列:BlockingQueue,如果BlockQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒.同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间才会被唤醒继续操转载 2011-06-28 22:56:00 · 821 阅读 · 0 评论 -
深入Java集合学习系列:LinkedHashMap的实现原理
深入Java集合学习系列:LinkedHashMap的实现原理1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不转载 2011-07-04 20:01:17 · 1138 阅读 · 0 评论 -
深入Java集合学习系列:ArrayList的实现原理
深入Java集合学习系列:ArrayList的实现原理1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用转载 2011-07-04 20:09:54 · 1482 阅读 · 2 评论 -
深入Java集合学习系列:LinkedHashSet的实现原理
深入Java集合学习系列:LinkedHashSet的实现原理1. LinkedHashSet概述: LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目转载 2011-07-04 20:03:46 · 1126 阅读 · 0 评论 -
深入Java集合学习系列:HashSet的实现原理
深入Java集合学习系列:HashSet的实现原理1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2.转载 2011-07-04 19:57:57 · 2360 阅读 · 0 评论 -
Java排序算法(十一):基数排序
Java排序算法(十一):基数排序基数排序已经不再是一种常规的排序方式,它更多地像一种排序方法的应用,基数排序必须依赖于另外的排序方法。基数排序的总体思路就是将待排序数据拆分成多个关键字进行排序,也就是说,基数排序的实质是多关键字排序。多关键字排序的思路是将待排数据里德排序关键字原创 2011-07-10 16:19:38 · 15746 阅读 · 2 评论