自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构---队列

队列与栈相似,队列是另一种顺序存储元素的线性数据结构。栈与队列的最大差别在于栈是LIFO(后进先出),而队列是FIFO,即先进先出。使用场景因为队列先进先出的特点,在多线程阻塞队列管理中非常适用。队列的特性:在队尾插入元素,在队首删除元素。FIFO(先进先出),就向排队取票一样。队列的实现顺序队列的实现使用动态数组实现队列public class ArrayQueue {...

2019-11-08 18:39:50 167 1

原创 数据结构---栈

栈栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。 栈的特点是:先进后出,或者说是后进先出,从栈顶放入元素的操作叫入栈,取出元素叫出栈。栈的基本操作创建栈、销毁栈、出栈、入栈、获取栈顶元素、获取栈的大小、清空栈。栈的Java实现栈的实现方式主要分为两种,一种是基于数组实现的,另一种则是基于链表。顺序存储的栈称为顺序栈;链式存储的栈称为链式栈。不管是基于何种形...

2019-11-08 18:30:56 222

原创 数据结构---链表

链表什么是链表链表是通过指针把一组零散的内存块串联在一起的线性数据结构。链表和数组的内存分布如下图所示:可以看出,链表和数组的最大区别在于,数组需要一块连续的内存空间来存储,对内存的要求较高。而链表不需要连续的内存空间,它通过指针将一组零散的内存块串联起来使用。根据指针的不同使用方式,链表又可以分为单链表、双向链表和循环链表。单链表结点包括当前数据和后继结点的地址双向链表结点...

2019-11-06 17:23:29 185

原创 数据结构---数组

数组数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同类型的数据。关键点:连续的存储空间 — 就保证了数组可以进行随机访问优点:1、按照索引查询元素速度快2、按照索引遍历数组方便缺点:1、数组的大小固定后就无法扩容了2、数组只能存储一种类型的数据3、添加,删除的操作慢,因为要移动其他的元素。适用场景:频繁查询,对存储空间要求不大,很少增加和删除的情况。...

2019-11-06 14:22:05 358

原创 JDBC学习笔记

JDBC第1章 原生JDBC1.1 JDBC概述JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商...

2019-11-06 13:20:30 417

原创 排序算法之希尔排序

希尔排序希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位;希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个...

2019-11-04 16:18:42 117

原创 排序算法之堆排序

堆排序堆排序是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法:大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列;小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;堆排序的最好、最...

2019-11-04 16:08:24 110

原创 排序算法之桶排序

桶排序桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。为了使桶排序更加高效,我们需要做到这两点:在额外空间充足的情况下,尽量增大桶的数量使用的映射函数能够将输入的 N 个数据均匀的分配到 K 个桶中同时,对于桶中元素的排序,选择何种比较排序算法对于性能的影响至关重要。1、什么时候最快当输入的数据可以均匀的分配到每一个桶中。2、什么时候最慢当...

2019-11-04 15:58:34 91

原创 排序算法之基数排序

基数排序基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。1、基数排序 vs 计数排序 vs 桶排序这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差异:基数排序:根据键值的每位数字来分配桶;计数排序:每个桶只存储单一键值;桶排序:每...

2019-11-03 20:23:03 598

原创 排序算法之计数排序

计数排序计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。1、计数排序的特征当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小...

2019-11-03 20:03:47 279

原创 排序算法之快速排序

快速排序快速排序在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法策略来把一个串行(list)分为两个子串行(sub-lists)。快速排序又是一种分而治之思想在排...

2019-11-03 19:34:37 283

原创 排序算法之归并排序

归并排序归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法:自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第 2 种方法);自下而上的迭代;JavaScript没有对递归进行优化。运用递归函数不仅没有运行速度上的优势,还可能造成程序运行失败。因此不建议使用递归。和选择...

2019-11-03 19:21:50 187

原创 排序算法之插入排序

插入排序插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。1、算法步骤将第一待排序序列第一个元素看做一个有序序列,把第二个元素...

2019-11-03 15:42:34 147

原创 排序算法之选择排序

选择排序选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。1、算法步骤首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。2、动图演示3、代码实现Jav...

2019-11-03 15:37:40 115

原创 排序算法之冒泡排序

冒泡排序冒泡排序也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位,所以最熟悉。冒...

2019-11-03 15:26:05 165

原创 设计模式之原型模式

原型模式原型模式是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。介绍意图:用原型...

2019-11-02 23:20:36 86

原创 设计模式之建造者模式

建造者模式建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。用户只需要给出指定复杂对象的类型和内容;建造者模式负责按顺序创建复杂对象(把内部的建造...

2019-11-02 22:45:35 142 1

原创 设计模式之模板模式

模板模式在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何时使用:有一些通用的方法。...

2019-11-02 22:14:29 85

原创 设计模式之观察者模式

观察者模式当对象间存在一对多关系时,则使用观察者模式。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依...

2019-11-02 22:06:24 78

原创 设计模式之策略模式

策略模式在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维...

2019-11-02 21:44:53 165

原创 设计模式之装饰器模式

装饰器模式装饰器模式(Decorator)也叫包装器模式(Wrapper)。允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。介绍意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。主要解决...

2019-11-02 21:29:47 87

原创 设计模式之代理模式

代理模式在代理模式中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。介绍意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),...

