Java
文章平均质量分 52
死神的丧钟
这个作者很懒,什么都没留下…
展开
-
Java判断相等(==和equals方法)
Java中判断两个变量是否相等有两种方式:一种是利用==运算符,另一种是利用equals方法。如果变量是基本类型,那么使用==和使用equals会得到相同的结果,都是判断变量的值是否相对。如果变量是引用类型,==运算符判断变量是否指向同一引用对象,equals判断变量"值"是否相等。Java值类型对应的包装类(Boolean、Byte、Short、Integer、Long、Float、Double原创 2014-05-08 15:43:19 · 29369 阅读 · 3 评论 -
排序算法之二分插入排序Java版
/** * 二分插入排序是直接插入排序的改进版 * 二分插入排序是不稳定排序 * * 原理: * 将一个记录插入到已排序好的有序序列中,从而得到一个新,记录数增1的有序序列。 * 二分插入排序用二分法找出新记录在有序序列中的位置。 */public class BinaryInsertionSort { public void sort(int[] arr) { int原创 2015-07-01 21:13:20 · 608 阅读 · 0 评论 -
排序算法之希尔排序Java版
/** * * 希尔排序 * 希尔排序又叫缩小增量排序,是直接插入排序算法的一种更高效的改进版本 * 希尔排序属于不稳定排序 * 希尔排序空间复杂度O(1) * 希尔排序的时间复杂度和其增量序列有关系,平均时间复杂度O(n^1.3) * * 基本原理: * 先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接原创 2015-07-01 21:41:08 · 462 阅读 · 0 评论 -
Web中树形数据(层级关系数据)的实现—以行政区树为例
在Web开发中经常遇到树形数据的操作,如菜单、组织机构、行政区(省、市、县)等具有层级关系的数据。下面以行政区为例说明树形数据(层级关系数据)的存储以及实现,效果如图所示。1 数据库表结构设计树形数据一般通过父节点和子节点实现数据之间的层级关联,层级关系在数据库中主要通过主键和外键来实现。--使用Oracle数据库--创建行政区表create table原创 2015-07-12 14:23:42 · 20340 阅读 · 12 评论 -
Java Web返回JSON
Web项目中经常涉及到AJAX请求返回JSON和JSONP数据。JSON数据在服务器端和浏览器端传输,本质上就是传输字符串,不过这个字符串符合JSON语法格式。浏览器端会按照普通文本的格式接收JSON字符串,最终JSON字符串转成JSON对象通过JavaScript实现。目前部分浏览器(IE9以下浏览器没有提供)和常用的JS库都提供了JSON序列化和反序列化的方法,如jQuery的AJAX请求可以原创 2015-07-03 10:48:05 · 15555 阅读 · 2 评论 -
Java Web验证码
1 验证码生成类RandomCodeRandomCode是一个生成验证码的工具类,支持英文和数字验证码,验证码包括英文大小写和数组,其中英文i、o和数字0、1因为容易产生混淆,不包括在生成验证码中。RandomCode支持输出jpg/bmp/png/gif图片格式的验证码。/** * RandomCode验证码可以通过静态方法和实例方法生成。 * * 静态方法: * *原创 2015-07-06 11:55:09 · 1361 阅读 · 0 评论 -
Java Web文件下载
Web文件下载有两种,一种是文件在网站目录下,在浏览器中直接输入文件路径即可下载,如http://www.xxx.com/file.zip。另外一种是文件不在网站目录下或者文件是动态生成的(导出报表或者导出excel等),这种情况需要通过response的OutputStream实现文件的下载。DownloadUtils是一个Java Web文件下载工具类,提供多种静态方法实现文件下载。pac原创 2015-07-06 15:53:11 · 2345 阅读 · 0 评论 -
Java实现Html转PDF
项目上的客户提出一个需求,把政务流程中的表单数据导出成pdf或者图片格式,用来作电子档案材料。表单基于公司的电子政务构建平台实现,在数据库保存的都是html格式,因此打算直接把表单html转成pdf或者图片。由于表单是已经写好了html页面,那我要做的就是能完美解析html+css的pdf生成工具。在百度上搜索html转pdf的结果,大部分都是用itext,itext的确是java开源组件的第一选原创 2015-07-07 10:35:10 · 57104 阅读 · 12 评论 -
Java执行外部程序(Apache Commons Exec)
之前使用Runtime.getRuntime().exec调用外部程序,在Tomcat下会有当前线程一直等待的现象。当时为了解决这个问题,使用新建线程接收外部程序的输出信息,详情请看博客http://blog.csdn.net/accountwcx/article/details/46785437。后来在网上找到开源的Java调用外部程序类库Apache Commons Exce,这个原创 2015-07-07 11:58:59 · 21850 阅读 · 2 评论 -
Mybatis执行Update返回行数为负数
获取mybatis的update行数,总是返回负数。后来在官网上找到原因,是由于defaultExecutorType的引起的,defaultExecutorType有三个执行器SIMPLE、REUSE和BATCH。其中BATCH可以批量更新操作缓存SQL以提高性能,但是有个缺陷就是无法获取update、delete返回的行数。defaultExecutorType的默认执行器是SIMPLE。原创 2015-08-27 12:44:01 · 19701 阅读 · 2 评论 -
用JAX-WS在Tomcat中发布WebService
JDK中已经内置了Webservice发布,不过要用Tomcat等Web服务器发布WebService,还需要用第三方Webservice框架。Axis2和CXF是目前最流行的Webservice框架,这两个框架各有优点,不过都属于重量级框架。JAX-WS RI是JAX WebService参考实现。相对于Axis2和CXF,JAX-WS RI是一个轻量级的框架。虽然是个轻量级框架,JAX-W原创 2015-07-14 22:49:36 · 18823 阅读 · 2 评论 -
List遍历中删除元素
List遍历主要有索引下标遍历、for循环遍历和Iterator迭代遍历,索引下标和for循环在遍历中删除元素都存在问题,Iterator迭代可以实现遍历中删除元素。原创 2015-10-21 14:04:20 · 1242 阅读 · 0 评论 -
排序算法之快速排序Java版
/** * 快速排序 * 快速排序是不稳定排序 * 快速排序是一种交换排序 * 快速排序对序列的操作空间复杂度为O(1),如果快速排序用递归实现,则递归栈的空间复杂度为O(logn)~O(n)之间。 * 最佳时间复杂度O(nlogn) * 平均时间复杂度O(nlogn) * 快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短。原创 2015-07-01 22:20:36 · 517 阅读 · 0 评论 -
排序算法之堆排序Java版
/** * 堆排序 堆排序是一种树形选择排序,是直接选择排序的有效改进,是不稳定的排序 * 最优时间复杂度O(nlogn) * 最坏时间复杂度O(nlogn) * 空间复杂度O(1) * * 堆排序原理: * 1、根据序列建立大根堆(或者小根堆)。 * 2、将堆顶元素R[1]与最后一个元素R[n]交换,得到新的无序区(R1,R2,......Rn-1)和新的有序区(Rn),且满足原创 2015-07-01 22:00:13 · 561 阅读 · 0 评论 -
排序算法之直接插入排序Java版
/** * 直接插入排序 * 直接插入排序属于稳定排序 * 直接插入排序空间复杂度O(1) * 最优时间复杂度O(n),当待排序的数组已经排序好时,直接插入排序的时间复杂度为O(n) * 最坏时间复杂度O(n^2),当待排序的数组是倒序时,直接插入排序的时间复杂度为O(n^2) * 直接插入排序适用于数量比较少的数组排序 * * 基本原理: * 将一个记录插入到已排序好的有序序原创 2015-07-01 21:16:06 · 570 阅读 · 0 评论 -
Java类成员的访问控制
Java提供了4个访问控制符:private、protected、default和public,这4个访问控制符的访问权限由小到大private<protected<default<public。其中defualt是系统默认的访问控制级别,当不实用任何访问控制符来修饰类成员时,默认是default访问控制级别。这4个访问控制级别的详细介绍如下。原创 2014-05-08 13:44:34 · 1954 阅读 · 0 评论 -
Java对象与垃圾回收
Java中创建引用类型对象时,都会在堆内存中分配一块区域,Java对象就保存在这块内存区域中,当这块内存区域不再被任何变量引用时,垃圾回收机制就会把这块内存区域回收。原创 2014-05-17 17:01:44 · 1268 阅读 · 0 评论 -
Java下利用Jackson进行JSON解析和序列化
Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效。原创 2014-04-27 14:33:42 · 145590 阅读 · 16 评论 -
Spring4 Jar包详解
Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现Spring Aspects:Spring提供的对AspectJ框架的整合Spring Beans:Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。Spring Context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJ原创 2014-09-12 19:51:56 · 13665 阅读 · 2 评论 -
Java Web开发常用Jar包
Json处理FastJson是阿里巴巴的Json处理工具包,包括序列化和反序列化两部分。FastJson具有极快的性能,超越任何其它Java Json包。Jackson是Java处理JSON格式数据的工具包,在FastJson出现以前,其JSON处理性能是最好的,同时也是Spring MVC中内置的JSON解析方式。XML解析:Dom4j是开源的XML解析解析包,具有性能优原创 2014-09-02 17:59:00 · 1989 阅读 · 1 评论 -
Tomcat启动时提示Exception loading sessions from persistent storage错误
Tomcat在启动是提示Exception loading sessions from persistent storage原创 2014-09-02 20:51:23 · 797 阅读 · 0 评论 -
Apache Commons项目介绍
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。Commons BeanUtils 提供对Java反射和自省API的包装。依赖包:Commons Codec、Commons LoggingCommons Codec是编码和解码组件,提供常用的编码和解码方法,如DES、SHA1、MD5、Base64、URL和Soundx等原创 2014-09-02 17:34:02 · 3188 阅读 · 2 评论 -
Web项目同时使用Struts2和SpringMVC
接手公司历史遗留的一个项目,要在原有系统中添加新的功能。原有系统只使用Struts2做Web MVC,没有用Spring做解耦,数据持久层使用JDBC连接,数据库连接池是c3p0。从设计上看,原有系统抛弃了独立的服务层,把服务层和数据持久层合并,控制层(Struts2的Action)直接调用持久层对象。新增功能采用SpringMVC和Mybatis。由于原系统和新功能的控制层使用不同的MVC,原创 2015-07-08 22:14:00 · 18084 阅读 · 3 评论 -
排序算法之直接选择排序Java版
/** * 直接选择排序 * 直接选择排序是一种不稳定的排序 * 时间复杂度为 O(n^2),当记录占用字节数较多时,直接选择排序通常比直接插入排序的执行速度快些。 * 空间复杂度为O(1) * * 原理:从未排序序列中找到最小元素,存放到已排序序列的末尾,以此类推,直到所有元素均排序完毕。 */public class DirectSelectionSort { public原创 2015-07-01 21:49:19 · 627 阅读 · 0 评论 -
排序算法之冒泡排序Java版
/** * 冒泡排序 * 冒泡排序是稳定排序 * 冒泡排序空间复杂度O(1) * 最优时间复杂度O(n),当序列已经排序好时,时间复杂度为O(n) * 最坏时间复杂度O(n^2),当序列是倒序时,时间复杂度为O(n^2) * 冒泡排序是一种交换排序 * * 冒泡排序原理: * 在序列中对当前还未排序的数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。原创 2015-07-01 22:13:58 · 660 阅读 · 0 评论 -
排序算法之归并排序Java版
/** * 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法将已有序的子序列合并,最后得到完全有序的序列。 * 归并排序是稳定排序,速度仅次于快速排序 * 时间复杂度为O(nlogn) * 空间复杂度为O(n) 归并排序需要n空间的临时数组来存储子序列 * 归并排序原理: * 将待排序序列分为若干个子序列,,对每个子序列进行排序。 * 然后再把相邻的两个有序子序列合原创 2015-07-01 22:24:12 · 626 阅读 · 0 评论 -
FastJSON、Gson和Jackson性能对比
把Java对象JSON序列化,Jackson速度最快,在测试中比Gson快接近50%,FastJSON和Gson速度接近。把JSON反序列化成Java对象,FastJSON、Jackson速度接近,Gson速度稍慢,不过差距很小。原创 2015-12-10 17:55:02 · 73381 阅读 · 12 评论