
Java
TangowL
这个作者很懒,什么都没留下…
展开
-
Java核心技术(一) —— Java程序设计概述
为了在大数据处理、分布式计算等方面有所继续发展,经过考虑,计划先放下C++,开始Java入门。后面将是一系列的Java核心技术学习,感兴趣的朋友可以一起学习、交流。在第一节课,我们主要介绍java设计基本概述,并将其与C++进行对比介绍。原创 2016-04-26 11:23:25 · 1241 阅读 · 0 评论 -
Java中Iterable和Iterator的辨析
本文主要对Iterable和Iterator两个接口进行深入学习。1、Iterable接口Iterable接口 (java.lang.Iterable) 是Java集合的顶级接口之一。我们首先看下这这个接口在JDK中的定义:package java.lang; public interface Iterable<AnyType>{ Iterator<AnyType> iterator(原创 2016-06-17 16:11:30 · 14239 阅读 · 4 评论 -
数据结构与算法分析(二) —— LinkedList泛型类的实现
在学习数据结构与算法分析过程中,便于使用的LinkedList类的实现是个很好的练手项目,本博文将提供详细的代码,给出一个便于使用的LinkedList泛型类的实现。为了避免与类库中的类相混淆,我们将其命名为MyLinkedList。由于程序较长,也相对简单,不太想逐段分析,我们先将几个注意点指出,后面放出整段程序。很多关于接口的知识可以参阅 数据结构与算法分析(二) —— ArrayList泛型类原创 2016-07-06 15:18:36 · 898 阅读 · 0 评论 -
数据结构与算法分析(三) —— AVL树的实现
本文实现了AVL树,有几个注意点:insert和remove引起的失衡都可以用同样的旋转进行修复:Case1:k2的左子树的左子树比其右子树高2 —— k2进行左单旋Case4:k1的右子树的右子树比其左子树高2 —— k1进行右单旋Case2:k3的左子树的右子树比其右子树高2 —— k3进行左双旋 —— k3左子树先进行右单旋再对k3进行左单旋Case3:k1的右子树的左子树比其左子树高原创 2016-07-21 10:07:44 · 1486 阅读 · 0 评论 -
数据结构与算法分析(三) —— 关于树的深入探讨
前面介绍的链表结构的线性访问时间,在大规模输入数据时显得太慢了,因此,需要介绍一种新的数据结构,二叉查找树(BST)。我们先对BST及其引申树的因果关系作介绍,再分别进行详细介绍,最后进行一些比较。BST可以实现对数平均开销,但这严重依赖于输入,即要求输入是随机的,如果输入是有序数据,由于BST失衡,导致线性平均开销。因此,需要对BST进行改造,引入平衡的结构条件。平衡二叉树的常用算法很多,形成的树原创 2016-07-18 15:59:31 · 916 阅读 · 2 评论 -
各种排序算法的原理、Java实现与比较分析(一)
排序算法,从大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序。如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内排序有可以分为以下几类:插入排序:直接插入排序、二分法插入排序、希尔排序。选择排序:简单选择排序、堆排序。交换排序:冒泡排序、快速排序。归并排序基数排序原创 2016-09-08 17:04:56 · 2705 阅读 · 2 评论 -
各种排序算法的原理、Java实现与比较分析(二)
三、交换排序3.1 冒泡排序(1)基本思想 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。(2)特点冒泡排序是一种稳定的排序方法冒泡排序是最慢的排序算法。在实际运用中它是效率最低的算法起泡排序平均时间复杂度为O(n2)(3)Java实现pa原创 2016-09-09 10:18:58 · 1105 阅读 · 2 评论 -
各种排序算法的原理、Java实现与比较分析(三)
前面两篇博文介绍了各种排序算法的原理、特点和Java实现,本文将对前述各种算法进行比较分析。1、排序算法总结2、排序算法的选择(1)数据规模较小待排序列基本序的情况下,可以选择直接插入排序对稳定性不作要求宜用简单选择排序,对稳定性有要求宜用插入或冒泡(2)数据规模不是很大完全可以用内存空间,序列杂乱无序,对稳定性没有要求,快速排序,此时要付出log(N)的额外空间序列本身可能有序,对稳定性原创 2016-09-09 10:25:38 · 690 阅读 · 2 评论 -
Java中的自动装箱与拆箱
基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 基本数据类型不是对象,也就是使用int、double、boolean等定义的变量、常量,基本数据类型没有可调用的方法。因此,在面向对象的Java编程中,为了除没一个引用类型都和Object相容外,需要保证基本数据类型也能和Object相容,这就需要包装和解包装。在许多情况下包装与解包装是由编原创 2016-06-17 11:22:43 · 626 阅读 · 0 评论 -
Java核心技术(六) —— 接口
后面的博文,我们将开始Java的常用高级技术学习。接口(Interface),在JAVA编程语言中是一个抽象类型,是**抽象方法的集合**,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口中的所有抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法,接口则包含类要实现的方法。也可以说,一个类的所有方法都是抽象方法,则称为原创 2016-05-10 15:14:44 · 3105 阅读 · 0 评论 -
Java核心技术(二) —— Java的基本程序设计结构
本文主要讲述程序设计相关的基本概念在Java中的实现方式,涉及的内容很多很细,包括注释、数据类型、变量、运算符、字符串、输入输出、控制流、大数值和数组。原创 2016-04-27 09:41:08 · 4487 阅读 · 0 评论 -
Java核心技术(三) —— 对象与类(1)
本文将对Java程序设计的对象和类进行深入详细介绍,主要涉及以下内容: - 面向对象程序设计 - 如何创建标准Java类库中的类对象 - 如何编写自己的类原创 2016-05-03 11:46:24 · 6441 阅读 · 3 评论 -
Java核心技术(三) —— 对象与类(2)
本文将继续对Java程序设计的对象和类进行深入详细介绍,主要涉及以下内容: - 面向对象程序设计 - 如何创建标准Java类库中的类对象 - 如何编写自己的类原创 2016-05-03 20:53:18 · 3988 阅读 · 0 评论 -
Java核心技术(三) —— 对象与类(3)
本文将继续对Java程序设计的对象和类进行深入详细介绍,主要涉及以下内容: - 面向对象程序设计 - 如何创建标准Java类库中的类对象 - 如何编写自己的类原创 2016-05-03 21:59:47 · 759 阅读 · 0 评论 -
Java核心技术(四) —— 继承(1)
继前面我们对类和对象进行系统学习之后,我们来继续学习OOP的另一个基本概念:继承。利用继承,可以基于已存在的类构造一个新类。继承已存在的类就是复用(继承)这些类的方法和域,在此基础上,可以添加一些新的方法和域,以满足新的需求。 此外,我们也将介绍反射的概念。反射即在程序运行期间发现更多的类及其属性的能力,不过这个强大的特性更吸引开发软件工具人员的关注,编写应用程序的人员则不太关注,所以我们粗略介绍原创 2016-05-04 11:29:14 · 979 阅读 · 0 评论 -
Java核心技术(四) —— 继承(2)
继前面我们对类和对象进行系统学习之后,我们来继续学习OOP的另一个基本概念:继承。利用继承,可以基于已存在的类构造一个新类。继承已存在的类就是复用(继承)这些类的方法和域,在此基础上,可以添加一些新的方法和域,以满足新的需求。 此外,我们也将介绍反射的概念。反射即在程序运行期间发现更多的类及其属性的能力,不过这个强大的特性更吸引开发软件工具人员的关注,编写应用程序的人员则不太关注,所以我们粗略介原创 2016-05-04 19:18:22 · 4937 阅读 · 3 评论 -
Java核心技术(五) —— 泛型程序设计(1)
本文主要针对泛型程序设计,从以下方面进行讲解:为何使用泛型程序设计定义简单的泛型类泛型方法类型变量的限定泛型代码和虚拟机约束与局限性泛型类型的继承规则通配符类型反射和泛型泛型程序设计,意味着编写的代码可以被很多不同类型的对象所重用。原创 2016-05-09 20:03:29 · 2504 阅读 · 1 评论 -
Java核心技术(五) —— 泛型程序设计(2)
本文延续上文,针对泛型程序设计,从以下方面进行讲解:为何使用泛型程序设计定义简单的泛型类泛型方法类型变量的限定泛型代码和虚拟机约束与局限性泛型类型的继承规则通配符类型反射和泛型原创 2016-05-09 21:06:04 · 2533 阅读 · 0 评论 -
Java中Comparable和Comparator的辨析
在对集合元素进行比较时一般使用TreeSet。对于简单的数据类型,TreeSet可以直接进行比较。但是对于复杂的数据类型,比如自己定义的数据类型或者类,就需要自己设置比较方法与比较规则了,这时就需要用到Comparable和Comparator了。1、Comparable和Comparator都是用来实现集合中的元素的比较、排序的。但也有所区别:(1)Comparable是在集合内部定义的方法实现排原创 2016-05-10 09:28:26 · 2044 阅读 · 3 评论