2019-11-02 20:53:01 93

原创 设计模式之适配器模式

适配器模式适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。介绍意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于...

2019-11-02 18:33:59 85

原创 Enum 枚举

Enum 枚举enum 枚举类型 是 JDK1.5中引入的新特性,存放在 java.lang包中创建注意 : 应在类中创建一般在该实体类的包下在新建一个enumeration包,把枚举类型的类写在enumeration包下,例如:public enum EnumTest { MON, TUE, WED, THU, FRI, SAT, SUN;}然后在实体类里引用这个枚举...

2019-11-02 16:12:15 1144

原创 注解

注解1 注解概述定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。作用分类:编写文档:通过代码里标识的注解生成文档【例如,生成文档doc文档】代码分析:通过代码里标识的注解对代码进行分析【例如,注解的反射】...

2019-11-02 16:09:52 167

原创 正则表达式

正则表达式主要用于操作字符串虽然减少了代码量,阅读性差了&与|或[abc]匹配abc中的一个,要么是a,要么是b,要么是c()组默认第1组()\1第一组出现1次()\1+第一组出现多次;从左往右看左括号((a)(b©)) 第一组(a)(b©) 第二组a 第三组b© 第四组c\\\以下均需要两个\...

2019-11-01 22:21:18 96

原创 设计模式之工厂模式

工厂模式工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计...

2019-11-01 22:13:18 111

原创 java线程、线程池

Thread线程进程与线程进程:进程就是操作系统运行的一个程序线程:线程就是进程的一个执行单元,一条执行路径 如启动360安全卫士就是打开一个进程, 它的电脑体检/木马查杀/系统清理等就是这个进程的几个执行单元, 每个执行单元就是一个线程 迅雷就是一个进程, 可以同时下载多部电影, 每一部电影的下载就是一条执行路径,就是迅雷进程的一个线程 一个进程至少有一个线程, 如果进程有多...

2019-10-31 22:37:44 108

原创 设计模式之单例模式

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必...

2019-10-31 22:01:59 58

原创 六大设计原则

一、开闭原则。开闭原则是总纲,要求一个软件实体,如类,模块和函数应该对外扩展开发,对内修改关闭。解读:用抽象构建框架,用实现扩展细节。不以改动原有类的方式来实现新需求,而是应该以实现事先 抽象出来的接口(或具体类继承抽象类)的方式来实现。开闭原则认为:程序一旦开发完成,程序中的一个类的实现只应该因错误而被修改,新的或者改变的特性应该通过新建不同的类实现,新建的类可以通过继承的方式来重用原类...

2019-10-31 21:45:20 74

原创 Socket网络编程

Socket网络编程网络模型1. OSI(开放系统互连)参考模型 分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层2. TCP/IP参考模型 分为:应用层、 、传输层、网际层、主机至网络层网络通讯三要素1. IP地址    &amp...

2019-10-31 21:22:13 233

原创 Stream流

Stream流java 8 中的流,其实就是Stream接口的对象JDK提供了一个流接口:java.util.stream.Stream如何获取流根据集合获取流:集合名.stream()ArrayList<String> list = new ArrayList<String>();Stream<String> streamA = l...

2019-10-29 19:49:53 102

原创 Labbda表达式

由于技术有限,可能理解不到位,或者有错误,希望大家及时指出,共同成长Labbda表达式java中Lambda表达式前提:有函数式接口的推断环境函数式接口是有且仅有一个抽象方法的接口,可以有实现方法函数式接口的推断环境Calculator param = (int a,int b) -> { return a + b };calc(param);calc((a, b) -&...

2019-10-29 19:46:32 575

原创 变长参数方法

由于技术有限,可能理解不到位,或者有错误,希望大家及时指出,共同成长变长参数方法定义:方法属性 返回值 方法名( 参数类型 参数名 , 类型 … 参数 ){方法体;}说明:一个方法最多有一个可变长参数可变长参数只能放在参数列表的最后在方法体中, 把可变长参数当作数组使用即可例子public class Test { public static v...

2019-10-29 19:45:09 213

原创 反射

由于技术有限,可能理解不到位,或者有错误,希望大家及时指出,共同成长概述反射:框架设计的灵魂,反射就是根据字节码文件, 反射类的信息,字段,方法,构造方法等类的内容, 根据字节码文件创建对象, 调用方法的技术框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射的好处:可以在程序运行过程中,操作这些对象。可以解耦,提高程序的可扩展性。原理首先需要将...

2019-10-29 19:38:42 75

原创 常见乱码问题解决

中文乱码问题一.编码基础知识1.四种常见编码ISO-8859-1 单字节编码,兼容ASCII码,相当于ASCII码的扩展,无法表示中文字符,系统默认编码GBK 双字节编码,国标码,可以表示繁体字和简体字,而GB2312编码只能表示简体字,GBK兼容GB2312编码UNICODE 定长双字节编码,可以表示所有语言的字符,不兼容任何编码,很多软件内部是使用unicode编码来处理的UTF ...

2019-06-05 18:39:36 1171

myeclise 2008 8.0

百度网盘下载地址 链接: https://pan.baidu.com/s/1rFJ0_WJ1hx5P_n9OAMBgXg 密码: 88w6 附: 根据二○○二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬! 鉴于此,也希望大家按此说明研究软件!谢谢

2018-12-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除