
Java开发
Clement-Xu
经验总结。
展开
-
使用POI和Java反射机制导出数据到excel中
使用POI和Java反射机制导出数据到excel中,可以自由地选择实体类中的某些属性到excel中。原创 2014-12-24 09:54:07 · 3129 阅读 · 0 评论 -
Java系统中,使用log4j2,再引入Kafka依赖后,出现log dependency警告的解决
Java系统中,已经使用log4j2,如果再引入Kafka依赖,会出现log dependency警告,大概是说有重复的slf4j库,而且会提示找不到log4j的配置文件。原因:1、kafka的java实现使用的是log4j1.2,kafka依赖自动引入了log4j1.2相关的依赖,导致和log4j2依赖重复。2、kafka的java实现使用的是log4j1.2,所以它要搜索名原创 2016-05-12 16:57:09 · 4630 阅读 · 0 评论 -
日期工具类,根据日期格式自动选择格式类型
日期工具类,经常会用到把String转成Date或long类型的方法,一般需要指定格式类型(pattern,比如"yyyy-MM-dd HH:mm:ss")。这种方法有个缺点就是需要指定一个pattern,如果格式变化了,就得改代码。利用正则表达式,可以解决这个问题。原创 2016-05-05 19:33:31 · 2276 阅读 · 0 评论 -
Java 正则表达式语法规则、字典、索引
正则表达式参考文档。原创 2015-06-27 14:38:42 · 2913 阅读 · 1 评论 -
随机获取一个集合(List, Set)中的元素,随机获取一个Map中的key或value
利用Java提供的Random类,从List或Set中随机取出一个元素,从Map中随机获取一个key或value。由于Set没有提供get(int index)方法,只能先获取一个随机数后,利用一个计数器,对Set进行循环,当计数器等于随机数时返回当前元素,对于Map的处理也类似。不知有没有更好的方法……原创 2015-06-30 20:18:51 · 20152 阅读 · 3 评论 -
Java8 Streams API 学习笔记
Java8 Streams API 学习总结原创 2016-11-08 18:28:01 · 2419 阅读 · 0 评论 -
spring boot log4j2配置(使用log4j2.yml文件)
在spring boot中,配置log4j2的几个简单步骤(使用yml文件):原创 2016-05-25 15:42:03 · 32174 阅读 · 14 评论 -
MyBatis循环获取Map中的key和value的方法
有时候需要简单地把一个Map中所有的key和value获取出来,拼到sql语句中。MyBatis提供的一种方法是遍历Map中的entrySet,然后把key扔进index里面,value扔进item中。具体的一个使用的例子如下: INSERT INTO table_name(hot_word, cnt) VALUES #{key}, #{value} ON DU原创 2017-02-14 15:05:54 · 21432 阅读 · 0 评论 -
MongoTemplate使用Cursor处理大数量的数据
对于数据量巨大的情况下,使用mongoTemplate.find()方法返回一个列表,如果不分页的话恐怕比较麻烦。mongoTemplate提供了另外一种方法,使用游标逐个获取数据,同时可以指定只获取哪些域,而不是全部获取回来。原创 2017-02-15 16:09:28 · 14156 阅读 · 5 评论 -
java执行windows、shell命令
Java中调用windows命令,可以一次性执行多个命令。稍微改一下,也可以执行Linux l命令或shell脚本。原创 2017-03-16 16:20:07 · 5662 阅读 · 0 评论 -
Java从一个连续的自然数区间中,随机获取几个数(这几个数是固定的,一种抽奖算法及节省空间地保存结果)
一种可以节省空间地保存结果的抽奖算法:从一个连续的自然数区间中,随机获取几个数(这几个数是固定的)。原创 2017-08-31 14:35:00 · 1943 阅读 · 0 评论 -
随机验证码生成(生成一个含有n位随机数字的字符串)
一种简单地生成随机验证码的方法。原创 2017-08-31 14:42:02 · 3625 阅读 · 0 评论 -
javaMail直接发送附件,无须生成临时文件
javaMail直接发送附件,无须生成临时文件原创 2017-12-07 17:24:06 · 5998 阅读 · 2 评论 -
log4j2 记录本机ip
一种简单的记录本机ip到log4j2中的方法:1、项目启动的时候获取本机ip,保存到System变量中: /** * 获得本机的内网地址(String) */ private String getLocalIp(){ try { return InetAddress.getLocalHost().getHostAd...原创 2018-12-20 09:55:58 · 3896 阅读 · 0 评论 -
Java的反射(Reflection)、内省(Retrospector)和beanUtils工具
反射(Reflection):加载类,并解剖出类的各个组成部分(反射就是解剖的意思)加载类,获得类的字节码(三种方式):Class clazz1 = Class.forName("cn.xxx.bean.Person");Class clazz2 = new Person().getClass();Class clazz3 = Person().class;原创 2016-02-04 15:59:49 · 4060 阅读 · 4 评论 -
限制Map大小的实现方法
需求:有时候需要往一个MAP中写入一些记录,但又怕无限制地写入会导致内存爆掉,所以得限制这个MAP的大小。实现:LinkedHashMap提供了简单的方法。首先,定义一个最大数,比如1000,然后new LinkedHashMap的时候,重写一下removeEldestEntry()方法:int maximumSize = 1000;LinkedHashMap myMap原创 2016-01-27 19:12:23 · 13564 阅读 · 0 评论 -
try{} catch{} finally{} 语句注意事项总结
try{} catch{} finally{} 语句注意事项:如果有一个catch{}语句匹配上,其他catch{}分支就不会执行了try{}里面如果有return,也会先执行finally{}里面的语句,之后再return如果try{}和finally{}里面都与return语句,则try{}里面的return不会被执行finally{}部分什么情况下不会被执行?在t原创 2015-06-17 19:55:08 · 2518 阅读 · 0 评论 -
正则表达式工具类
一个利用正则表达式来从文本中过滤提取数据的工具类。可以用来抓取网页后过滤所需的文本。^_^正则表达式语法规则可参考:http://blog.youkuaiyun.com/clementad/article/details/46661279代码如下:package com.xjj.util;import java.util.ArrayList;import java.util.原创 2015-06-27 15:20:12 · 1391 阅读 · 0 评论 -
Java中String、StringBuilder和StringBuffer的简单区别
String、StringBuilder和StringBuffer的简单区别如下:String:不可变的对象,对String对象进行改变的时候等同于生成了一个新的String对象,然后将引用指向新的String对象,原String对象GC回收。StringBuffer:字符串变量(线程安全),适用于多线程程序中,保证同步性。StringBuilder:字符串变量(非线程安全),适用于单原创 2015-01-17 14:40:14 · 1698 阅读 · 0 评论 -
\r与\n有何区别,编码的时候应该如何使用
区别:\r:全称:carriage return (carriage是“字车”的意思,打印机上的一个部件)简称:return缩写:rASCII码:13作用:把光标移动到当前行的最左边\n: 全称:new line别名:line feed缩写:nASCII码:10作用:把光标向下移动一行不同操作系统怎样表示“回车+换行”(即一行的结束):U原创 2015-07-27 19:09:45 · 4214 阅读 · 1 评论 -
JVM调优
查看内存分配情况:> jmap -heap > jinfo -flag PermSize 如(“7208”是tomcat的pid):> jinfo -flag PermSize 7208 (查看当前已经分配的PermSize)> jinfo -flag MaxPermSize 7208 (查看MaxPermSize)(注:java8已经不用配置PermSize/Ma原创 2015-01-29 21:18:43 · 1025 阅读 · 0 评论 -
JDK、Spring、Quartz等几种不同定时器的用法,以及cronExpression表达式定义
介绍几种Java、Spring、Quartz定时器及其实现方法,以及cronExpression表达式定义。原创 2014-12-20 13:14:27 · 9260 阅读 · 0 评论 -
INI文件格式以及Java编码实现读取
INI是 initialization的缩写。INI文件是一种轻量级的配置文件,广泛地用于各种操作系统和软件中。INI文件是一种简单的文本文件,基本结构很简单、可读性高,必要的元素只有两种:section、property(包括name/key和value)。历史:在MS-DOS和16位Windows系统中,直到Windows ME为止,都是使用INI文件作为操作系统配置文件(比如原创 2015-07-31 16:48:53 · 11261 阅读 · 4 评论 -
线程及其创建的方式
线程主要发挥作用的时候:当一个线程所执行的I/O被阻塞的时候,同一进程中的其他线程可以使用CPU来进行计算。这样,就提高了程序的执行效率。状态:运行、就绪(等待被调用)、阻塞(等待I/O资源)两种创建方法:继承Thread类,并override其中的run()方法(当一个类没有继承其他类的时候,适合用这种方法)实现Runnable接口,并实现run()方法(当一原创 2015-07-23 20:07:09 · 1277 阅读 · 1 评论 -
Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题,及处理方法
在Windows下用文本编辑器创建的文本文件,如果选择以UTF-8等Unicode格式保存,会在文件头(第一个字符)加入一个BOM标识。这个标识在Java读取文件的时候,不会被去掉,而且String.trim()也无法删除。如果用readLine()读取第一行存进String里面,这个String的length会比看到的大1,而且第一个字符就是这个BOM。这种情况会造成一些原创 2015-07-31 13:04:15 · 19166 阅读 · 3 评论 -
Cookie的主要属性及Java实现
Cookie:服务器发送给浏览器的一个标记,通过Response Header中的Set-Cookie头发送。浏览器请求的时候,会通过Request Header中的Cookie头把它发送回给服务器。主要属性:name-value对:不言自明Expires:过期时间Path:cookie在哪个路径下生效。比如www.abc.com/a/index.html设置了一个原创 2015-09-15 19:09:43 · 3774 阅读 · 0 评论 -
枚举enum用法总结
枚举类型不但可以用来直观地定义常量,同时还可以定义和该常量相关的一些属性。最基本的用法;带有一个相关属性的定义和用法;带有多个相关属性的定义和用法遍历;原创 2016-01-02 12:21:38 · 3836 阅读 · 0 评论 -
如何判断Map中的key或value类型
对于某些从泛型(比如:Map)中继承过来的数据,K可能是String、Integer、等等。如果需要map.get(key),得先确保key的类型跟map的K匹配。对于key类型的判断,大概的思路:通过map.keySet()获取key的集合,存在Set类型变量中;然后用一个Object接收第一个key;然后有两种方法判断它的类型:1、instanceof2、class 的 equal原创 2015-12-23 18:24:42 · 16068 阅读 · 0 评论 -
MyBatis使用@MapKey注解接收多个查询记录到Map中,以便方便地用get()方法获取字段的值
需求场景:批量从数据库查出若干条数据,包括id和name两个字段。希望可以把结果直接用Map接收,然后通过map.get(id)方便地获取name的值。问题:如果使用下面的代码,则如果查询结果是多条就会报错,因为MyBatis是把结果以("id":123)、("name":"Jack")的形式保存在Map中的。所以如果返回结果一条包括了id和name的记录就没问题;如果返回多条原创 2016-01-26 19:53:24 · 22886 阅读 · 2 评论 -
Java mail SendFailedException: Invalid Addresses 原因和解决
问题:使用javaMail发送邮件时(群发),出现异常,提示信息为:org.springframework.mail.MailSendException: Failed messages: javax.mail.SendFailedException: Invalid Addresses; nested exception is: com.sun.mail.smtp.SMTPAdd...原创 2019-09-10 11:14:25 · 19274 阅读 · 0 评论