随笔分类 - java
摘要:一、使用idea设置参数 idea配置如下: 如图分别为ParamDemo这个带main方法的类,设置VM Options为-DvmParam="hello",设置Program arguments为a b c。 public class ParamDemo { public static void
阅读全文
摘要:首先看一个例子: package BigDecimalDemo; public class Demo { public static void main(String[] args) { double d1 = 0.05; double d2 = 0.02; System.out.println(d
阅读全文
摘要:创建线程池的构造函数如下: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, T
阅读全文
摘要:ThreadLocal从字面意思来看是线程本地(变量),有什么作用呢? 存放在ThreadLocal中的变量值只在当前线程中可见及使用。那仅在当前线程可用,自然就不存在多线程并发冲突问题,是一种空间(每个线程单独存储变量)换时间的解决多线程并发问题的方式。 下面举例说明: package threa
阅读全文
摘要:假设有如下目录结构的代码,现在想要获取test.txt文件中的内容,test.txt中的内容为hello world。 问题代码如下: package mvnDemo; import org.apache.commons.io.FileUtils; import org.apache.commons
阅读全文
摘要:场景 当我们调用某个方法,需要有超过一个值的返回时,我们通常会怎么做,比如现在需要调用方法返回姓名和年龄两个属性(假如姓名为张三,年龄为12)。 方式一:使用Map,将Map中分别放入name为key,张三为value;age为key,12为value。 缺点是需要定义key值,且书写语法比较繁琐。
阅读全文
摘要:使用maven打包java的jar包时,通常有两种情况: 将依赖打到外部文件夹,将源码单独打jar包运行; 将依赖和源码一起打到jar包中运行。 下面举例说明这两种情况: 建立如下测试类,依赖一个common-lang包(用于测试外部依赖): package mvnDemo; import org.
阅读全文
摘要:当进行string类型变量的相等比较时,一般采用StringUtils.equals这个方法,此方法比较时是区分大小写的,即abc和AbC之间比较是不相等的。但有些时候我们比较的时候并不关心大小写,只要字母相同即可,此时就可以使用StringUtils.equalsIgnoreCase这个方法。下面
阅读全文
摘要:如下场景:我们在一个线程池中提交了多个任务,多个任务的执行时长不一样,而且我们想按执行时间的长短(先拿到执行时间短的任务的结果,再拿执行时间长的任务的结果)来依次获取任务的返回结果。 那可以应用CompletionService来方便的处理这个场景。 示例代码如下: package completi
阅读全文
摘要:示例如下: package shutdownHookDemo; public class Demo { public static void main(String[] args) { System.out.println("hello world"); Runtime.getRuntime().a
阅读全文
摘要:pagehelper库(https://github.com/pagehelper/Mybatis-PageHelper)是java后端开发领域比较常用的分页插件库,能够很好的实现分页需求。这次记录一下他的另外一个功能,就是在分页的同时传入自定义的排序条件,比如会遇到如下需求,分页查询某些表格数据后
阅读全文
摘要:ThreadLocal是线程本地变量的意思,即可以将变量控制在当前线程中,这样就避免了多线程并发的复杂处理,Spring中就有大量使用。下面分析下常用的API。 ThreadLocal-set public void set(T value) { Thread t = Thread.currentT
阅读全文
摘要:在项目中经常出现多次读取HTTP请求体的情况,这时候可能就会报错,原因是读取HTTP请求体的操作,最终都要调用HttpServletRequest的getInputStream()方法和getReader()方法,而这两个方法总共只能被调用一次,第二次调用就会报错,那如何解决这个问题呢?以若依框架中
阅读全文
摘要:1 jps-Java Virtual Machine Process Status Tool jps -l :输出完全的包名,应用主类名,jar的完全路径名。 2 jinfo-Java Virtual Machine Java Configuration Info jinfo -flags pid
阅读全文
摘要:浮点数没有办法用二进制进行精确表示,于是就会出现下面类似的情况: package demo; import java.math.BigDecimal; public class BigDecimalDemo { public static void main(String[] args) { dou
阅读全文
摘要:发现在很多能根据MySQL数据库表结构自动生成 bean,mapper,service,controller的开发框架中,如果字段的数据类型是int,一般都是对应于java类型中的Long类型,这是为何? 下图展示MySQL中int分别为有符号及无符号的情况下的取值范围;展示java中Integer
阅读全文
摘要:Objects.equals判空处理语法糖 先看一个例子: package demo; import java.util.Objects; public class objectsUtilDemo { public static void main(String[] args) { Object o
阅读全文
摘要:java对象判空时需使用null == obj。不能使用obj.equals(null),因为我们判空的前提是对象可能是null,null去调用equals方法显然是会抛出空指针异常。举例如下: package demo; public class ObjectEqualsDemo { public
阅读全文
摘要:StringUtils提供了字符串首字母大写以及小写的api,示例如下: package demo; import org.apache.commons.lang3.StringUtils; public class CapitalizeDemo { public static void main(
阅读全文
摘要:有如下需求,生成以a开头后边是5为的顺序数的序列号,如a00001,a00002,a00003......,怎么处理呢,使用commons-lang3中的StringUtils.leftPad实现: package demo; import org.apache.commons.lang3.Stri
阅读全文