Java 经验篇
曾淘
值得去的地方,没有捷径;难走的路,才更值得开始!
展开
-
Java 归并排序算法
简介上一章我们学习了 Java 快速排序算法,这一章,我们来学习快归并排序算法,so,多了不说,继续老规矩,学习内容如下:1、归并排序的定义2、归并排序的思路3、代码实现4、运行过程 & 代码分析1、归并排序的定义归并排序:是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide andConquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表原创 2020-12-23 18:12:30 · 738 阅读 · 0 评论 -
Java 知识结构图
简介《 值得去的地方,没有捷径;难走的路才更值得开始 》为什么要说这个【知识结构图】呢,其实是针对于刚开始学习,工作或工作一段时间的人,每天忙,杂七杂八,自己身心巨雷,又想要偷懒的人而准备的,希望看了之后,能对你有所帮助。1,Java 知识结构图2,Java 其它结构图3,总结1.Java 知识结构图学习东西,那么我们一定要带着问题,带着目标去学习,那么事情会事半功倍,否则一会儿,精神说不定就恍惚了,你就可能不知道自己为什么要学习了,学习到哪里。不多说,上结构图2.其它架构图1原创 2020-12-22 11:56:53 · 4479 阅读 · 5 评论 -
Java 快速排序算法
简介上一章我们学习了 Java 希尔排序算法,这一章,我们来学习快速排序算法,so,多了不说,继续老规矩,学习内容如下:1、快速排序的定义2、快速排序的思路3、代码实现1.快速排序的定义快速排序的基本思想:通过一趟排序将待排记录分隔成 独立的两部分 ,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。2.快速排序的思路快速排序使用分治法,把一个串(list)分为两个子串(child-list)具体算法描述如下:从数列中挑出一个元素,原创 2020-12-18 17:38:27 · 2138 阅读 · 3 评论 -
Java 希尔排序算法
简介上一章我们学习了 Java 插入排序算法,这一章,我们来学习插入排序算法,so,多了不说,继续老规矩,学习内容如下:1、希尔排序的定义2、希尔排序的思路3、代码实现1.希尔排序的定义希尔排序的实质就是:分组插入排序,它是简单插入排序经过改进之后的一个更高效的版本,又称缩小增量法。将整个无序序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序原创 2020-12-11 11:15:29 · 302 阅读 · 0 评论 -
Java 插入排序算法
简介上一章我们学习了 Java 选择排序算法,这一章,我们来学习插入排序算法,so,多了不说,继续老规矩,学习内容如下:1、插入排序的定义2、插入排序的思路3、代码实现1.插入排序的定义插入排序算法:是基于某序列已经有序排列的情况下,通过一次插入一个元素的方式按照原有排序方式增加元素2.插入排序的思路默认从第2个数据开始比较。如果第2个数据比第1个小,则交换。然后在用第3个数据比较,如果比前面小,则插入。否则,退出循环。说明:默认将第1数据看成有序列表,后面无序的列表循环每一个数据原创 2020-12-09 18:16:36 · 1975 阅读 · 2 评论 -
Java 选择排序算法
简介前一章我们说了 Java 冒泡排序算法 ,这章我们来学习一下选择排序,老规矩,我们带着问题去学习,这样能更快的熟悉和掌握,学习如下:1、选择排序的定义2、选择排序的思路3、代码实现1.选择排序的定义选择排序算法:基本思路是为每一个位置选择当前最小的元素。2、选择排序的思路将第一个值看成最小值然后和后续值进行比较,找出最小值和下标,交换本次遍历的起始值和最小值直至完成第(n-1)个位置的元素选择说明:每次遍历的时候,将前面找出的最小值,看成一个有序的列表,后面的看成无序的列表,原创 2020-12-08 15:29:58 · 390 阅读 · 0 评论 -
Java 冒泡排序算法
简介在写冒泡之前,我先简单的说明一些信息,方便同学们学习,比如:1、排序的定义2、排序的分类3、排序的基本情况4、冒泡排序的思路5、代码实现1.排序的定义所谓排序:就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法,在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析。2.原创 2020-12-07 16:51:41 · 540 阅读 · 0 评论 -
设计模式之状态模式
概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类使用场景1.一个对象的行为取决于它的状态,状态改变,行为改变 2.包含大量跟状态相关的条件UML大家看这个类图,看起来更前一篇策略模式差不多,那么这两个之间有什么区别么?1.Status抽象状态,里面做一些状态相关的事情2.AStatus具体的原创 2016-09-08 14:34:15 · 895 阅读 · 0 评论 -
设计模式之策略模式
概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义策略模式定义了一系列的算法,并将每一个算法封装起来,他们之间还可以相互替换,策略模式独立于使用它的客户而独立变化使用场景1.同一类问题的多种处理方式 2.安全的封装多种同一类型的操作 3.同一抽象类有多个子类,需要if-else来选择具体的子类UML以上类图,非常简单,不用做过多解释,在使用设计模式演示例子之前,大原创 2016-09-07 15:20:06 · 1285 阅读 · 0 评论 -
设计模式之原型模式
概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象使用场景1.类初始化需要非常多的资源,非常的耗时间 2.通过new产生非常复杂的数据准备或者访问的权限 3.一个对象需要提供给多个调用者使用,并且可能修改其值UML上里面的类图很简单,我就做一个简单的介绍1.IPrototype定义的原型接口,里面就一个原创 2016-09-06 14:25:17 · 873 阅读 · 2 评论 -
Java gc回收机制
一、概要垃圾回收又称gc, gc是运行在Jvm中,回收应用程序中创建的一些无用的对象(学习过Java的人都应该知道)。前面讲解了几篇相关的内容,大家要了解gc的回收机制,不妨先去看看我上一篇:Java Jvm运行机制 http://blog.csdn.net/u011546655/article/details/52175550,好做到一个承上启下的效果。二、问题概要大家在学习gc的回收机制之前,还原创 2016-08-11 20:03:41 · 3313 阅读 · 3 评论 -
设计模式之代理模式(动态代理)
概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。简介在上一篇已经大概讲解了代理模式,相信大家对代理模式有一定的了解了,如果没有不妨先去看看上一篇 设计模式之代理模式(静态代理)相信大家肯定有收获,如果有了一定的基础,那么在去看,相信理解会更加快,而且非常容易明白。代码演示因为上一篇已经比较详细的分析过了,所以直接上代码了(1)定义代理接口package com.zeng原创 2016-08-30 19:05:48 · 2355 阅读 · 4 评论 -
设计模式之代理模式(静态代理)
概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义为其它的对象提供一种代理,以控制这个对象的访问使用场景当不想直接访问某个对象的时候,就可以通过代理1.不想买午餐,同事帮忙带 2.买车不用去厂里,去4s店 3.去代理点买火车票,不用去车站UML介绍下上面的UML图的意思,以购买火车票为例(1)IProxy定义代理的接口,买票(2)ProxyObject代理的对原创 2016-08-30 15:01:19 · 5364 阅读 · 0 评论 -
设计模式之工厂方法模式
概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义定义一个用于创建对象的接口,让其子类去决定实例化那个类使用场景任何使用复杂对象的地方,都可以使用工厂模式UML1.抽象工厂抽象工厂:我们都知道,工厂,一般只有一个作用,那就生产,比如,吉利汽车厂,那就制造吉利汽车,iphone手机制造厂就造iphone等等 所以可以用一个简单的方法概括,就是create();2.具原创 2016-08-31 14:40:27 · 1328 阅读 · 0 评论 -
Java 堆和栈的区别
1、概述在Java中,内存分为两种,一种是栈内存,另一种就是堆内存。2、堆内存1.什么是堆内存?堆内存是是Java内存中的一种,它的作用是用于存储Java中的对象和数组,当我们new一个对象或者创建一个数组的时候,就会在堆内存中开辟一段空间给它,用于存放。2.堆内存的特点是什么?第一点:堆其实可以类似的看做是管道,或者说是平时去排队买票的的情况差不多,所以堆内存的特点就是:先进先出,后进后出,也原创 2016-08-10 12:59:31 · 51021 阅读 · 17 评论 -
Java 多线程断点下载原理
其实多线程断点下载原理,很简单的,那么我们就来先了解下,如何实现多线程的断点下载,首先:你必须明白第一点,那么就是,什么是多线程下载,该知识点可以查看本博客上一篇文章,Android之多线程下载原理,断点下载呢,其实就是在这个的基础之上添加了一些东西,那么添加了什么东西了,现在来做一个详细的了解。1.在下载的过程中,边下载,变用一个文件来记录下载的位置,也就是下载了多少的数据1.创建文件原创 2015-01-06 20:58:30 · 1009 阅读 · 0 评论 -
设计模式之抽象工厂模式
概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义为创建一组相关或者相互依赖的对象,提供一个接口,但是不需要指定他们的具体类使用场景一组对象具有相同的约束条件的可以使用抽象工厂模式,是不是有点感觉好模糊,有点抽象?简单的来讲,就是两种产品,具有不同的特性比如:1.市场上的白加黑,虽然都能治疗感冒,由不同的商家产出,成分肯定不同,特性效果肯定不一样2.比如奥迪汽车,有q原创 2016-09-01 14:50:11 · 1376 阅读 · 1 评论 -
Java Jvm运行机制原理
一:简介在学习Java虚拟机之前,也就是Jvm之前,我想大家能够带着问题去学习,这样的话,大家学习起来也会比较有所获!1.Java虚拟机(Jvm)是什么? 2.Java虚拟机是用来干什么的? 3.Java虚拟机它的体系结构是什么样子的? 4.Java虚拟机在工作做扮演什么角色? 5.Java虚拟机在运行时数据区?二:Jvm基础概念Java虚拟机(Jvm)是可运行Java代码的假想计算机Ja原创 2016-08-10 19:38:00 · 43726 阅读 · 6 评论 -
设计模式之Builder模式
概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义将一个复杂的对象的创建和它的表示分离,可以让不同的创建过程,创建出不同的对象使用场景1.相同的构造,不同的执行方法,产生不同的对象,比如:Dialog 2.多种零件,组成一个对象中,产出不同的结果 3.产品复杂,顺序不同,有不懂的结果 4.初始化对象,参数很多,但是有些是默认的,比如ImageLoaderUMLU原创 2016-09-02 14:58:10 · 1020 阅读 · 2 评论 -
设计模式之观察者模式
概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义对象间一对多的关系,当对象发生改变,所有跟其对象依赖的对象都会得到通知,发生改变使用场景1、夜间模式,关联行为场景 2、事件多级触发改变 3、消息交换场景,通知改变UML看上面的图,我们应该能够很清晰的知道,他们之间的情况。(1)被观察者被观察者:只能有一个,它也只有一个方法,那就是通知所有的观察者(2)具体观察原创 2016-08-30 12:02:40 · 1009 阅读 · 0 评论