随笔分类 - JAVA
摘要:因为在SpringBoot中默认使用的Logback日志系统,所以SpringBoot已经集成了相关依赖,无需多余的依赖,只需在src/main/resources文件夹下,增加logback-spring.xml这个配置文件,并根据自己需要进行配置即可。 一、logback-spring.xml配
阅读全文
摘要:之前写过JAVA中创建线程的三种方法及比较。这次来说说线程池。 JAVA中创建线程池主要有两类方法,一类是通过Executors工厂类提供的方法,该类提供了4种不同的线程池可供使用。另一类是通过ThreadPoolExecutor类进行自定义创建。 一、通过Executors类提供的方法。 1、ne
阅读全文
摘要:JAVA中汉字转拼音的方法并不复杂,可以使用pinyin4j包来实现。 一、下载pinyin4j的架包,并导入项目中,如下: 如果是maven项目,maven依赖如下: 1 <dependency> 2 <groupId>com.belerweb</groupId> 3 <artifactId>pi
阅读全文
摘要:问题: 在springboot项目中使用@RequestBody注解接收post请求中body里的json参数的情况。即: 此时,当传递的json参数中,参数名不是userName而是user_name时,会接收不到,相当于使用了@JSONField注解无效果。 解决方案: 改为使用@JsonPro
阅读全文
摘要:FastJson序列化时(即转成JSON字符串时),可以过滤掉部分字段,或者只保留部分字段,方法有很多,下面举一些常用的方法。 方法一、FastJson的注解 最便捷,直接在实体的字段上加FastJson的注解serialize = false,转JSON字符串时就不会有该字段。 方法二、JAVA关
阅读全文
摘要:StopWatch翻译过来的意思就是秒表,其作用也就像我们平时使用的秒一样。spring中就有提供这个工具类(org.springframework.util.StopWatch)。 日常开发中,经常需要看方法各部分的耗时,通常的做法就是通过插桩的方式来统计耗时,如下: 如果有多个就要重复写多个,比
阅读全文
摘要:异常处理中,try、catch、finally的执行顺序,大家都知道是按顺序执行的。即,如果try中没有异常,则顺序为try→finally,如果try中有异常,则顺序为try→catch→finally。但是当try、catch、finally中加入return之后,就会有几种不同的情况出现,下面
阅读全文
摘要:JAVA中生成指定位数随机数的方法很多,下面列举几种比较常用的方法。 方法一、通过Math类 1 public static String getRandom1(int len) { 2 int rs = (int) ((Math.random() * 9 + 1) * Math.pow(10, l
阅读全文
摘要:JAVA中List对象去除重复值,大致分为两种情况,一种是List<String>、List<Integer>这类,直接根据List中的值进行去重,另一种是List<User>这种,List中存的是javabean对象,需要根据List中对象的某个值或某几个值进行比较去重。方法如下: 一、List<
阅读全文
摘要:下面讲一下ArrayList初始化的几种不同方式。 一、最常用的初始化方式。 这是比较常用的方式,先创建一个list1,再给list1赋值。 二、使用一个List来初始化。 这种方式跟第一种方式有点相似,只是在创建list2的时候,直接提供了一个List的值来初始化就可以,使用起来还是比较方便的。这
阅读全文
摘要:首先看下break和continue的使用方法。 break语句在循环和switch语句中使用,用于终止最近的封闭代码块,如果在嵌套循环中,则只终止最近的循环。 continue语句在循环中使用,不能单独在switch中使用,可以在循环内的switch中使用,用于跳过当次循环,直接进入下一次循环。
阅读全文
摘要:一、RSA加密简介 RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存
阅读全文
摘要:google的protobuf对象转json,不能直接使用FastJson之类的工具进行转换,原因是protobuf生成对象的get方法,返回的类型有byte[],而只有String类型可以作为json的key。google有提供专门的架包,方便protobuf与json之间相互转换。方法如下: 1
阅读全文
摘要:日期的格式有很多形式,在使用过程中经常需要转换,下面是各种类型转换的使用例子以及日期计算方法的例子。 一、不同格式日期相互转换方法 例子中,setLenient方法默认值为true,意思为宽泛的日期格式校验,比如20180532这样的值转date类型,会自动变成20180601。如果需要严格的日期校
阅读全文
摘要:JAVA的反射机制主要作用是用来访问对象的属性、方法等等。所以,JAVA中对象和Map相互转换可以利用JAVA的反射机制来实现。例子如下: 一、对象转Map的方法 本例中,使用了getMethods()方法,支持获取对象父类的私有属性。这里也可以使用getDeclaredMethods()方法来代替
阅读全文
摘要:JAVA中限制接口流量可以通过Guava的RateLimiter类或者JDK自带的Semaphore类来实现,两者有点类似,但是也有区别,要根据实际情况使用。简单来说, RateLimiter类是控制以一定的速率访问接口。 Semaphore类是控制允许同时并发访问接口的数量。 一、RateLimi
阅读全文
摘要:JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现。获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过MessageDigest类进行MD5加密,第三步转换成16进制的MD5码值。几种方法的不同点主要在第一步和第
阅读全文
摘要:JAVA中比较两个文件夹不同的方法,可以通过两步来完成,首先遍历获取到文件夹下的所有文件夹和文件,再通过文件路径和文件的MD5值来判断文件的异同。具体例子如下: 用到的文件model
阅读全文
摘要:JAVA中生成、解析二维码的方法并不复杂,使用google的zxing包就可以实现。下面的方法包含了生成二维码、在中间附加logo、添加文字功能,并有解析二维码的方法。 一、下载zxing的架包,并导入项目中,如下: 最主要的包都在com.google.zxing.core下。如果是maven项目,
阅读全文
摘要:之前有写过运用POI的HSSF方式导出数据到Excel(见:springMVC中使用POI方式导出excel至客户端、服务器实例),但这种方式当数据量大到一定程度时容易出现内存溢出等问题。 首先,POI提供了HSSF、XSSF以及SXSSF三种方式操作Excel。他们的区别如下: HSSF:是操作E
阅读全文