自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (8)
  • 收藏
  • 关注

原创 堆排序的实现

package com.cn.test.tree;import java.util.Arrays;public class HeapSortSelf { public static void heapSort(int[] data){ //1、构建大顶堆 //第一个非叶子节点的坐标 int a = data.length/2 -1 for(int i = data.length/2-1;i>=0;i--){ ...

2020-06-14 17:16:21 160

原创 斐波那契查询方法

package com.cn.test.search;import java.util.Arrays;public class FibonacciSearch { private static int maxSize = 20; private static int[] fib(){ int[] f = new int[maxSize]; ...

2020-06-14 17:15:43 190

原创 构建哈夫曼树

一、哈夫曼树也叫赫夫曼树,是一颗权值路径最小的二叉树。 我们用的测试数据是 :{6,32,15,21,3,43,69,52,39,70};二、构建完的树如下图:三、代码实现package com.cn.test.tree;import java.util.*;public class HalfManTree { public static void main(String[] args) { //构建哈夫曼树的节点 int[] da..

2020-06-14 17:14:59 1048

原创 哈夫曼树完成文件的压缩和解压

1、在这里只有工具类,依赖的树节点和树的类,见另一篇博客(https://blog.csdn.net/riapgypm/article/details/106103996)里的定义2、压缩工作类的实现如下:package com.cn.test.tree.zip;import java.io.*;import java.util.*;/** * 压缩工具类 */public class ZipFileUtil { public static Map<Integer

2020-06-14 17:14:44 472 1

原创 哈夫曼树完成字符串的压缩和解压

1、实现的压缩工具类package com.cn.test.tree.zip;import java.util.*;/** * 压缩工具类 */public class ZipUtil { public static Map<Integer,String> huffCodes = new HashMap<>(); public static Map<String,Integer> reverseHuffCodes = new ...

2020-06-14 17:14:28 597 1

原创 基数排序的java实现

package com.cn.data.structure.linklist;import java.util.Arrays;public class BaseNumberSort { /** * 1、先定义10个桶,用来存储0-9的数字 * 2、定义一个数据,存储10个桶的下标 * @param data */ publi...

2020-06-14 17:13:20 85

原创 逆波兰表达式java实现

package com.cn.test.algorithm;import java.util.ArrayList;import java.util.List;import java.util.Stack;public class NiBoLan { public List<String> expression2List(String expression){ ...

2020-06-14 17:12:55 276

原创 八皇后遍历共有92种方式

package com.cn.test.algorithm;public class Queue8 { int[][] chessboard = new int[8][8]; int count = 0; public void printChessboard(){ for (int [] one :chessboard){ ...

2020-06-14 17:11:09 378

原创 jvm字节码-clinit及本地变量表

源文件如下:public class Test { final static PersonReq req = new PersonReq(); final static String helloStr = "55hello6"; static String zhangsxan = "zhangsan"; public static void main(Stri...

2020-04-11 12:33:20 457

原创 spring的mybatis整合笔记(二)

spring在和mybatis整合时,有两个主要的配置项;一是sqlSessionFactory的配置,在这个配置里会配置数据库连接池,mapper的xml的路径,比如 @Bean public SqlSessionFactoryBean sqlSessionFactory() throws Exception { SqlSessionFactoryBean...

2020-03-24 18:27:03 412

原创 spring的bean容器创建的笔记(一)

spring启动的方法public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) { this(); register(annotatedClasses); refresh();}register方法是用来解析所有bean的定义信息。refresh方法完成了容器的创建与刷新工作,看...

2020-03-21 20:09:11 162

原创 java线程池的原理(一)

java在1.5之后,提供了线程池ThreadPoolExecutor和工具类Executors。 但是一般不建议用Executors,因为在线程池里有一个workQueue(在使用newFixedThreadPool和newSingleThreadExecutor创建线程池时用的是LinkedBlockingQueue)队列,是用来存储等待线程的任务。在使用Executors创建...

2020-03-20 13:07:45 167 1

原创 Thread.interrupted影响

可以从不少博客中,可以得知Thread.interrupted(),可以清除当前线程的中断标志位,但是不知道清除之后有什么影响,今天测试了下,中断标志位,就是一个线程是否要中断的标志。但是有以下规则 当线程正在执行时,线程被中断了,线程还会继续执行,不会中断,当线程在执行过程中遇到了wait()、sleep()、或者被其它线程join()时,才会处理中断,抛...

2020-03-16 16:10:18 206

原创 httpclient连接池是否能真的提高性能

用的是httpclient的类CloseableHttpClient,在用户请求完一次之后,没有关闭,紧接着请求第二次,是否就不需要重建建立连接了,这个不一定,分两种情况1)、假设服务器端设置的连接的keepAliveTimeout,超时为1分钟,第一次请求完停了超过1分钟,再进行第二次请求,这时会重新建立新的连接。如下图在超过1分钟之后,就已经被服务器端主动关闭了,请求第二次的时...

2018-11-16 13:42:17 4220 2

原创 Hashmap源码的收获

1、threshold:扩容阀值。这个变量有两个作用:      1)、计算hashmap的初始容量。hashmap的默认初始容量是16,假如你设定了一个初始容量X,hashmap不用采用你设置的初始容量,而是会根据你设置的值进行一次计算,计算的方法如下:      /** * Returns a power of two size for the given targ...

2018-07-19 11:12:33 140

原创 Excel导入大数据量

之前写过一篇关于如何导出大数据的博客,最近因为工作需要,又有导入的需求。网上查了很多资料,后来发现POI提供了解决方案,大致思路是,excel2007之后,其实是由xml组成的,把excel的扩展名改成zip,再解压,就能看到里面的xml。主要有两类xml,一类是存储常量的xml,名字叫 shareStrings.xml,大至如下: 类型 数量

2017-12-13 21:11:03 3234

原创 算法之最大子数组

用了两种方式来实现最大子数组法,一种是递归的分治法,另一种非递归的线性法。

2017-10-23 18:09:34 262

原创 排序算法之归并排序

归并排序:采用分治策略的一种排序算法,先把要排序的数组分成两个有序的序列,然后再比较两个有序序列的最小值进行排序。排序的时间复杂度是O(nlgn)。下面是用java实现的代码/** * 归并排序 * */public class MergeSort { //两个有序数组的归并 public void merge(Integer begin,Integer end,I

2017-10-11 15:29:15 260

原创 java 用户自定义的父类转换成子类的方法

在工作中,一般是实体类对应的数据库表,另外再定义一个Model继承实体类,在model里往往添加一些辅助的属性。我们从数据库查出的数据放在实体类里,但是展现数据时需要用到model类,这时就需要把实体类转换成Model类。父类不可能强制转换成子类,所以写了一个通用的方法,适用于这种场景下的转换,代码如下: /** * 通过public的 get set方法进行复制,适合用于父类

2017-06-22 13:28:47 1362

原创 excel转html

poi提供了excel转html的代码,但是吧,有好多问题。当有合并单元格时边框获取不到,单元格内的字体样式也转换不了,现在对poi提供的Tohtml.java做了一些修改,修复了这些问题,记录下,以备之后用到

2016-12-29 16:32:06 1181

原创 javax.mail实现的邮件发送

javax.mail实现的发送邮件,支持qq邮箱

2016-12-23 15:37:07 2240

原创 uploadify上传及后台文件合法性验证

后台上传方法@RequestMapping(value = "/api_upload", method = RequestMethod.POST) public @ResponseBody String upload(HttpServletRequest request,HttpServletResponse response) { //获取上传路径 String uploadFil

2016-11-09 10:15:46 2562

原创 WEB解决跨站脚本攻击过滤器

使用antisamy来过滤参数值,过滤到可疑的html及script标签,过滤器XSSFilter源码如下;import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import

2016-11-07 13:55:38 4936

原创 重写jquery的ajax的error方法,可处理后台的权限验证,登陆超时等状态码

在使用ajax调用后台时,如果出现后台权限检验不过,或者需要登录时,就需要在ajax的error方法里做判断,如果使用ajax的方法地方太多,一旦后台添加一种新的状态码,就要在多处理地方进行更改,下面是一个方法,直接扩展了ajax的error方法,在调用时,和普通的调用一模一样,也不用再加校验,一切校验,可以只加在这个扩展里(function() { //备份jquery的

2016-10-21 14:20:41 1854

原创 lucene6.2.1测试用例

lucene6.2.1加paoding-analysis中文分词

2016-10-09 11:41:26 2500

原创 非对称加密和对称加密混合应用

在工作中要用到安全通信,写了一个流程如下:发送方:1.获取发送的原文2.利用系统的随机数产生对称密钥3.计算原文的摘要4.用自己的私钥对摘要进行加密(签名)5.用对称密钥对(原文和签名)进行加密6.用对方的公钥对称密钥进行加密(加密密钥)7.将密文(5)和加密密钥(6)一起发给对方接收方:1.用自己的私钥对加密密钥进行解密,得到对称密钥--也只有自己才能

2016-05-23 14:47:32 1037

原创 spring-batch+quartz的示例

spring-batch是一个为批量处理面生的轻量级框架,关于它的描述不多说了,网上挺多的。下面要说的是一个spring-batch+quartz的一示例,完成的功能是从mysql中定时取数据,然后处理数据,最后再写入到mysql的另一个表里。 pom文件如下,所需要的资源全在里面<project xmlns="http://maven.apache.org/POM/4.0.0" xmln

2016-01-14 16:31:29 12315 3

转载 ContextLoaderListener作用详解

转自:http://blog.csdn.net/ysughw/article/details/8992322ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。至于Applic

2016-01-06 13:38:52 827

原创 java的同步方法异步处理

有时需要处理一个大任务,这个大任务处理完可能需要80秒,如果按照正常来访问就会出现超时,这时就会想着把这个大任务拆分,比如可以分成两个(根据任务性质来拆分)可以并行处理的子任务,第一个子任务用时30秒,第二个子任务用时30秒,再花20秒来整合结果,这样只用了50秒就完成了,就不会超时了。下面是这个思路的一个简单实现:任务一代码:import java.util.concurrent.Cal

2015-12-29 12:17:27 5626

转载 java的concurrent用法详解

看到一篇关于java的concurrent的博客,写的不错,转来备用。   我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchron

2015-12-10 16:33:18 595

原创 java的使用技巧(二)

1、zookeeper的相关博客        1)、分布式锁实现:http://chenjingbo.iteye.com/blog/2039641        2)、官网的代码地址:https://svn.apache.org/repos/asf/zookeeper/trunk/src/recipes/lock/        3)、牛人博客:http://www.cnblogs.

2015-12-08 17:49:12 584

转载 DUBBO启动错误

问题描述:  用JDK6和JDK7跑报:java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetViewJDK8报:Invalid property 'URIType' of bean class [co

2015-12-04 15:45:56 1567

原创 解决JAVA导出大数据的EXCEL文件

在工作中遇到了要导出30多万条数据的excel文件,写了一个工具类。如下:import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.io.File;

2015-10-29 11:11:53 11919 11

原创 java服务器内存溢出的解决方法

1、配置内存溢出时写日志快照,红色字体的是需要配置的。JAVA_OPTS="$JAVA_OPTS -server -Xms4096m -Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/mnt/tomcatError/file.hprof -XX:-UseGCOverheadL

2015-10-29 11:03:41 1197

原创 jvisualvm监控使用(待更新整理)

参考地址:http://www.blogjava.net/titanaly/archive/2012/03/20/372318.html    1. 通过jstatd启动RMI服务        配置java安全访问,将如下的代码存为文件 jstatd.all.policy,放到JAVA_HOME/bin中,其内容如下,        grant codebase "file:

2015-10-13 10:48:08 917

原创 fiddler如何抓到java程序内部的Http请求包

在java程序里一般通过两个方式请求url。1、使用jdk自带的URLConnection来访问,在定义时,用以下方式设置代理Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress("127.0.0.1", 8888));URL serverUrl = new URL(url);HttpURLConn

2015-10-12 11:10:45 6528

原创 java一些使用技巧

1、Collections.unmodifiableList(List list)         它可以返回一个只读的list,在防止调用方胡乱修改l时可以用它。2、Class.forName()          1)可以在加载某一个类时使用          2)可以在判断一个类是否存在时也可以用它

2015-09-23 10:36:59 550 3

原创 java中如何判断类的重复加载

这几天在看dubbo的源码,看到里面有一个方法是检测类的重复加载的,感觉挺实用的,写下来,防备自己忘记package com.test;import java.net.URL;import java.util.Enumeration;import java.util.HashSet;import java.util.Set;public class VersionTest {

2015-09-21 14:35:24 3139

原创 awk统计排序

awk  '{a[$1]++} END{for(i in a){print i,a[i] | "sort -r -n -k 2"}}' access_log

2014-11-22 16:19:18 1890

原创 linux服务器设置密钥验证登陆

为了加强服务器的安全,一般很少用用户

2014-11-15 22:20:34 1658

poi excel转html

poi提供了excel转html的代码,但是吧,有好多问题。当有合并单元格时边框获取不到,单元格内的字体样式也转换不了,现在对poi提供的Tohtml.java做了一些修改,修复了这些问题,记录下,以备之后用到

2016-12-29

paoding-analysis6.2.1.jar

修改了paoding-analysis6的部分源码,使之支持lucene6.2.1

2016-10-09

zookeper的web客户端工具

此项目来源于git,自己替换了git上的项目https://git.oschina.net/crystony/zookeeper-web中的zclient包,采用了https://github.com/sgroschupf/zkclient.git来调用zookeeper,添加了授权设置,修改了一些小bug。

2016-07-08

非对称加密和对称加密混合应用

发送方: 1.获取发送的原文 2.利用系统的随机数产生对称密钥 3.计算原文的摘要 4.用自己的私钥对摘要进行加密(签名) 5.用对称密钥对(原文和签名)进行加密 6.用对方的公钥对称密钥进行加密(加密密钥) 7.将密文(5)和加密密钥(6)一起发给对方 接收方: 1.用自己的私钥对加密密钥进行解密,得到对称密钥--也只有自己才能解密。 2.用对称密钥对密文进行解密,得到原文和签名。 3.计算原文的摘要 4.用对方的公钥对签名进行解密获取发送来的摘要--身份验证 5.将两个摘要进行对比--验证原文的完整性。

2016-05-23

spring-batch分区处理示例

spring-batchr的分区示例的简单实现。

2016-01-18

spring-batch+quartz处理mysql数据示例

spring-batch+quartz处理mysql数据示例,功能:定时从mysql里读取数据,进行处理,再存入到mysql

2016-01-14

lucene4.4的搜索示例

lucene4.4的demo项目,可以直接导入myeclipse运行,默认进入到查询页面,不用任何配置,即可实现查询。

2013-08-30

空空如也

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

TA关注的人

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