- 博客(62)
- 资源 (9)
- 收藏
- 关注
原创 JS实现列表数据左右、上下移动功能
本文主要介绍JS实现将左边下拉框列表选中项数据添加到右边的功能,支持多选移动。文章中提供了两种方案,一种是将左侧选中项复制到右边,左侧数据不发生变化,同时阻止数据重复添加到右侧;另一种是数据添加到右边的同时从左边移除,从右边移除的同时向左边追加,并对右侧列表数据实现了上下移动功能。一、效果图 进行左右移动时,选定一项或多项点击添加或移除(按住shift或ctrl可以多选),上下移动不支持多选...
2018-04-13 16:46:51
9687
原创 PDF.js使用总结
PDF.js使用总结PDF.js是为html5实现的在线预览pdf框架,所以使用的前提是浏览器要支持html5。该插件不需要任何本地支持,对浏览器的兼容性也比较好(低版本的IE浏览器请绕行)。 本文记录了pdf.js插件使用方式和框架构建过程中遇到的一些问题,主要实现了以文件路径和文件流的方式预览的功能,通过修改源码对预览页面下载、打印按钮可操作性进行了控制,同时在预览界面添加了关闭按钮...
2018-03-15 17:03:37
21916
4
原创 Select2学习总结
本文主要是对Select2插件常用使用方法的一些总结。包括其单选、多选、分组显示、按照拼音搜索功能。并通过测试示例对其效果进行了验证。 一、效果图 二、 使用方式1.使用前需要引入下面几个插件: select2.css或者select2.min.css select2.js或者select2.min.js jquery-2.0.3.min.js<link...
2017-12-12 11:56:14
23457
5
原创 C#实现Word转PDF
本文主要是采用C#将wps文件转为PDF。需要提前安装好WPS,并在程序中添加引用using Microsoft.Office.Interop.Word; 具体源码如下所示:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.IO;using Micro
2017-10-10 11:39:26
13967
1
原创 Java实现文件上传下载工具类
本篇文章在Eclipse环境下采用Java语言实现文件上传下载工具类。上传时,为避免文件名在服务器中重复,采用“服务器时间(定义到毫秒)+文件名+文件后缀“的方式作为服务器上的文件名;下载过程中利用 spring mvc ResponseEntity 做文件下载,返回的是字节流,下载成功后可自定义文件的保存路径。具体源码如下所示:package com.utils;import java.io.Fi
2017-10-10 08:52:54
8898
原创 C#实现文件上传下载工具类
本篇文章在VS2013环境下采用C#语言实现将文件上传和下载功能。上传时,为避免文件名在服务器中重复,采用“服务器时间+8位随机码+文件名+文件后缀“的方式作为服务器上的文件名;下载采用的是WebAPI的方式进行的,下载成功后可自定义文件的保存路径。具体源码如下所示:using System;using System.IO;using System.Net;using System.Net.H
2017-10-09 17:24:05
5814
2
原创 session过期后自动跳转到登陆页
**通过过滤器的方式实现 session过期后自动跳转到登陆页** 过滤器只在与servlet规范2.3版兼容的服务器上有作用。如果你的Web应用需要支持旧版服务器,就不能使用过滤器。 一. 建立基本过滤器建立一个过滤器涉及下列五个步骤: 1)建立一个实现Filter接口的类SessionFilter 。这个类需要三个方法,分别是:doFilter、init和destroy。doFilter
2016-11-14 11:38:22
21541
3
原创 面试总结------黑盒、白盒测试相关
黑盒、白盒测试黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。一、黑盒测试(又叫功能测试或数据驱动测试) 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求
2016-11-14 11:15:06
8824
1
原创 面试总结-----工程化软件项目开发的流程、步骤
工程化软件项目开发的流程、步骤需求分析 (1)相关系统分析员向用户初步了解需求,然后用相关的工具软件列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。 (2)系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚列出系统大致的大功能模块,大功能
2016-11-14 11:11:59
2820
原创 面试总结------常用SQL语句
面试总结——常用SQL语句说明:创建数据库 CREATE DATABASE database-name;说明:删除数据库 DROP DATABASE database-name;说明:创建新表 create table depart (dept_id int(11) NOT NULL AUTO_INCREMENT, dept_name varchar(255) DEFAULT NULL
2016-11-14 11:09:48
22699
1
原创 面试总结------Spring框架相关
1. spring IOC与AOP思想的理解控制反转(IOC):所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。依赖注入(DI):在运行期,由外部容器动态地将依赖对象注入到组件中,从而创建用对象之间协作关系(也称为装配)。在代码中的展现形式是在配置文件applicationContext.xml
2016-11-14 10:40:15
8465
1
原创 面试总结------Java基础
1.为什么内部类访问的外部变量需要使用final修饰 ?因为生命周期的原因。方法中的局部变量,方法结束后这个变量就要释放掉,final保证这个变量始终指向一个对象。 首先,内部类和外部类其实是处于同一个级别,内部类不会因为定义在方法中就会随着方法的执行完毕而跟随者被销毁。问题就来了,如果外部类的方法中的变量不定义final,那么当外部类方法执行完毕的时候,这个局部变量肯定也就被GC了,然而内...
2016-11-14 10:30:26
1265
原创 面试总结------Java内存管理与多线程
面试总结——Java内存管理与多线程1. 什么是线程?什么是进程?同一进程下的线程共享线程:程序在执行过程中,能够执行程序代码的一个执行单元,一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。在Java语言中有4种状态:运行、就绪、挂起、结束。进程:指一段正在执行的程序。线程有时也被称为轻量级进程,它是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空
2016-11-14 09:57:54
4462
1
原创 抽象类与接口
面向对象设计的重点在于抽象,那Java接口和Java抽象类就有它存在的必然性了。正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。 Java接口(interface)和Java抽象类(abstract class)代表的就是抽象类型,就是我们需要提出的抽象层的具体表现。OOP面向对象的编程,如果要提高程序的复用率,增加程序 的可维护性,可扩展性,就必须是面向接口的编程,面向抽象的编程,正确地使用接口、抽象类这些有用的抽象类型
2016-06-07 18:00:39
4570
3
原创 面向对象编程三大特性------封装、继承、多态
本文是对面向对象编程三大特性(封装、继承、多态)的一个学习总结。封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现多态做了铺垫。多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪
2016-06-07 11:41:12
191021
26
原创 【数据结构】链表的原理及与其相关的常见面试题总结
链表是一种数据结构,和数组同级。比如,Java中我们使用的ArrayList,其实现原理是数组。而LinkedList的实现原理就是链表了。链表在进行循环遍历时效率不高,但是插入和删除时优势明显。下面对单向链表做一个介绍。 单向链表是一种线性表,实际上是由节点(Node)组成的,一个链表拥有不定数量的节点。其数据在内存中存储是不连续的,它存储的数据分散在内存中,每个结点只能也只有它能知道下一个结点的存储位置。由N各节点(Node)组成单向链表,每一个Node记录本Node的数据及下一个Nod
2016-06-06 09:49:49
5346
1
转载 HashMap HashTable HashSet区别剖析总结
HashMap、HashSet、HashTable之间的区别是Java程序员的一个常见面试题目,在此仅以此博客记录,并深入源代码进行分析:
2016-06-06 09:05:24
2716
1
转载 【数据结构】HashTable原理及实现学习总结
有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,value)方法保存起来,然后通过get(key)方法获取相对应的value值。一个是前面提到的HashMap,还有一个就是马上要讲解的HashTable。对于HashTable而言,它在很大程度上和HashMap的实现差不多,如果我们对HashMap比较了解的话,对HashTable的认知会提高很大的帮助。他们两者之间只存在几点的不同,这个后面会阐述。
2016-06-04 11:36:52
9377
原创 【数据结构】HashSet原理及实现学习总结
在上一篇博文(HashMap原理及实现学习总结)详细总结了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素。所以如果对HashMap比较熟悉,那么HashSet的原理应该很好理解!一.HsahSet概述HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变
2016-06-03 17:39:15
10476
转载 HashMap源码分析
在前篇博文中(HashMap原理及实现学习总结)详细总结了HashMap的原理及实现过程,这一篇是对HashMap的源码分析。
2016-06-03 16:32:14
1361
原创 【数据结构】HashMap原理及实现学习总结
HashMap是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构。本篇主要是从HashMap的工作原理,数据结构分析,HashMap存储和读取几个方面对其进行学习总结。关于HashMap的完整源码分析请查看下一篇。一. HashMap的工作原理HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象
2016-06-03 15:10:50
9833
原创 【Spring】SpringMVC整合JPA
这篇文章是在SpringMVC的基础上对数据持久层JPA的整合,实现了应用层和数据库的数据交互。在整合JPA前,请先参照下面第一篇博文搭建好SpringMVC框架。一. 和本篇博文相关的一些基础知识请参考下面几篇博文:SpringMVC框架的搭建和配置详解请参考:http://blog.csdn.net/jianyuerensheng/article/details/51258942。JPA的O
2016-05-09 12:45:18
20758
原创 【面试笔试】数据库相关
1.存储过程和函数的区别 存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。2.事务是什么?事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务: 原子性 事务必须是原子工
2016-05-05 17:47:38
769
转载 【面试笔试】软件测试相关
软件测试的目的在软件测试设计中,软件测试的主要目的是(D)。 A.实验性运行软件 B.证明软件正确 C.找出软件中全部错误 D.发现软件错误而执行程序 (注意:不是为了证明软件的正确性,也不是为了找出全部错误)下列叙述中.不属于测试的特征的是(C)。 A.测试的挑剔性 B.完全测试的不可能性 C.测试的可靠性 D.测试的经济性 软件测试技术与方法 软件测试方法从
2016-05-05 17:42:04
1016
转载 【面试笔试】程序设计基础
一.程序设计方法与风格在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的( C )。 A.安全性 B.一致性 C.可理解性 D.合理性对建立良好的程序设计风格,下面的描述正确的是(A ) A.程序应简单、清晰、可读性好 B.符号名的命名只要符合语法 C.充分考虑程序的执行效率 D.程序的注释可有可无在设计程序时.应采纳的
2016-05-05 17:35:48
2074
转载 【面试笔试】数据结构与算法
基础知识:一.算法的基本概念 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 1.算法的基本特征:可行性,确定性,有穷性,拥有足够的情报。 2.算法的基本要素:算法中对数据的运算和操作、算法的控制结构。 3.算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。 4.算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求二.算法的复杂度 1.算法的时
2016-05-05 17:27:01
2020
1
原创 【排序算法】各种排序算法学习总结
常用排序算法的复杂度分析整理 具体分析如下:1 冒泡排序(BubbleSort)冒泡排序是最慢的排序算法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。它是O(n^2)的算法。步骤: (1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 (2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元
2016-04-27 19:19:05
4240
4
原创 【排序算法】堆排序原理及Java实现
1、基本思想堆是一种特殊的树形数据结构,其每个节点都有一个值,通常提到的堆都是指一颗完全二叉树,根结点的值小于(或大于)两个子节点的值,同时,根节点的两个子树也分别是一个堆。 堆排序就是利用堆(假设利用大顶堆)进行排序的方法。它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列的最大值就是堆顶的根节点。将它移走(其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值),然后将剩余
2016-04-27 18:34:23
26854
11
原创 【排序算法】归并排序原理及Java实现
归并排序就是利用归并的思想实现的排序方法。而且充分利用了完全二叉树的深度特性,因此效率比较高。其基本原理如下:对于给定的一组记录,利用递归与分治技术将数据序列划分成为越来越小的半子表,在对半子表排序,最后再用递归方法将排好序的半子表合并成为越来越大的有序序列。 经过第一轮比较后得到最小的记录,然后将该记录的位置与第一个记录的位置交换;接着对不包括第一个记录以外的其他记录进行第二次
2016-04-27 17:35:43
49655
14
原创 【Spring】Spring MVC原理及配置详解
【Spring】Spring MVC原理及配置1.Spring MVC概述:Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。Spring MVC
2016-04-27 10:14:29
372709
49
原创 【排序算法】希尔排序原理及Java实现
希尔排序也成为“缩小增量排序”,其基本原理是,现将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后在对所有元素进行一次直接插入排序。因此,我们要采用跳跃分割的策略:将相距某个“增量”的记录组成一个子序列,这样才能保证在子序列内分别进行直接插入排序后得到的结果是基本有序而不是局部有序。
2016-04-27 09:19:55
31148
19
原创 【排序算法】快速排序原理及Java实现
快速排序是我们之前学习的冒泡排序的升级,他们都属于交换类排序,都是采用不断的比较和移动来实现排序的。快速排序是一种非常高效的排序算法,它的实现,增大了记录的比较和移动的距离,将关键字较大的记录从前面直接移动到后面,关键字较小的记录从后面直接移动到前面,从而减少了总的比较次数和移动次数。同时采用“分而治之”的思想,把大的拆分为小的,小的拆分为更小的,其原理如下:
2016-04-27 09:08:20
102222
37
原创 【排序算法】插入排序原理及Java实现
直接插入排序的基本操作是将一个记录插入到已经排好的有序表中,从而得到一个新的、记录数增1的有序表。对于给定的一组记录,初始时假定第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直到最后一个记录插到有序序列中为止。
2016-04-26 21:32:36
34245
7
原创 【排序算法】选择排序原理及Java实现
选择排序是一种简单直观的排序算法,其基本原理如下:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录的位置与第一个记录的位置交换;接着对不包括第一个记录以外的其他记录进行第二次比较,得到最小记录并与第二个位置记录交换;重复该过程,知道进行比较的记录只剩下一个为止。
2016-04-26 21:28:30
21567
7
原创 【排序算法】冒泡排序原理及Java实现
冒泡排序顾名思义就是整个过程像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n个记录的最大记录将位于第n位,然后对前(n-1)个记录进行第二轮比较;重复该过程,直到记录剩下一个为止。
2016-04-26 21:26:11
16994
6
原创 【数据结构】二叉树的原理及实现学习总结
二叉树概述数组、向量、链表都是一种顺序容器,它们提供了按位置访问数据的手段。而很多情况下,我们需要按数据的值来访问元素,而不是它们的位置来访问元素,二叉树在很大程度上解决了这个问题,二叉树是按值来保存元素,也按值来访问元素。二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。
2016-04-25 09:46:50
15615
1
原创 【面试笔试】Java常见面试笔试总结
Java常见面试笔试总结1、有哪些数据类型 2、面向对象的语言特征 3、有几种访问机制? 4、面向对象的多态性在JAVA中怎么实现的 ?.......
2016-04-22 13:59:14
8958
1
原创 【数据结构】堆栈、队列的原理及java实现
栈(stack)又名堆栈,它是一种先进后出(FILO)的线性表。其限制是仅允许在表的一端进行插入和删除运算。队列 是一种先进先出的线性表。其限制仅在表的一端(尾端)进行插入,另一端(首端)进行删除的线性表,先进先出FIFO。
2016-04-21 19:21:47
8226
1
原创 【数据结构】LinkedList原理及实现学习总结
LinkedList 和 ArrayList 一样,都实现了 List 接口,但其内部的数据结构有本质的不同。LinkedList 是基于链表实现的(通过名字也能区分开来),所以它的插入和删除操作比 ArrayList 更加高效。但也是由于其为基于链表的,所以随机访问的效率要比 ArrayList 差。二、ListedList类定义public class Lin
2016-04-20 22:06:27
29630
7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人