![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
火柴头9527
这个作者很懒,什么都没留下…
展开
-
flatten-maven-plugin 插件使用效果
从 Maven 3.5.0-beta-1 版本开始,Maven 就支持使用类似于 ${xxx.version} 这样的工件版本占位符来替待硬编码的版本号了。原创 2021-05-21 18:17:06 · 2029 阅读 · 0 评论 -
Java 8 Function 例子
import org.apache.commons.codec.digest.DigestUtils;import org.junit.Assert;import org.junit.Test;import java.util.*;import java.util.function.Function;/** * 参考: * https://mkyong.com/java8/java-8-function-examples/ * https://www.javabrahman.com/ja原创 2021-03-19 17:02:50 · 180 阅读 · 0 评论 -
JavaEE开发中,分层领域模型规约
在使用O/RM框架时,通常将某个数据库表映射为某个Java类,将该表的某列映射为该Java类的某个属性。对此Java类,《阿里巴巴Java开发手册》里称之为DO(Data Object),即与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。也有资料称之为PO(Persistent Object)或Entity。但PO很容易让人和POJO(Plain Ordinary Java Object)混淆。在Web开发中,提交表单时表单里的信息项需要映射为Controller层某个方法参数里的Java类。原创 2021-03-19 14:11:15 · 248 阅读 · 1 评论 -
将数据库表记录生成树,存储树形结构
有一类数据在数据库表中是一行一行地存储的,一旦查询出来并展示到前端页面,就呈现出“树状”。例如某大公司的部门数据,可分为一级、二级、三级部门。数据建模和表结构对应的实体类。import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.util.ArrayList;import java.util.List;@Data@AllArgsConstructor@原创 2021-03-12 17:29:53 · 1686 阅读 · 0 评论 -
SHA-256算法的种种
import com.google.common.hash.Hashing;import org.apache.commons.codec.digest.DigestUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.*;import java.security.DigestInputStream;import java.security.MessageDigest;import java.s原创 2021-01-06 15:56:44 · 347 阅读 · 1 评论 -
使用ProcessBuilder调用Linux下的某个脚本
Linux下手工执行某个脚本可以成功,但通过Java程序使用ProcessBuilder类执行该脚本总是失败,最后定位到问题:脚本中的某些命令要写绝对路径,例如把下面的脚本片段:hdfs dfs -put -f some.jar hdfs://mycluster/user/admin/jars/改为:/export/servers/hadoop/bin/hdfs dfs -put -f s...原创 2020-01-13 16:06:57 · 2136 阅读 · 0 评论 -
使用apache poi解析Excel文件
真是应了那句话“所见非所得”。你以为某个Cell里的内容是数字,POI得到的却是文本。你以为某个Cell里的内容是文本,POI得到的却是数字。一不小心就遇到类似这样的异常:java.lang.IllegalStateException: Cannot get a text value from a numeric cell。不要被虚幻蒙蔽,只能穷举:int cellType = xssfCel...原创 2019-12-10 10:22:31 · 106 阅读 · 0 评论 -
java -cp 用法
有时候,需要在Linux下运行main函数,以调试一些功能,本文记录java -cp的用法。1、将项目依赖的jar包拷贝到某个目录mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=compile2、通过rz命令上传压缩后的文件包到Linux服务器3、解压缩4、通过java -cp执行main函数...原创 2019-11-26 20:38:29 · 985 阅读 · 0 评论 -
Java 8 Lambda 小结
import org.junit.Test;import java.util.*;import java.util.function.Predicate;import java.util.stream.Collectors;import java.util.stream.Stream;public class Java8LambdaTest { @Test publ...原创 2019-11-12 18:01:12 · 91 阅读 · 0 评论 -
给PDF文件添加图片水印
import com.itextpdf.text.DocumentException;import com.itextpdf.text.Image;import com.itextpdf.text.pdf.PdfContentByte;import com.itextpdf.text.pdf.PdfGState;import com.itextpdf.text.pdf.PdfReader;...原创 2019-11-07 19:41:52 · 591 阅读 · 0 评论 -
《Java8实战》第11章 CompletableFuture:组合式异步编程(一)
11.1 Future接口Future接口的一般用法假设某业务逻辑有三个“计算”逻辑:购买煎饼果子(要等待好久);购买已装杯的豆浆(很快);乘班车上班(绝对不能错过)。同步编程就是:购买煎饼果子;完成步骤1后,再购买已装杯的豆浆;完成步骤2后,再乘班车上班。假设步骤1的时间不定,而班车发车时间是固定的,那极有可能错过班车。异步编程就是:给老板说一声购买煎饼果子,稍...原创 2019-11-05 16:19:37 · 284 阅读 · 0 评论 -
Java8 Optional 片段
为防止空指针异常,传统防御式写法:import lombok.Data;import org.junit.Assert;import org.junit.Test;public class Jdk8OptionalTest { @Data private static final class ScreenResolution { private int ...原创 2019-10-31 18:32:32 · 132 阅读 · 0 评论 -
Java8 Stream代码段
import lombok.Data;import org.junit.Test;import java.math.BigDecimal;import java.util.*;import java.util.stream.Collectors;public class Jdk8StreamTest { /** * 分组 * 按BuyerName的值,将...原创 2019-10-24 17:53:34 · 692 阅读 · 1 评论 -
Java 序列化与反序列化(一)
定义2个接口小栗子关于serialVersionUID《Effective Java中文版(第2版)》中提到的其他序列化工具(JSON、msgpack)原创 2019-07-04 13:23:35 · 202 阅读 · 0 评论 -
Java 序列化与反序列化(二)
1、序列化与单例模式public class MyUserSingleton implements Serializable { private static final long serialVersionUID = -5182532647273106745L; private String password; private String userName; ...原创 2019-07-04 13:51:52 · 148 阅读 · 0 评论 -
从Unicode码推导出其对应的UTF-8码
1、Unicode码区间与UTF-8编码对应关系:区间Unicode符号范围(十六进制)UTF-8编码方式(二进制)10000 0000 到 0000 007F0xxxxxxx20000 0080 到 0000 07FF110xxxxx 10xxxxxx30000 0800 到 0000 FFFF1110xxxx 10xxxxxx 10xxxxxx...原创 2019-07-04 14:17:39 · 299 阅读 · 0 评论 -
某汉字的GB2312编码是怎么来的?
国家标准《信息交换用汉字编码字符集 基本集 GB 2312-80》里预先定义了形如下图的汉字及其区位码对照关系,内含6763个汉字,也可以在线查询:左上角的“32”代表“区码”,10进制。“李”字横、纵坐标“78”代表“位码”,10进制。合起来讲就是,“李”字的区位码是3278,10进制。根据下列规则可以将某汉字的区位码转为GB2312编码:将区码由十进制转化为十六进制。将所得十六进制...原创 2019-07-04 20:18:07 · 1116 阅读 · 0 评论 -
Java 1.8 日期时间小记
import org.junit.Test;import java.time.*;import java.time.format.DateTimeFormatter;import java.time.temporal.ChronoField;import java.time.temporal.ChronoUnit;import java.time.temporal.TemporalAc...原创 2019-08-16 09:12:39 · 555 阅读 · 0 评论 -
从零学习Java注解(一)
1、注解保留策略public enum RetentionPolicy { /** * 注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃. * 这意味着:Annotation仅存在于编译器处理期间,编译器处理完之后,该Annotation就没用了 */ SOURCE, /** * 注解被保留到class文...原创 2019-06-03 18:15:26 · 108 阅读 · 0 评论