
Java技术基础
文章平均质量分 56
欢迎来到我的Java技术专栏!在这里,我将带你深入探索Java编程的世界,从基础知识到高级技巧,涵盖最新技术和最佳实践。无论你是初学者还是经验丰富的开发者,都能找到有价值的内容。每周更新,内容包括核心语法、设计模式、框架应用、性能优化等。让我们一起提升编程技能,解决实际问题,成为更好的Java开发人
生活不只*眼前的苟且
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mybatis-generator-maven-plugin插件自动生成代码的配置方法
1. 第一步,在pom文件中引入如下插件<plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> ...原创 2017-03-04 22:08:26 · 13640 阅读 · 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 · 452 阅读 · 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 · 2830 阅读 · 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 · 33112 阅读 · 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 · 8463 阅读 · 7 评论 -
Java实现redis管道
redis的管道就是可以在给redis服务端发送了一个命令后,不用等待该命令执行返回,而继续发送下一个命令。最终将结果一起返回给客户端,这样可以显著提供响应时间,测试例子如下:@Test public void test() { Jedis jedis = new Jedis("localhost"); jedis.auth("123");原创 2016-06-29 15:12:54 · 4405 阅读 · 0 评论 -
Jvm学习心得
1. 配置虚拟机参数在内存溢出时导出整个堆信息-XX:+HeapDumpOnOutOfMemoryError,该参数可在内存溢出时导出整个堆信息-XX:HeapDumpPath, 该参数配合上述参数适用,可以指定导出堆的文件存放路径例子: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/a.dump原创 2016-06-29 17:02:15 · 440 阅读 · 0 评论 -
Java虚拟机层面的几种锁
1. 偏向锁当一个锁被线程获取后,这个线程便进入偏向模式,当线程再次请求这个锁时,无需再进行相关的同步操作,从而节省了时间。如果在此之前,其他线程进行了锁请求,则原线程退出偏向模式。当对象处于偏向模式时,对象头的Mark Word会记录获取锁的线程JavaThread* | epoch | age | 1 | 01这样,当该线程再次尝试获取该对象锁时,通过Mark Word原创 2016-06-30 16:45:32 · 1129 阅读 · 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 · 282968 阅读 · 30 评论 -
maven编译的时候出现一大堆Test相关的错误
------------------------------------------------------ T E S T S-------------------------------------------------------------------------------------------------------------- T E S T S----------原创 2016-07-13 10:14:58 · 20873 阅读 · 0 评论 -
根据需要为不同的类设置不同的输出日志名称及日志格式
web应用的日志不一定全部都要打到catalina.out文件中,可以根据需求,将不同的日志输出到不同的文件中,所以可以在log4j.properties日志文件中配置多个输出日志的模式,每个模式都会有一个名称,比如如下的名称“web”1. 一般在类中通过如下方式获取LOG对象protected static final Log LOG = LogFactory.getLog("web");原创 2016-07-19 17:09:22 · 1541 阅读 · 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 · 18561 阅读 · 0 评论 -
正则表达式匹配任意字符
最开始以为.* 可以匹配任意字符,后来发现有问题,匹配不了换行符\n查了下资料,用[\s\S]*匹配可以 解释:\s空白符,\S非空白符,所以[\s\S]是任意字符原创 2016-08-04 14:08:02 · 197049 阅读 · 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 · 589 阅读 · 0 评论 -
idea 15 license server
http://idea.lanyus.comhttp://www.iteblog.com/idea/key.php原创 2016-06-01 13:10:51 · 686 阅读 · 0 评论 -
java用DFA实现脏词过滤以及用FileAlterationListenerAdaptor实现对资源文件修改的动态监听
最近在跟朋友做一个博客网站,里面涉及一些脏词过滤算法,查了很多资料总结来说DFA算法是比较理想的,效率高。脏词本身是一个可以配置的东西,所以不能在程序中将脏词写死,否则要修改或者添加一些新的脏词还需要修改代码重新启动服务器,这显然是不可行的,所以脏词需要做成一个配置文件,并且当配置文件修改后,我不需要重启服务器就可以自动监测到修改后的脏词,这个是用FileAlterationListenerAda原创 2016-05-29 15:15:25 · 1756 阅读 · 0 评论 -
引入了junit为什么还是用不了@Test注解
pom文件明明引入了unit,为什么还是用不了@Test?配置如下: junit junit ${junit.version} test原因:上述scope配置了Junit可用的位置,test表示只能在src下的test文件夹下面才可以使用解决办法:去掉scope配置就可以了原创 2016-05-28 16:04:55 · 35804 阅读 · 14 评论 -
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 · 514 阅读 · 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 · 2996 阅读 · 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 · 20868 阅读 · 1 评论 -
URLEncoder.encode的默认编码问题
今天要实现的一个功能是在页面上上传文件到后台,文件是txt格式,每行是一个url,后台读取后,对路径中的中文进行url编码如下是我的代码:Pattern chinesePattern = Pattern.compile("[\\u4e00-\\u9fa5]+"); MultipartFile file = null; try { bo原创 2017-08-16 16:12:40 · 8312 阅读 · 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 · 41530 阅读 · 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 · 10441 阅读 · 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 · 830 阅读 · 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 · 409 阅读 · 0 评论 -
遍历map时删除不需要的元素方法
Iterator iterator = ambiMap.keySet().iterator();while(iterator.hasNext()) { String title = iterator.next().toString(); iterator.remove();}原创 2016-05-19 15:02:09 · 1032 阅读 · 0 评论 -
java代码传中文参数乱码
原因: idea编码设置的问题解决方法: 在idea右下角可以设置编码,设置成utf-8就好了原创 2016-05-19 15:25:07 · 558 阅读 · 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 · 1176 阅读 · 0 评论 -
java代码中发送http请求的DnsResolver使用问题
http请求中使用DnsResolver的方式有两种,一种是使用默认的DnsResolver,一种是自定义一种DnsResolver1. 使用默认的DnsResolverDnsResolver dnsResolver = new SystemDefaultDnsResolver();原创 2016-05-20 19:55:49 · 5479 阅读 · 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 · 1052 阅读 · 0 评论 -
Md5思想
1. md5一般是用来做摘要认证,验证文件是否被修改过,所以传输的数据包括两部分,一个是要传输的内容,一个是内容的md5值,当然发起方和接收方必须有一个共同的秘钥2. 将要传输的内容和秘钥拼接起来做md5得到md5只,即:md5值=md5(内容+秘钥)3. 将md5值和内容一起传给接收方4. 接收方因为有秘钥,现在也有了内容,可以通过md5(内容+秘钥)这个相同的方法来计算md5值,再原创 2016-08-11 19:34:22 · 629 阅读 · 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 · 1295 阅读 · 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 · 2218 阅读 · 0 评论 -
nested exception is java.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharset()
我的代码调用了一个http接口,抛出了如下异常:org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharset...原创 2016-12-22 16:43:41 · 19692 阅读 · 1 评论 -
java.lang.ExceptionInInitializerError解决办法
我仅仅是在Junit代码中执行了如下一行代码,竟然抛出了异常,我震惊了, 我只是构造了一个对象啊DefaultHttpClient client = new DefaultHttpClient();于是我跟踪该构造函数,最后发现是在如下代码处抛出的异常:private final Log log = LogFactory.getLog(getClass());...原创 2016-12-28 17:21:03 · 88961 阅读 · 0 评论 -
Caused by: java.nio.channels.NotYetConnectedException: null
15:04:12.004 [CuratorFramework-0] ERROR org.apache.curator.ConnectionState - Connection timed out for connection string (10.241.81.35:2181,10.241.81.36:2181,10.241.81.37:2181,10.241.81.38:2181,10.241.原创 2016-12-29 15:07:50 · 7222 阅读 · 4 评论 -
mac安装微擎后台
网上关于windows环境下安装微擎,有非常方便的教程,微擎官网或者微擎论坛有非常详细的介绍windows环境安装微擎的办法,但是mac或者linux环境却没有太详细的介绍其实安装微擎,说到底就是要安装好apache+php+mysql所以我们要做的就是配置好上述三个软件,这三者的安装可以参考我的另外一篇博客,地址如下:http://blog.youkuaiyun.com/u011734144/a原创 2016-12-31 22:30:37 · 1806 阅读 · 0 评论 -
多线程join方法解析
从毕业到现在一直是在做java开发,现在转到数据组,要切换语言到python了,这里用python语言来解释join方法的用途,java大同小异直接上代码,并参考代码注释:import threadingimport timedef print_time(threadName, delay, counter): while counter: time.sle原创 2017-02-14 17:48:10 · 529 阅读 · 0 评论 -
Java程序莫名其妙卡死的一次经历
因为业务需要,经常需要处理几千万行的数据文件,逐行处理并写到新的文件程序运行的过程中偶尔会发现,程序运行到一定时候,输出文件的内容没有增加了,就是感觉程序卡死了后来经过同事提醒,原来是我的代码中的下载图片的http请求导致的问题,http请求一直得不到响应,一直卡在那里,又没有设置超时,所以一直等待解决办法:对http请求设置连接超时时间,数据传输超时时间,我的下载图片的代码的设...原创 2017-02-21 12:42:41 · 11592 阅读 · 0 评论 -
Unsupported major.minor version 52.0解决
最近开始玩hadoop,按照慕课网的教程,写好了WordCount类,代码如下:package hadoop.study;import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.原创 2017-03-06 17:30:16 · 2167 阅读 · 0 评论