Java
文章平均质量分 56
生活不只*眼前的苟且
这个作者很懒,什么都没留下…
展开
-
mybatis-generator-maven-plugin插件自动生成代码的配置方法
1. 第一步,在pom文件中引入如下插件<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> ...原创 2017-03-04 22:08:26 · 13533 阅读 · 0 评论 -
配置web工程的过程
1. 配置web.xml文件 Archetype Created Web Application contextConfigLocation classpath:spring/spring-*.xml org.springframework.web.context.ContextLoaderListener SpringS原创 2016-06-03 17:56:26 · 2749 阅读 · 0 评论 -
log4j日志配置方法
#定义DEBUG优先级,R为日志输出目的的log4j.rootLogger=debug,file#设置日志输出类型,为文件类型#log4j.appender.file=org.apache.log4j.FileAppender#设置日志输出类型,每天一个文件log4j.appender.file=org.apache.log4j.DailyRollingFileAppender转载 2016-06-08 18:54:47 · 342 阅读 · 0 评论 -
Java实现Redis的消息订阅和发布
1. 首先需要一个消息监听器类package com.sogou.baike.testimport.testSubscribe;import redis.clients.jedis.JedisPubSub;/** * Created by denglinjie on 2016/6/29. */public class RedisMsgPubSubListener extends原创 2016-06-29 12:15:43 · 32978 阅读 · 11 评论 -
Java实现redis事务
1. 正常执行的事务@Test public void test() { Jedis jedis = new Jedis("localhost"); Transaction transaction = jedis.multi(); transaction.lpush("key", "11");@Test public void原创 2016-06-29 14:09:52 · 8406 阅读 · 7 评论 -
Java实现redis管道
redis的管道就是可以在给redis服务端发送了一个命令后,不用等待该命令执行返回,而继续发送下一个命令。最终将结果一起返回给客户端,这样可以显著提供响应时间,测试例子如下:@Test public void test() { Jedis jedis = new Jedis("localhost"); jedis.auth("123");原创 2016-06-29 15:12:54 · 4361 阅读 · 0 评论 -
Jvm学习心得
1. 配置虚拟机参数在内存溢出时导出整个堆信息-XX:+HeapDumpOnOutOfMemoryError,该参数可在内存溢出时导出整个堆信息-XX:HeapDumpPath, 该参数配合上述参数适用,可以指定导出堆的文件存放路径例子: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/a.dump原创 2016-06-29 17:02:15 · 372 阅读 · 0 评论 -
Java虚拟机层面的几种锁
1. 偏向锁当一个锁被线程获取后,这个线程便进入偏向模式,当线程再次请求这个锁时,无需再进行相关的同步操作,从而节省了时间。如果在此之前,其他线程进行了锁请求,则原线程退出偏向模式。当对象处于偏向模式时,对象头的Mark Word会记录获取锁的线程JavaThread* | epoch | age | 1 | 01这样,当该线程再次尝试获取该对象锁时,通过Mark Word原创 2016-06-30 16:45:32 · 1060 阅读 · 0 评论 -
针对Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1的解决方案
背景:本项目使用JDK1.8编译maven工程的时候出现如下错误:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1pom中如下配置maven插件,配置中声明使用JDK1.8: org.apache.maven.plugins maven-compiler-plugin 3原创 2016-07-13 09:59:02 · 281505 阅读 · 30 评论 -
maven编译的时候出现一大堆Test相关的错误
------------------------------------------------------ T E S T S-------------------------------------------------------------------------------------------------------------- T E S T S----------原创 2016-07-13 10:14:58 · 20643 阅读 · 0 评论 -
根据需要为不同的类设置不同的输出日志名称及日志格式
web应用的日志不一定全部都要打到catalina.out文件中,可以根据需求,将不同的日志输出到不同的文件中,所以可以在log4j.properties日志文件中配置多个输出日志的模式,每个模式都会有一个名称,比如如下的名称“web”1. 一般在类中通过如下方式获取LOG对象protected static final Log LOG = LogFactory.getLog("web");原创 2016-07-19 17:09:22 · 1473 阅读 · 0 评论 -
Java查找一个字符串中所有匹配某正则的子串
代码如下:String line = "2016年10月11日我们去哪里玩近期我们近日,次年,同年等等,10月,2019年,3月4日"Pattern datePattern = Pattern.compile("\\d{4}年\\d{1,2}月\\d{1,2}日|\\d{4}年\\d{1,2}月|\\d{1,2}月\\d{1,2}日|\\d{4}年|\\d{1,2}月|同年|次年|近日|近期原创 2016-07-21 10:30:15 · 18462 阅读 · 0 评论 -
正则表达式匹配任意字符
最开始以为.* 可以匹配任意字符,后来发现有问题,匹配不了换行符\n查了下资料,用[\s\S]*匹配可以 解释:\s空白符,\S非空白符,所以[\s\S]是任意字符原创 2016-08-04 14:08:02 · 191953 阅读 · 8 评论 -
too many connections的一个实践
1. 数据库中有一个表的数据量在1900万,我发现一个varchar类型的字段设置的有点短,所以我想设置的大点2. 于是我执行了如下的sql:# alter table LemmaManager change title title varchar(255) null;3. 此时我的一个java项目开启了15个线程在往这个表里面插数据4. 我试图执行show processlist原创 2016-08-09 18:15:47 · 547 阅读 · 0 评论 -
Md5思想
1. md5一般是用来做摘要认证,验证文件是否被修改过,所以传输的数据包括两部分,一个是要传输的内容,一个是内容的md5值,当然发起方和接收方必须有一个共同的秘钥2. 将要传输的内容和秘钥拼接起来做md5得到md5只,即:md5值=md5(内容+秘钥)3. 将md5值和内容一起传给接收方4. 接收方因为有秘钥,现在也有了内容,可以通过md5(内容+秘钥)这个相同的方法来计算md5值,再原创 2016-08-11 19:34:22 · 575 阅读 · 0 评论 -
idea项目乱码问题
写了一个简单的字符串切分,代码如下;@Testpublic void testSplit() { String line = "刘涛 实验"; System.out.println(line.split(" ")[0]); System.out.println(line.split(" ")[1]);}发现切分的结果竟然是乱码,找了半天终原创 2016-08-16 18:27:46 · 1194 阅读 · 0 评论 -
用Java搭建一套访问redis的API
1. 创建一个RedisClient类package com.jason.study.redis.jedisPool;import org.apache.log4j.Logger;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisP原创 2016-08-19 15:31:15 · 2170 阅读 · 0 评论 -
Java用观察者模式重构复杂的业务代码
1. 定义一个统一的回调接口public interface CallerInter { void call(Param param);}2. 定义观察者接口public interface ObserverInter{ /** * 增加观察者 * * @param callInter */ void addOb原创 2016-08-19 16:50:44 · 2816 阅读 · 0 评论 -
log4j详细配置
一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、转载 2016-06-03 15:29:24 · 245 阅读 · 0 评论 -
JVM并发性,阻塞还是非阻塞
在任何并发性应用程序中,异步事件处理都至关重要。事件来源可能是不同的计算任务、I/O 操作或与外部系统的交互。无论来源是什么,应用程序代码都必须跟踪事件,协调为响应事件而采取的操作。Java 应用程序可采用两种基本的异步事件处理方法:该应用程序有一个协调线程等待事件,然后采取操作,或者事件可在完成时直接执行某项操作(通常采取执行应用程序所提供的代码的方式)。让线程等待事件的方法被称为阻塞 方法。让转载 2016-06-02 22:51:12 · 867 阅读 · 0 评论 -
搭建linux环境的tomcat服务器
1. 到apache官网下载tomcat服务器,apache-tomcat-7.0.69.tar.gz地址:http://tomcat.apache.org/download-70.cgi2. 将apache-tomcat-7.0.69.tar.gz上传到linux服务器指定的文件夹下执行如下命令解压#tar zxvf apache-tomcat-7.0.69.tar.gz3.原创 2016-06-02 19:22:15 · 394 阅读 · 0 评论 -
Java开发Maven插件
这里需要两个工程,一个是插件工程,另外一个是插件测试工程首先介绍下插件工程:新建一个web项目,名称为myMavenPlugin,pom文件对该工程的相关配置信息为(注意这是关于项目自身的信息):org.apache.maven.plugins my-maven-plugin 1.0.1-SNAPSHOT maven-plugin my-maven-plugin http:/原创 2017-09-14 16:07:35 · 457 阅读 · 0 评论 -
Java进行spark计算
下载安装spark:可以从如下地址下载最新版本的spark:https://spark.apache.org/downloads.html这个下载下来后是个tgz的压缩包,解压后spark环境就安装好了或者从github上下载:#git clone git://github.com/apache/spark.git安装好spark环境后,我们就可以通过Java,Python,Scala等语言的ap原创 2017-09-06 16:57:54 · 2906 阅读 · 0 评论 -
IntelliJ Idea中使用Java8新特性lambda表达式
环境: 环境变量JAVA_HOME配置jdk1.8idea配置支持lambda: File -> Project Structure -> Modules -> Language level, 选择: 8-Lambdas, type annotations etc. File -> Project Structure -> Project -> Project language原创 2017-09-06 16:12:33 · 20730 阅读 · 1 评论 -
URLEncoder.encode的默认编码问题
今天要实现的一个功能是在页面上上传文件到后台,文件是txt格式,每行是一个url,后台读取后,对路径中的中文进行url编码如下是我的代码:Pattern chinesePattern = Pattern.compile("[\\u4e00-\\u9fa5]+"); MultipartFile file = null; try { bo原创 2017-08-16 16:12:40 · 8148 阅读 · 0 评论 -
Error during artifact deployment. See server log for details解决办法
我在Intellij idea 新建了一个项目,但是发现启动的时候报了如下错误:Error during artifact deployment. See server log for details看这说法,应该就是artifact没有配置好所以,点击“File” -> "Project structure" , 选择Artifacts,点击+号,选择Web ...原创 2017-07-03 11:04:10 · 41058 阅读 · 3 评论 -
log4j控制日志输出文件名称的两种方式
1. 第一种方式在类对象中用如下方式定义logger变量private static Logger logger = Logger.getLogger("lemmaXml");这样通过名称的方式获取logger,需要在log4j.properties文件中定义一个名称为lemmaXml的appender,配置如下:log4j.logger.lemmaXml=INFO,lemmaXml原创 2016-10-20 10:55:13 · 10339 阅读 · 0 评论 -
小知识点积累
1. Junit不支持多线程测试2. Spring3不支持jdk8, 必须将Spring升级版本43. 将源代码打成jar包的方法:cd进入要打成jar包的class文件所在目录:jar cvf [生成jar的名称.jar] [列出class文件] 例子:#cd /code/junit #jar cvf junit.jar *(将文件夹junit下所有的c原创 2016-04-25 09:54:44 · 783 阅读 · 0 评论 -
java开发环境搭建
1. 安装jdk2. 下载maven,绿色版,不需要安装3. 安装GIt或者svn4. 配置java环境变量,配置maven环境变量5. 在idea上配置jdk家目录,要在左侧Project和SDKs两个地方配置安装的jdk家目录6. 配置maven配置Maven Home directory为电脑上下载下来的绿色版的maven配置User settin原创 2016-04-26 18:28:54 · 373 阅读 · 0 评论 -
遍历map时删除不需要的元素方法
Iterator iterator = ambiMap.keySet().iterator();while(iterator.hasNext()) { String title = iterator.next().toString(); iterator.remove();}原创 2016-05-19 15:02:09 · 919 阅读 · 0 评论 -
java代码传中文参数乱码
原因: idea编码设置的问题解决方法: 在idea右下角可以设置编码,设置成utf-8就好了原创 2016-05-19 15:25:07 · 514 阅读 · 0 评论 -
Concurrenthashmap的putIfAbsent方法
@Testpublic void test() {ConcurrentHashMap, String> map = new ConcurrentHashMap, String>();map.put("key", "22");System.out.println(map.putIfAbsent("key", "33"));System.out.println(map.putIfAb原创 2016-05-19 17:04:39 · 1071 阅读 · 0 评论 -
java代码中发送http请求的DnsResolver使用问题
http请求中使用DnsResolver的方式有两种,一种是使用默认的DnsResolver,一种是自定义一种DnsResolver1. 使用默认的DnsResolverDnsResolver dnsResolver = new SystemDefaultDnsResolver();原创 2016-05-20 19:55:49 · 5372 阅读 · 0 评论 -
Linux环境通过java虚拟机定位程序问题位置的方法
1. # ps -ef | grep tomcat结果类似如下格式:[@sjs_113_75 vmstudy]# ps -ef | grep tomcatroot 62776 1 99 11:34 pts/17 07:49:56 /usr/bin/java -Djava.util.logging.config.file=/search/odin/xx/tomca原创 2016-05-24 12:31:04 · 972 阅读 · 0 评论 -
idea解决编译时出现的未结束的字符文字等错误
错误如下:F:\work\alms\alms-web\src\main\java\com\lmscn\lms\action\admin\ExamAction.javaError:(293, 74) java: 需要';'Error:(293, 81) java: 非法字符: \8451Error:(293, 83) java: 未结束的字符串文字Error:(293, 82) java:转载 2016-05-26 17:09:10 · 6674 阅读 · 0 评论 -
引入了junit为什么还是用不了@Test注解
pom文件明明引入了unit,为什么还是用不了@Test?配置如下: junit junit ${junit.version} test原因:上述scope配置了Junit可用的位置,test表示只能在src下的test文件夹下面才可以使用解决办法:去掉scope配置就可以了原创 2016-05-28 16:04:55 · 35425 阅读 · 14 评论 -
java用DFA实现脏词过滤以及用FileAlterationListenerAdaptor实现对资源文件修改的动态监听
最近在跟朋友做一个博客网站,里面涉及一些脏词过滤算法,查了很多资料总结来说DFA算法是比较理想的,效率高。脏词本身是一个可以配置的东西,所以不能在程序中将脏词写死,否则要修改或者添加一些新的脏词还需要修改代码重新启动服务器,这显然是不可行的,所以脏词需要做成一个配置文件,并且当配置文件修改后,我不需要重启服务器就可以自动监测到修改后的脏词,这个是用FileAlterationListenerAda原创 2016-05-29 15:15:25 · 1672 阅读 · 0 评论 -
idea 15 license server
http://idea.lanyus.comhttp://www.iteblog.com/idea/key.php原创 2016-06-01 13:10:51 · 599 阅读 · 0 评论 -
线程池ThreadPoolExecutor的使用方法
private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue(100000),new ThreadPoolExecutor.CallerRunsPolicy());一、简介 线程池类为 java.ut转载 2016-08-22 11:38:34 · 3200 阅读 · 0 评论 -
利用Future异步获取多线程的返回结果
Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。有了Future就可以进行三段式的编程了,1.启动多线程任务2.处理其他事3.收集多线程任务结果。从而实现了非阻塞的任务调用。在途中遇到一个问题,那就是虽然能异步获取结果,但是Future的结果需要通过isdone来判断是否转载 2016-08-29 12:11:05 · 17468 阅读 · 3 评论