Java零碎
文章平均质量分 68
Balalalalalalalala
Details makes perfect
展开
-
Java 获取 URL 中的域名
靠谱工具类原创 2022-08-20 17:04:13 · 1694 阅读 · 0 评论 -
flatten-maven-plugin 的使用
引入 flatten-maven-pluginflatten-maven-plugin 插件的功能就不赘述了,网上也有很多文章描述这一块的内容。以一个 maven 多模块的项目为例,使用的时候直接在项目的父 pom 里加入如下的配置: <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId>原创 2022-01-17 22:06:18 · 20461 阅读 · 4 评论 -
Java 通过反射获取定义在方法参数上的注解
先来看一段 Spring MVC 经常用到的定义在方法参数上的注解:@RestController@RequestMapping("/param")public class ParamTestController { @PostMapping("/upload") public void upload(@RequestParam("userId") long userId, @RequestParam(value = "file", required = false) Multipar原创 2020-05-18 00:31:57 · 8236 阅读 · 5 评论 -
Java类型Type 之 ParameterizedType,GenericArrayType,TypeVariabl,WildcardType
Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType详解和反射+泛型有关的接口类型java.lang.reflect.Type:java语言中所有类型的公共父接口java.lang.reflect.ParameterizedTypejava.lang.reflect.GenericArrayTypejava....转载 2020-02-22 13:52:08 · 1173 阅读 · 2 评论 -
Java如何获取泛型类型
Java 运行时如何获取泛型参数的类型从实现的接口获取泛型参数定义一个泛型父类:public interface SuperClass<P> { String process(P p);}实现类1:public class OneImpl implements SuperClass<House> { @Override public ...原创 2020-02-22 01:05:20 · 2748 阅读 · 2 评论 -
介绍一款基于MVEL简单规则引擎
参考原文A Really Simple But Powerful Rule EngineMVEL 介绍最近正好做到规则引擎相关的需求,于是就预研了一下,找到一些可以满足我需求的技术。首先会引入一个东西——MVEL,怎么定义MVEL表达式,参看MVEL Guide。来一段代码看一下MVEL的功能,首先引入MVEL解析库: compile 'org.mvel:mvel2:2.3.2.Final'原创 2017-09-23 13:57:28 · 9223 阅读 · 1 评论 -
Java对Collections进行分组
在处理批量数据的时候,查出一批数据后想分组处理咋办,有什么简便的方法吗? 准备一点数据: public class User { private Integer id; private String type; private String name; private String date; private BigDecimal money; pri原创 2017-09-15 21:34:54 · 11132 阅读 · 0 评论 -
poi操作excel之: 将NUMERIC转换成TEXT
没办法,企业业务系统总是避免不了要使用excel进行导入和导出,本代码使用的poi版本是3.16:一、NUMERIC TO TEXT(生成excel)代码生成一个excel文件:public static void generateExcel() throws Exception { XSSFWorkbook workbook = new XSSFWorkbook();原创 2017-08-23 23:58:51 · 7291 阅读 · 1 评论 -
使用Optional去替换null check
“hi 伙计,你的代码又抛出了一个NullPointerException,哈哈!” “你烦不烦人,事情辣么多,我还要分神去检查null。”如下的null check代码在一般的项目中就特别的多:User user = userService.getUserById(12);if (null != user) { // balabala}Java8 提供了Optio原创 2017-08-20 11:48:46 · 7668 阅读 · 0 评论 -
java.io.EOFException: Unexpected end of ZLIB input stream解决
EOFException 表示异常文件结尾,说明读取的数据是不完整的。我在线上就遇到过类似的问题,在请求高峰时期就抛出了这个异常。下面是我的代码: FileOutputStream fileOutputStream = null; try { //得到文件 File file = new File(fileName);原创 2017-08-05 17:57:02 · 40864 阅读 · 0 评论 -
处理Java异常的不定法则
由于天天写bug,代码里各个地方充斥着对异常的处理,有时候思路被卡住:这个地方是该抛异常呢,还是我就地解决?是抛出受检异常(Exception)还是抛出非受检异常(RuntimeException)呢?这个异常带不带状态码啊?常常在想,有没有什么好的定律可以指导我优雅地处理Java异常。目前项目中常见的抛异常的做法是public interface IExceptionCode { ...原创 2018-02-12 21:40:13 · 1153 阅读 · 0 评论 -
Jar包冲突引发的血案
Spring Boot和RabbitMq集成的时候,引入compile("org.springframework.boot:spring-boot-starter-amqp")在运行项目的时候报了错: Caused by: java.lang.NoClassDefFoundError: com/rabbitmq/client/QueueingConsumer at ja...原创 2018-02-09 23:37:41 · 4725 阅读 · 2 评论 -
Log4j2 + SLF4J开箱即用的配置
网上有很多关于Log4j2和SLF4J的文章,我就不再赘述了,直接上我在项目中的使用的log4j2.xml配置文件,也算是一个总结记录吧,以后随时补充进来。Maven dependency&amp;amp;amp;amp;amp;amp;lt;dependencies&amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;lt;!-- log4j2核心包 --&amp;amp原创 2018-07-29 17:35:10 · 665 阅读 · 0 评论 -
Maven dependencyManagement中的依赖版本会覆盖传递依赖版本
最近在项目中使用Maven遇到一个问题,明明传递依赖进来的是最新版本,但引用的还是旧版本。原来在parent pom中的dependencyManagement里指定了一个低版本的依赖,然后传递进来的依赖就是低版本了。在Maven官方文档中Introduction to the Dependency Mechanism有一段话:Dependency management - this al...原创 2018-08-19 21:51:51 · 29362 阅读 · 5 评论 -
Java 结合多线程实现简单 HTTP 服务器
能自己实现一个简单的 HTTP 服务器,还有些小激动的。 实现给客户端返回 HTML 文本和 二进制文件(图片), 啥也不说了,直接上码吧: import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.SynchronousQueue;impor...原创 2018-09-09 17:10:12 · 3247 阅读 · 0 评论 -
Java 命令报错:找不到或无法加载主类
我使用的 Java 版本是:java version "1.8.0_191"代码目录结构:ClassPathDemo.java:package com.jiaobuchong;import java.util.HashSet;import java.util.Set;import org.apache.commons.lang3.StringUtils;public cla...原创 2019-04-06 10:22:50 · 6177 阅读 · 0 评论 -
OAuth 授权链接里的回调地址参数丢失
OAuth 的授权链接里有一个回调地址的参数:https://developers.e.qq.com/oauth/authorize?client_id=123456&redirect_uri=https://www.baidu.com?platform=jiaobuchong&name=jack&state=&scope=ADS_MANAGEMENT这个授权...原创 2019-04-16 23:07:48 · 4398 阅读 · 0 评论 -
Java根据对象的某个字段排序
正好最近在项目开发中需要对保存在一个List中的对象根据其字段排序,遂总结一下吧,作为一个代码的搬运工,也是需要理解其原理的。来一个简单的Person类: public class Person { private Long id; private String name; public Person(Long id, String name) { this.id原创 2017-01-15 22:35:22 · 15354 阅读 · 0 评论 -
总结几个问题啦
第一个问题一个用户下了单,然后用户无奈的发现自己支付成功的订单变成已失效了。 其中代码的流程是: 支付系统将支付结果 回调传给SOA服务,SOA服务去更改用户订单状态为 已支付。这一过程要失败了,定时任务就会将这个订单状态置为 已失效,然后用户就懵逼了,明明支付成功了,却变成无效订单了。要是我,肯定急眼了。导致的问题: 支付系统在回调失败时是会基于一定策略继续尝试的。1. 第一次回调在第6步原创 2017-06-21 22:35:47 · 333 阅读 · 0 评论 -
解决Tomcat不支持中文注释
在Tomcat的配置文件中server.xml中,有了一段中文注释:而后,服务器不能启动了,XML的声明是:难道XML不支持中文?utf-8可是支持中文的哦! 原来是这样的:encoding告诉Tomcat以utf-8的编码方式去解释这个文件的内容,可发现中文字符不是utf-8的,是其他编码的。果不其然:我将这个文件的编码方式保存为了ANSI的,Oh原创 2015-07-17 18:36:30 · 1902 阅读 · 0 评论 -
关于String类之toString()方法的细节
Object是所有类的父类,编译器在编译我们的自定义类文件时,会自动将Object类加入到我们的class文件中,toString()是定义在Object中的一个方法,String类是Object的子类,String类重写了这个方法,看java源码: 同样StringBuilder类中也重写了toString()方法: 源码中new了一个String对象,实则是原创 2015-07-23 11:15:21 · 11034 阅读 · 0 评论 -
多态的类型转换
class Father{ public void say() { System.out.println("you are so great!"); }}public class ClassCastTest extends Father{ public static void main(String[] args) { Father f = new ClassCastTes原创 2015-09-11 10:12:15 · 874 阅读 · 0 评论 -
局部内部类访问局部变量细节
class People //file InnerClassTest.java{ private int a = 21; public void method() { String go = "running og"; //局部变量 class Hand //局部内部类 { public void show() { System.out.print原创 2015-09-13 21:12:20 · 1211 阅读 · 0 评论 -
maven TestNg 测试框架 not found
在用TestNG测试框架进行单元测试时,在我的pom.xml中写的依赖: org.testng testng 6.9.4 test Maven说他在中央仓库没有没有找到,我在下面这两个maven仓库的网站查找我的TestNG也没有找到:http://mvnrepository原创 2015-11-05 19:28:21 · 2663 阅读 · 0 评论 -
instanceof 关键字
java中,instanceof运算符的前一个操作符是一个引用变量,后一个操作数通常是一个类(可以是接口),用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是返回true,否则返回false。One.javapublic class One{ public static void main(String[] args) { One o = new One(); i原创 2015-07-13 15:41:14 · 862 阅读 · 0 评论 -
编译时异常和运行时异常的小细节
学到异常处理了,于是想记录下Java异常处理的细节,以增加对异常处理的印象。 Java常见的异常类之间的继承关系: (仿李刚老师的《疯狂Java讲义》异常的章节的图) Java的异常被分为两大类:Checked异常(编译时出现异常)和Runtime(运行时异常)。 1、编译时被检测的异常,除了特殊子类RuntimeExcep原创 2015-07-26 12:42:00 · 5470 阅读 · 2 评论 -
《Java 8函数式编程》 读书记录
chapter 2: lambda表达式2.1 lambda表达式不同形式//实现Runnable接口 Runnable noArguments = ()->System.out.println("hello girl");// 一个参数省略括号ActionListener oneArgument = event -> System.out.println("button clicked");转载 2016-05-29 20:01:32 · 1977 阅读 · 0 评论 -
《Java 8函数式编程》读书记录(1)
Chapter 6 DataParallelism6.1 并行化流操作Data parallelism is a way to split up work to be done on many cores at the same time . 计算一组专辑的曲目总长度,拿到每张album, 得到List< Track>信息, 通过flatMap组成新的Track Stream, 然后mapToIn转载 2016-06-10 23:45:10 · 747 阅读 · 0 评论 -
Java异常处理
最近写了不少业务代码,深感异常处理之重要性。异常处理好了,能让系统更加稳健、并易于寻找错误。在实践过程中,对于下面的代码: try { // do something} catch (Exception e) { // do nothing } 这种应该是要深恶痛绝的,既然什么也不做,为什么要吞掉异常,直接抛出不就得了呗,这样出错了也好定位错误。有个Fail fast原则, 程序原创 2016-09-19 23:36:33 · 491 阅读 · 0 评论 -
Java读取classpath下的文件
写Java程序时会经常从classpath下读取文件,是时候该整理一下了,并在不断深入的过程中,陆续补充上。现在Java project 都以maven项目居多, 比如像下面这样的一个项目结构: 编译后的class文件都到了target目录,如下面的结构: 看代码: import java.io.File;import java.net.URL;public class Poem {原创 2016-09-03 18:08:47 · 84521 阅读 · 0 评论 -
java web编码的学习总结
部分一(POST): 这是一个前端jsp页面,有一个超链接和post方式提交数据的表单:" method="post"> 用户名: 在页面中点击表单或链接,如果页面的编码是utf-8, 那么从浏览器传递到服务器的数据的编码也是utf-8的。public void doPost(HttpServletRequest request, HttpServ原创 2015-09-27 22:08:54 · 695 阅读 · 0 评论 -
看《Effective Java》学会的泛型设计
一 先来小菜一碟看代码: public static <E> void christmas(List<E> list) { E[] snapshot = list.toArray(); for (E e : snapshot) { // } }上面这段代码是编译不通过的, 出现了error: Error:(56原创 2016-12-25 17:57:36 · 470 阅读 · 0 评论 -
Java List<Object>去掉重复对象-java8
一、去除List中重复的Stringpublic List<String> removeStringListDupli(List<String> stringList) { Set<String> set = new LinkedHashSet<>(); set.addAll(stringList); stringList.clear(); stringList.addA原创 2017-01-13 23:01:04 · 108538 阅读 · 8 评论 -
Map的containsKey遇到的问题
最近在coding的过程遇到一个问题: public class HashMapDemo { public static void main(String[] args) { testGo(); } public static void testGo() { Map<Long, String> badGodMap = new HashMap<>(原创 2017-03-05 23:30:58 · 5878 阅读 · 0 评论 -
看《Effective Java》学会的泛型设计--上下限--PECS法则
对于Java中泛型通配符的上下限,一开始我也是比较懵逼的! 作为代码的搬运工,简单记录下搬砖的过程吧,偷笑ing。上限(upper bound)<? extends E> 问号代表一个未知类型,这个未知类型是E的子类型,包括E本身,称 E 是通配符 ? 的上限(upper bound)。下限(lower bound)<? super T> ...原创 2017-03-11 17:05:10 · 625 阅读 · 0 评论 -
java数组初始化
一、静态初始化int[] intArr; //定义一个引用变量intArr = new int[]{3, 4, 5, 6};String[] strArr;strArr = new String[]{"apple", "banana", "orange"};//简化静态初始化double[] douArr = {3.4, 5.6, 8.9};二、动态初始化int[]原创 2015-07-11 00:18:11 · 1262 阅读 · 0 评论