- 博客(87)
- 资源 (1)
- 收藏
- 关注
原创 手动实现-队列
队列:基本概念:队列也是一种操作受限的线性表。只能在一端进行插入而在另一端进行删除。允许插入的一端称为队尾【rear】,允许删除的另一端称为队头【front】。队头删除元素称作出队,队尾插入元素称为进队。队列ADT:顺序队列:队列顺序存储就是使用数组依次存储相应数据元素。此时队列称为顺序队列。通常进队列数据由低地址到高地址一次存放。队头元素是数组中首元素。pub...
2018-04-30 10:51:08
663
原创 手动实现-栈
栈:基本概念:栈也称作堆栈,逻辑上可以看作是一种特殊的线性表,其特殊性在于数据插入和数据删除受限,只能在线性表的同一端进行。栈的操作原则是“后进先出”,即LIFO(last in,first out).我们形象地将栈的插入和删除操作称作入栈和出栈。栈ADT基本操作:1.出栈操作和取栈操作的区别:出栈是将栈顶元素删除,操作后原来的次顶元成为新的栈顶元素;取栈顶元素只是读取栈顶元素...
2018-04-29 10:06:26
594
原创 Ubuntu下安装并配置FastDFS
当我们实践项目的时候,当加载的图片一多性能就会变差。这时候,采用分布式文件系统就显得特别有必要。FastDFS模块简介:FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和 客户端(Client)。Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage s...
2018-04-21 19:08:48
1391
原创 一次坑爹的Ubuntu的dpkg error
Ubuntu下apt-get命令错误dpkg错误返回码(2):apt-get显示的错误情况是: dpkg: error: unable to create new file '/var/lib/dpkg/info/format-new': 没有那个文件或目录 E: Sub-process /usr/bin/dpkg returned an error code (2) )到/...
2018-04-20 07:24:35
14253
4
原创 手动实现HashMap和HashTable
散列的具体实现:1.HashSet2.HashMap为什么使用散列:散列可以提供平均时间复杂度为O(1)的实现方法。散列表的定义:散列表(哈希表),是指可以通过关键字key直接访问到内容value的一种数据结构。可以一个value对应多个key,但是一个key只能对应一个value,其中是通过key映射到一个位置上,来直接访问value。手动实现散列表【ha...
2018-04-10 09:08:15
332
原创 手动实现系列--线程池
线程池在我们的开发和学习之中会经常用到,我之前学习时我总是浮于表面,以后会多总结些有自己理解的知识内容,希望通过思考加深记忆和理解。如何手动实现一个线程池呢???1.首先定义一个存放所有线程的集合2.其次,没有一个任务分配给线程池,就从线程池 中分配一个线程处理它。但是当线程池中的线程 都在运行状态,没有空闲线程时,我们还需要一个队列来存储提交给线程池的任务。3. ...
2018-04-03 22:41:31
907
原创 适配器模式
适配器模式:定义:适配器模式(Adapter Pattern)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。结构分析:说明:Client:客户端,调用自己需要的领域接口TargetTarget:定义客户端需要的跟特定领域接口Adaptee:已经存在的接口,但与客户端要求的特定领域 接口不一致,需要适配...
2018-03-31 14:40:40
127
原创 maven-创建web项目
在学习了maven基础知识之后,再操刀实践一下maven项目。因为网上各位大佬记录的记录得比较分散,于是记录下来供自己以后查阅。一.创建项目:1.MyEclipse创建项目:选中Maven Project,点击Next.继续NextCatalog:选中All Catalog,选maven-archetype-webapp后,NextGroupId:为...
2018-03-28 19:10:35
329
原创 MySQLWorkbench使用-导出数据表关系图
因为常使用MySQL作为工具建立数据库,多表时需要更好地表现各表之间的联系。MySQLWorkbench即为较好的选择。
2018-03-18 15:33:27
7076
1
原创 外观模式
外观模式: 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个【高层的】统一的访问接口,这个接口使得子系统更容易被访问或者使用。 结构: 1).门面角色【Facade】:外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合。...
2018-03-12 14:18:30
366
原创 简单工厂模式
简单工厂模式:简介:简单工厂模式又名静态工厂方法模式,是所有工厂模式中最简单的一个,它定义一个具体的工厂类来负责创建所有类的对象并初始化创建的对象,它主要由3部分组成:工厂类、抽象类、实现抽象类的具体类,然后通过客户端调用工厂类创建相应的对象。注意:简单工厂模式不属于GoF总结的23种设计模式,它是相当于初学java的HelloWorld案例,帮助初学者了解设计模式,增长信心的...
2018-03-10 17:25:54
182
原创 单例模式
单例模式 本文主要介绍单例模式的简单实现和功能单例模式功能:用来保证类在运行期间只会创建一个类实例,另外单例模式还提供唯一访问这个类实例的访问点,就是那个getInstance()方法。不管采用哪种实现,都是只关心类实例的创建问题,并不关心具体的业务功能。单例模式的特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单...
2018-03-10 14:54:56
151
原创 JavaWEB+JS+jquery-1.11.1.min.js导入MyEclipse报错
尝试项目时,导入jquery-1.11.1.min.js会报错 如下图 所示: 修正方法:第一步:选中jquery-1.11.1.min.js 第二步:右键,选中MyEclipse选项 第三步:选中Exclude from Validation 第四步:选中Run Validation OK,大功告成. ...
2018-03-01 08:02:23
754
原创 静态代理与动态代理
前言:学习Spring源码时,其中非常重要的一点就是代理模式,今天就好好记录一下我的学习过程。什么是代理模式:非常直观的办法就是从UML图来分析。 从UML图我们可以清晰的看出代理模式的本质就是给某一个对象提供代理对象,并由代理对象控制对原对象的引用。代理模式的分类:静态代理动态代理其中,动态代理又可分为: 1.jdk动态代理 2.cglib动态代...
2018-02-28 19:49:35
203
原创 知错就改之MySQL插入中文字段报错
前言:在MySQL中插入中文字段会报ERROR 1366错误。 网上找了些相同问题的解决方法,没能解决我的问题,摸索了半天之后才初步解决问题,仅记录下来,以便日后查阅,同时也方便遇到同样问题的小伙伴解决。问题情景再现:利用status命令查看MySQL的运行情况:发现server,db,client,conn都是utf8字符集编码尝试将数据库和表的字符集编码设置为
2018-01-23 22:21:58
1674
原创 跌跌撞撞的2017有感
蓦然回首,2018逼近,距离自己刚踏入校园已有3年之久。昨日恍然如梦,似乎不是那么真真切切。若有所思所感,就全写入这博客里。到通信工程学院报道的第一天,那时我还是那么青涩懵懂【ps:有点傻^_^,高德地图都把我在学校导迷路了】。后来加入了院科协,在各位学长学姐的光芒照耀下,我逐渐对自己所学的专业有了比较清晰的认知【ps:当年报专业时还以为信息工程是什么高端专业->->】。接着,又进入了创新学院,有模
2017-12-31 19:52:07
258
原创 分析ArrayList和LinkedList的区别
我们总说数组随机访问时性能更优,链表在进行增删操作时性能更优。姑且试着从JDK源码的ArrayList和LinkedList一看究竟吧。以增加和删除元素分析ArrayList和LinkedListadd操作:public boolean add(E e) {ensureCapacity(size + 1); // Increments modCount!!elementData[size++]
2017-12-05 20:50:58
283
原创 插入排序
插入排序分为直接插入排序和希尔排序两种。直接插入排序:基本思想:假设待排序的记录存放在数组R[1..n].初始时。R[1]自成一个有序区域,R[2…n]为无序区域。从i=2到i=n为止,依次将R[1..i-1]中,生成n个记录的有序区域方法:首先在当前有序区域R[1..i-1]中查找R[i]的正确插入位置k[1<=k<=i-1]:然后将R[k..i-1]中的记录均后移一个位置,腾出k位置圣的空间插入
2017-11-20 23:35:31
155
原创 冒泡排序
冒泡排序基本思想:基本思想:通过相邻两数间的比较和交换,使得数值较小的数逐渐从底部向顶部转移。排序较大的数逐渐从顶部移到底部,就像水底气泡向上冒。关于时间复杂度:1.最好时间复杂度初始状态正序,一趟扫描即可完成排序。所需关键字比较次数C 和 记录移动次数 M 均达到最小值: Cmin= n-1,Mmin=0冒泡排序最好的时间复杂度是O(n)2.最坏时间复杂度初始状态为反序,n-1趟排序每趟排序进行
2017-11-16 20:36:12
211
原创 桶排序
工作原理:1.将数组分到有限数量的桶里。2.每个桶再进行个别排序【使用其他排序算法或者以递归实行桶排序】由此可以看出桶排序利用了分治思想。利用桶排序解决{7,21,8,23,31,32,43}的排序问题:基于二维数组的实现:public class BucketSort{ public static void bucketSort(int[] arr){ //分桶,这里采用映射
2017-11-15 16:31:25
206
原创 mysql-数据类型
平常进行数据库操作时,字段的数据类型可能并不是很起眼,但是它对于减少内存占用和提高效率非常有帮助,而这就需要我们对数据类型有着清晰的认知。char,varchartime,date,datetimetimestamp
2017-10-28 13:40:35
224
原创 mysql多表
实际开发中,总是多表情况,所以学会设计多表的情况是及其必要的分类表:create table category( cid varchar(32) primary key comment '分类编号', cname varchar(100) comment '分类名称')comment '分类表';商品表:create table product( pid varchar(32) pri
2017-10-24 13:57:21
338
原创 Javadoc编写文档注释
Javadoc生成注释文档:javadoc:作为提取注释的工具,也是JDK安装的一部分。可查找程序内特殊注释文档。生成HTML文件语法介绍:所有javadoc都只能在”/*”和”/”之间使用javadoc的方式主要有两种:1.嵌入HTML或者“文档标签”2.独立文档标签是一些以”@”字符开头的命令,且要至于注释前的最面,行内文档标签出现在javadoc注释的任何地方,也是以“@”开头,但要在{}内共
2017-10-23 21:43:27
483
原创 Java中异常处理-finally和return执行顺序
昨天在看《Java程序员面试指南》时被异常处理机制的执行顺序try-catch-finally
2017-10-17 13:50:55
436
原创 Java多线程2
Java多线程中访问同一资源时容易引发资源竞争,而线程互斥是解决线程间资源竞争的手段。线程互斥:若干个线程若要使用同一共享资源,任何时刻最多允许一个线程使用,其他要使用该资源的线程必须要等待,直到占有资源的线程释放资源。Java利用synchronized实现资源互斥synchronized有两种用法
2017-10-10 20:47:25
218
原创 Java异常处理机制
参考: w3c中关于异常处理Java异常处理机制结构图:从大体来分异常为两块:error 错误 : 是指程序无法处理的错误,表示应用程序运行时出现的重大错误。例如jvm运行时出现的OutOfMemoryError以及Socket编程时出现的端口占用等程序无法处理的错误。 Exception 异常 :异常可分为运行时异常跟编译异常 1)运行时异常:即RuntimeException及其之
2017-10-05 12:12:33
267
原创 MyEclipse下通过文件夹区分工程层次
点击 package Explorer 窗口的 倒三角形package Explorer 窗口的 倒三角形 Configure Working Sets即为设置工作层次3.将项目移动到不同文件夹下通过new可以生成新的文件夹项目
2017-10-04 19:43:19
509
原创 泛型编程浅析
Java泛型的构成泛型变量起到的作用:(给编译器带来类型检查的信息)泛型属于Java的语法糖的一种,提高了Java的健壮性和降低了程序的复杂性泛型的好处:简单易用消除强制类型转换保证类型安全直接提高了代码的重用率下面就是一个使用泛型的小例子,简单表现了泛型的优点:
2017-09-24 15:09:10
595
原创 Collection容器初探之LinkedList
JDK1.6版本的LinkedList的源码JDK1.7版本的LinkedList的源码循环双向循环链表双向链表
2017-09-13 18:07:58
275
原创 集合遍历之Iterator与foreach
遍历集合时,我们是用iterator()还是foreach呢,今天就让我来分析下,还望各位看官多多指点一下iterator中:迭代器是一种模式,使得相对于序列类型的数据结构的 遍历和被遍历的对象分离 即无需关心该序列的底层结构。Iterator提供了一种访问一个容器对象中的各个元素而又不暴露对象内部结构的方法。所以迭代器又被认为是轻量级的容器迭代器使用的注意事项: 1.使用iterator()
2017-09-11 22:34:55
2056
原创 MyEclipse中server服务窗口的问题
myeclipseCould not create the view: An unexpected exception was thrown.这样的问题
2017-09-03 12:07:14
1868
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人