- 博客(40)
- 资源 (4)
- 收藏
- 关注
原创 两个线程交替打印
很久之前遇到的一个面试题,当时并没有做出来,回来之前在网上找了些答案,虽然也做出来,但并没有完全领会,今天看到线程的有序性,事隔多年,自己又动手实现了一次,也夯实了一下基础知识。话不多说,上代码 ^_^public class ThreadAlternatePrint extends Thread{ private Object lock; private static fina...
2018-07-11 15:02:40
2426
原创 java list分组
关于java list分组网上有很多的代码,在此我来用guava做一个分组的例子,代码如下:package com.netease.ad.omp.common.utils;import com.google.common.base.Function;import com.google.common.collect.Multimap;import com.google.common.co
2017-09-06 10:55:54
696
原创 java list分批
在项目中经常会碰到批量操作的情况,当使用MyBatis批量写入的时候,如果超过一定的条数,会存在严重的性能问题,下面给出一个工具类,希望对大家有所帮助。1.创建测试类public class User implements Serializable{ private static final long serialVersionUID = -7929625699473608909L
2017-08-07 15:38:24
801
原创 RabbitMQ消息可靠送达
目前项目中采用RabbitMQ,在运行的过程当中,发现有一部分消息存在丢失的情况,结合自己对RabbitMQ的理解,一般分为两种情况,一种是客户端丢失,即消息没有成功送达到RabbitMQ Server,一种是消费端并有成功消费消息,针对这两种情况,我们分别做了相应的方案。一、消息没有送达到RabbitMQ Server,导致丢失由于看不了RabbitMQ Server的消息日志,我们自己
2017-07-11 11:24:23
4751
转载 ElasticSearch-5.x 安装head插件
环境Windows10企业版X64JDK-1.8ElasticSearch-5.0.0node-v4.5.0-x64.msigit客户端步骤安装node到D盘。如D:\nodejs。把NODE_HOME设置到环境变量里(安装包也可以自动加入PATH环境变量)。测试一下node是否生效:安装gruntgrunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的
2017-05-04 15:21:57
517
原创 vagrant windows 环境搭建
首先需要下载virtual box,地址是:https://www.virtualbox.org/其次下载vagrant,地址是:https://www.vagrantup.com/downloads.html 选择对应的版本即可。把这个安装完之后开始搭建vagrant环境。1、创建vagrant工作目录,我的目录是在D:/centos72、把下载好的vagrantbox目录记
2016-12-07 16:44:20
1023
原创 spring-data-redis队列
1、首先加入依赖 org.springframework.data spring-data-redis 1.6.4.RELEASE 2、编写MessageListenerimport org.springframework.data.redis.connection.Message;import or
2016-12-07 12:01:57
4442
原创 shell 脚本实现定时备份数据库表
前段时间由于在工作中有同学由于误操作,导致把生产环境的基础信息表删除了,为防止此类问题,决定写一个定时备份基础表的脚本,也正好可以巩固一下linux及shell基础。备份规则为:昨天备份0点、6点、12点、8点的数据,前天为0点、12点的数据,三天前仅保留0点的数据。具体代码如下:#!/bin/sh# config information 定义数据库连接db_host=localhost
2016-08-03 15:28:12
5017
1
原创 poi导出excel
最近一直想写一个导出,去网上看了一下,大部分是采用HSSF的方式来导出的,所以自己想写一个基于XSSF来做的导出,去官网上看了些例子,做出来了一个小demo,用于记录自己的成果。项目采用的maven来管理的,当然首先得引入关于POI的jar包。3.143.14 org.apache.poi poi $
2016-05-19 18:17:20
547
原创 一次关于union的用法实例
面试的时候一直被问到union all 和union 的区别。一直停留在书面上的理解,今天碰到需求,刚好符合union all的用法,于是便有了今天的这篇文章。具体业务是把两张表的集合合并到一张表里,然后向报表写入数据。这里采用存储过程的方式实现,使用Spring quartz 实现定时调用。由于用的是mysql数据库,所以下面的事例也是遵循mysql语法。具体代码如下:DELIMITER
2016-04-28 15:36:11
1007
转载 tomcat7 参数优化
catalina.sh optimizingset JAVA_OPTS=-server -Xms1000M -Xmx1000M-Xss512k -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:PermSize=64M -XX:MaxPermSize=300M -XX:+DisableExplicitGC -XX
2016-03-31 11:44:31
479
转载 HTTP和HTTPS详解
转自:http://www.cnblogs.com/ok-lanyan/archive/2012/07/14/2591204.htmlHTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且H
2016-03-16 15:13:28
692
转载 Java 注解实例
package com.annotation;import java.lang.annotation.Retention;import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;import static java.lang.annotation.RetentionPolicy.
2016-02-19 16:33:04
482
原创 MySQL删除重复记录
DELETE FROM t_application WHERE id NOT IN (SELECT minid FROM (SELECT MIN(t.id) AS minid FROM t_application t GROUP BY t.name) b);
2016-01-07 15:41:28
475
原创 数组倒排
前几天碰到一个面试题,具体需求是这样的,给出一个数组int[] array = new int[]{1,3,5,8,10,4,7,6};要求指定索引起始位置和结束位置,把索引范围内的进行倒序排序,比如:索引为1和4,那么要求输出,1,10,8,5,3,4,7,6,不可以使用java已有的函数,那么只能是遍历了。具体代码如下:public class ArraySort { public
2016-01-07 09:54:38
3697
原创 mysql 存储过程
好久没有写过存储过程了,今天又把mysql的存储过程熟悉了一次,对于新手来说这是一个很好的demo.具体代码如下:DROP PROCEDURE IF EXISTS `proc_demo`$$CREATE DEFINER=`root`@`%` PROCEDURE `proc_demo`()BEGIN DECLARE done INT; DECLARE pid INT; DECLA
2015-12-24 12:22:28
512
原创 java -访问者模式实现用户登录模块
用户登录是Web程序中的重要功能,相关操作包括注册、登录检查。经济有这样的情况:初始时用户信息(例如用户名、密码)是透明的,但将来有可能对这些信息进行加密保存,那么如何预留加密接口呢?访问者模式是较好的实现方式之一。具体代码如下:1、定义抽象访问接口IVisitorpublic interface IVisitor{ public void visit(User u);}//
2015-12-04 17:37:09
1117
原创 java 利用javadoc命令生成doc
切换到生成javadoc的目录执行如下命令即可生成javadocjavadoc -d apidoc -subpackages com.sampson.utils -windowtitle zplay工具类API -doctitle zplay工具类API文档 -header API -encoding UTF-8 -charset UTF-8截图:
2015-12-01 18:36:04
1905
转载 POI读取word转换html
apache POI读取word文档的文档比较少,所以只有自己慢慢的摸索,这篇文章也属于比较基础入门的,主要是针对读取word中的图片,以及文字的各种样式,如有不好的地方,请各位多多指教! /** * */package com.util;import java.io.BufferedWriter;import java.io.File;import java.io
2015-08-21 12:09:50
785
原创 git push 的使用
关于git push 命令git push 命令用于将本地分支的更新,推送到远程主机 它的格式与git pull命令相仿 $ git push 远程主机名> 本地分支名>:远程分支名>注意 分支推送顺序的写法是 :所以git pull 是: 而git push 是:如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系
2015-08-06 10:45:28
1000
原创 关于 gitlab 的使用
https 交互方式https的方式每次操作远程仓库都需要提供用户名及密码另外对于https的方式,由于是自鉴权的SSL 证书,未经过第三方机构签署所以git的客户端会报错,需要我们在使用时添加如下选项进行忽略git clone -c http.sslVerify=false https://192.168.1.58/git/doc/gitdoc.git或者是 在本地的项目
2015-08-06 10:42:55
876
原创 关于git基本使用
git 的一些注意事项需要说的是git不同于svn,git是分为本地仓库与远程仓库的,我们平常的操作都是通过对本地仓库完成的只有需要将本地仓库的内容push到远程仓库或从远程仓库更新时 才会和远程仓库发生联系所以不需要象svn那样时刻都需要有网才能commit,我们可以直接只操作本地仓库就可以了同时一个文件的状态对于git来说是存在于 git的工作目录 , 暂存区 , 本地仓库
2015-08-06 10:38:14
701
原创 网站ssl加密
前两天公司要做https加密,记录了一下自己的经历,使用jdk自带的keytool生成,首先到JAVA_HOME下的bin目录下,打开命令行窗口,运行以下命令:keytool -genkey -alias sampson -keypass sampson -keyalg RSA -keysize 1024 -validity 36500 -keystore e:/sampson/ssl/
2015-07-29 20:02:47
625
原创 ealsticsearch多条件查询
前段时间在做多条件检索的时间遇到了一些问题,不晓得怎么构建多条件查询,跟solr有些不同,一开始是使用QueryBuider,可是发现不行,废话不多说了,直接贴代码:以下代码是动态构建查询语句: private SearchRequestBuilder dynamicSearch(String index, String type, String startTime, String e
2015-07-06 10:12:33
6212
转载 MySQL实现SQLServer ROW_NUMBER() OVER ORDER BY
table dataSQLServer 实现:SELECT ROW_NUMBER() OVER (PARTITION BY Customer ORDER BY OrderDate DESC) AS RowNumber ,Customer ,OrderDate ,Amount FROM Orders MySQL 实现:S
2015-05-29 13:10:02
1793
原创 web 页面乱码解决
encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /*
2015-05-06 10:37:37
557
转载 理解多线程设计模式
多线程设计模式:1.Single Threaded Execution Pattern [同一时刻只允许一个线程操作] 比喻:三个挑水的和尚,只能同一时间一个人过桥,不然都掉河里喂鱼了。 总结:在多个线程同时要访问的方法上加上synchronized关键字。2.Immutable Pattern [变量赋值一次后只能读取,不能
2015-05-06 09:50:05
428
原创 Oracle 毫秒转为时间格式
DROP FUNCTION NUM_TO_DATE;CREATE OR REPLACE function num_to_date(in_number NUMBER) return date isbeginreturn(TO_DATE('19700101000000','yyyymmddhh24miss') + in_number/86400000+ TO_NUMBER(SUBSTR
2014-10-14 14:38:29
2207
转载 JVM内存配置详解
前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的OOM了!问题虽然蹊跷,但也趁此机会再次对JVM堆模型、GC垃圾算法等进行了一次系统梳理; 基本概念 堆/Heap JVM管理的内存叫堆;在32Bit操作系统上有4G的限制,一般来说Wi
2014-09-05 17:05:15
849
转载 JVM垃圾回收(GC)原理
一、相关概念 基本回收算法 1. 引用计数(Reference Counting) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 2. 标记-清除(Mark-Sweep) 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍
2014-09-05 17:02:33
634
原创 java html转Word功能
前段时间在做html生成word功能,找了好几种方案,有的用jacob,但是这个比较麻烦,又是dll又是jar的,依赖太多了,而且代码量比较多,所有以采用了freemarker来生成word,制作一个模板就可以生成word文档了,生成的图片也不会依赖本地路径。制作模板,打开word,制作报告的样式,然后另存为xml格式,最好是2003格式的xml,不然会出现不兼容的现象。完成之后修改为ftl格
2014-07-23 16:38:45
2770
原创 Apache2.2 Tomcat6.0.36 64位集群
一、集群前准备工作:1、下载apache_httpd-2.2.11-win32-x86-no_ssl2、下载 tomcat6.0.36二、开始配置1、首先配置apache配置文件:(1) 找到apache安装目录下的conf文件夹下的httpd.conf (我的安装目录为:D:\Program Files\Apache Group\Apache2),找到以下配置
2014-04-03 15:56:52
998
转载 关于DBCP断网数据库连接失效的解决方案
问题网上很多评论说DBCP有很多BUG,但是都没有指明是什么BUG,只有一部分人说数据库如果因为某种原因断掉后再DBCP取道的连接都是失效的连接,而没有重新取。就此研读了一下DBCP的代码,共享之。分析DBCP使用apache的对象池ObjectPool作为连接池的实现,有以下主要的方法:1. Object borrowObject() throws Exception;从对象池取
2014-04-03 15:53:56
2248
原创 实现两张图片的叠加
看了好多网上的图片叠加,说的最多的就是水印效果,但是我需要做的是两张图片完全重合的叠加,但是我的情况有点特殊,一张图片是从远程生成的,一张图片是本地生成的,所以在读图片的时候方法不一样,今天终于完成了,废话不多说,上代码:首先是一个根据url网络网络url函数:public static BufferedImage RequestImage(String imageurl) throws
2014-03-28 15:22:26
5992
原创 java 批量插入数据
运行环境:Spring、MyBatis、SQLServer2008com.microsoft.sqlserver.jdbc.SQLServerException: 传入的请求具有过多的参数。该服务器支持最多 2100 个参数针对这个错误网上有很多解决办法,但最终都没能解决掉我遇到的问题,实际是因为数据量过大而造成的错误,下面是批量插入数据的代码:MyBatis xml SQL语
2014-03-28 10:20:59
2940
原创 获取网络图片
//根据url获取网络图片并转化为byte数组,方便操作public byte[] getBytesByURL(String imageUrl)throws IOException { ByteArrayOutputStream bos = new ByteArrayOutputStream(); BufferedInputStream bis
2014-03-28 10:15:21
455
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人