![](https://img-blog.csdnimg.cn/20191008162504753.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
tkzc_shark
Hello World!
展开
-
java/web/springboot数据修改历史记录设计
java/web/springboot数据修改历史记录设计在一些领域,记录数据的变更历史是非常重要的。比如人力资源系统…需要记录个人的成长历史。再比如一些非常注重安全的系统,希望在必要时可以对所有的历史操作追根溯源,有据可查。1.前言比如,修改一个人的姓名从“张三”变为了“李四”,那么在进行记录的时候,记录的信息可能如下:姓名:(张三)=>(李四);1这样就很好的体现出了修改了哪个字段,修改前后的数据分别是什么。关键的信息无论怎么修改都会有据可查,时间、人物、修改数据前后信息等。2转载 2021-10-12 11:20:00 · 2289 阅读 · 2 评论 -
Java List去掉重复对象-java8
List<Object>去重方法一: private List<Account> removeDupById(List<Account> accs) { Set<Account> accSet = new TreeSet<>(Comparator.comparing(Account::getId));...原创 2019-05-28 16:38:11 · 2948 阅读 · 2 评论 -
Java 常用类库(20种)
一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车。《Effective Java》的作者Joshua Bloch曾经说过:“建议使用现有的API来开发,而不是重复造轮子”。在本文中,我将分享一些Java开发人员应该熟悉的最有用的和必要的库和API。顺便说一句,这里不包括框架,如Spring和Hibernate因为他们非常有名,都有特定的功能。本文总结了日志、JSON解析、单测、X...转载 2019-05-30 16:48:37 · 8578 阅读 · 0 评论 -
HttpMessageNotReadableException 异常解决
这种异常通常是jackson反序列化失败引起,例如InvalidFormatException: Can not deserialize value of type java.util.Date获取天气信息RestTemplate template = new RestTemplate();Weather weather = template.getForObject("h...原创 2019-05-27 10:43:25 · 46551 阅读 · 0 评论 -
Java开发中遇到的问题——持续总结(4)
1.mysql 删除语句使用别名时出错,还需要在DELETE FROM之间添加别名DELETE 别名 FROM 表名称 别名 WHERE 列名称 = 值2.session过期跳转到登录页面并跳出iframe<script type="text/javascript"> if (window != top) { top.location.href ...原创 2019-05-21 15:30:19 · 3826 阅读 · 0 评论 -
Java Filter 过滤器学习
java过滤器能够对目标资源的请求和响应进行截取。过滤器的工作方式分为四种,配置在<dispatcher></dispatcher>中。<filter>指定一个过滤器。<filter-name>用于为过滤器指定一个名字,该元素的内容不能为空。<filter-class>元素用于指定过滤器的完整的限定类名。<init-...原创 2019-05-14 15:44:25 · 169 阅读 · 0 评论 -
Java 注解原理
注解本质是一个继承了Annotation 的特殊接口,其具体实现类是Java 运行时生成的动态代理类。而我们通过反射获取注解时,返回的是Java 运行时生成的动态代理对象$Proxy1。Jboot中模板引擎注解解析源码: public void configEngine(Engine engine) { /** * now 并没有被添加到默认的指...原创 2019-05-08 15:07:57 · 311 阅读 · 0 评论 -
程序员 学习网站(持续更新)
1)Java 高级学习(《深入理解Java虚拟机》、《Java高并发实战》)掌握多线程。掌握并发包下的队列。了解JMS。掌握JVM技术。掌握反射和动态代理。官网:https://www.java.com/zh_CN/中文社区:http://www.java-cn.com/index.html2)持续学习资源Apache 官网(http://apache.org...原创 2019-04-12 15:17:15 · 259 阅读 · 0 评论 -
Java面试官:兄弟,你确定double精度比float低吗?
我有一个朋友,叫老刘,戴着度数比我还高的近视镜,显得格外的“程序员”;穿着也非常“不拘一格”,上半身是衬衣西服,下半身是牛仔裤运动鞋。我和老刘的感情非常好,每周末我们都要在一起吃顿饭。这周,我们吃的是洛阳有名的吴家刀削面,席间他聊了一件蛮有趣的面试经历;我听得津津有味。散席的时候,老刘特意叮嘱我把他和面试者的对话整理一下发出来,因为他觉得这段对话非常的精彩,值得推荐给更多初学Java的年轻...转载 2019-04-09 09:55:16 · 189 阅读 · 0 评论 -
BigDecimal 加减乘除
BigDecimal num1 = new BigDecimal("10");BigDecimal num2 = new BigDecimal("5");BigDecimal num3 = null;//加法num3 = num1.add(num2);System.out.println("和 是:" + num3);//减法num3 = num1.subtract(num2)...原创 2019-03-28 17:46:52 · 313 阅读 · 0 评论 -
Java jdk8 函数式编程
函数式接口函数式接口中只能有一个抽象方法Java8之前已经存在的函数式接口有:java.lang.Runnablejava.util.concurrent.Callablejava.security.PrivilegedActionjava.util.Comparatorjava.io.FileFilterjava.nio.file.PathMatcherjava.lang...原创 2018-10-10 15:26:01 · 168 阅读 · 0 评论 -
Java JDK8 Stream流操作
一、流的初始化:1、Stream.of(T t); 2、Arrays.stream(strArray); 3、list.stream();二、流的操作:List<String> strList= new ArrayList<>();strList.add("aaa");strList.add("bbb");strList.add("ccc");...原创 2018-08-30 10:52:12 · 360 阅读 · 0 评论 -
Java 值传递
Java使用按值传递的函数调用方式1.基本类型 public static void main(String[] args) { int num = 5; System.out.println("begin:" + num); modify(num); System.out.println("end:" + num);...原创 2018-12-12 11:27:02 · 96 阅读 · 0 评论 -
Java 字符串与List 互转
1.字符串转换为ListList<String> list = Arrays.asList(str.split(","));2.List转换为字符串String str = StringUtils.join(list, ",");原创 2019-03-21 16:28:53 · 45521 阅读 · 1 评论