java开发时各类工具的使用规范 编程技术

java开发时各类工具的使用规范

工具类规范 一个项目不可能没有工具类,工具类的初衷是良好的,代码重用,但到了后面工具类越来越乱,有些项目工具类有几十个,看的眼花缭乱,还有不少重复。如何编写出好的工具类,我有几点建议: 隐藏实现 就是要定义自己的工具类,尽量不要在业务代码里面直接调用第三方的工具类。这也是解耦的一种体现。如果我们不定义自己的工具类而是直接使用第三方的工具类有2个不好的地方: 不同的...
阅读全文
ShardingSphere 4.x Sharding-JDBC 用户手册之数据脱敏使用手册 Spring

ShardingSphere 4.x Sharding-JDBC 用户手册之数据脱敏使用手册

该章节主要介绍如何使用数据脱敏功能,如何进行相关配置。数据脱敏功能即可与数据分片功能共同使用,又可作为单独功能组件,独立使用。 与数据分片功能共同使用时,会创建ShardingDataSource;单独使用时,会创建EncryptDataSource来完成数据脱敏功能。 不使用Spring 引入Maven依赖 <dependency> <groupId>...
阅读全文
就因为没看这篇文章面试失败了 Java

就因为没看这篇文章面试失败了

前言 熬夜整理了一份java基础面试题,希望大家支持,如果文中有错误希望大家指正; 公众号:知识追寻者 知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;) 一 java基础面试 1.1面向对象和面向过程的区别 面向过程: 优点: 性能比面向对象高 ,因为...
阅读全文
Java Lambda表达式知多少 编程技术

Java Lambda表达式知多少

1. 匿名内部类实现 匿名内部类仍然是一个类,只是不需要程序员显示指定类名,编译器会自动为该类取名。因此如果有如下形式的代码,编译之后将会产生两个class文件: public class MainAnonymousClass { public static void main(String[] args) { new Thread(new Runnable(){ ...
阅读全文
Java基础——ArrayList详解 Java

Java基础——ArrayList详解

ArrayList 内部是以动态数组的形式来存储数据的。这里的动态数组不是意味着去改变原有内部生成的数组的长度、而是保留原有数组的引用、将其指向新生成的数组对象、这样会造成数组的长度可变的假象。 ArrayList 具有数组所具有的特性、通过索引支持随机访问、所以通过随机访问ArrayList中的元素效率非常高、但是执行插入、删除时效率比较底下 ArrayList 实现了 Se...
阅读全文
SpringBoot 原理深入及源码剖析 编程技术

SpringBoot 原理深入及源码剖析

SpringBoot 项目间接继承 spring-boot-dependencies,该文件对常用技术框架进行了统一版本管理,所以在SpringBoot 项目 pom.xml 引入spring-boot-dependencies管理的依赖文件不需要标注依赖文件版本号。引入 starter 就可以实现对应场景开发,而不需要额外导入相关依赖文件。 自动配置(启动流程) SpringBoot ...
阅读全文
手工编写简化版CommonsCollections6,带你实现Java8全版本反序列化利用 Java

手工编写简化版CommonsCollections6,带你实现Java8全版本反序列化利用

这是代码审计知识星球中《Java安全漫谈》的第十二篇文章。 本文带大家编写一个简化版的CommonsCollections6利用链,代码量相比于ysoserial减少50%,能够让大家更好理解。 上一篇文章我们详细分析了CommonsCollections1这个利用链和其中的LazyMap原理。但是我们说到,在Java 8u71以后,这个利用链不能再利用了,主要原因是 ...
阅读全文
【Java】HashMap源码分析 Java

【Java】HashMap源码分析

HashMap虽然常用,但是内部隐藏了很多实现细节,有太多值得推敲的东西,这里尽量去收录HashMap所有涉及的相关知识点。 数据结构-散列表 先从数据结构说起,HashMap对照的是数据结构中的 散列表 结构。在数据结构中有一种结构叫 字典 。有的书上定义:“以集合为基础的一些元素的集合,每个元素都有一个对应的key。支持元素的存在判断,插入和删除三种运算的的抽象数据类型就叫做字典“。...
阅读全文
Loading...