Java
文章平均质量分 52
黄小鸭吖
来吧
展开
-
# 知识点总结
线程安全只在多线程环境下出会出现,单线程串行执行并不存在此问题。解决线程安全问题可以从几方面来考虑,比如:保证数据在单线程内可见:举个例子,在格式化时间时要设置时间,多线程访问会导致设置的时间被其它线程修改,这种情况下只要保证每个线程内不使用同一个就可以了,就可以用于这种场景。使用线程安全类:有些线程安全类的内部有明确的线程安全机制,比如它在格式化的时候通过来操作的,在多线程环境下它可以用来代替。使用同步或锁机制:(在了解锁之前要知道对象头是什么)。每个对象都有一个对象头(Object Header),它原创 2022-06-04 22:58:58 · 167 阅读 · 1 评论 -
加解密及验签
加解密及验签<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.0</version></dependency>public class EncodeSign { public static void main(String[] args) {原创 2022-05-25 10:26:07 · 989 阅读 · 0 评论 -
整理 2022-05-21
面试资料面向对象是什么?面向对象的特征有什么?面向对象比较抽象,结合面向过程,举例子说明。封装、继承和多态。封装将对象的属性和行为抽取出来,对外暴露公共方法来操作对象,方法的具体实现细节在类内部,对外部隐藏。比如一个用于排序的工具类,它暴露出来的排序方法,在调用这个方法后完成排序,但是这个方法内到底用了什么排序算法以及是怎么实现的都是不知道的。继承当某一类对象存在想同的方法或者属性时,将这个些相同的方法或属性提取出来,定义一个父。这些拥有相同方法或属性的对象继承这个父类,就得到了相同的原创 2022-05-21 10:13:25 · 173 阅读 · 0 评论 -
Java模板参数替换(类SPEL)
Java模板参数替换(类SPEL)Java动态参数处理,类似SPEL,替换${变量名}为对应的变量值。public class DynamicParamUtils { private static final String DYNAMIC_PARAM_PREFIX = "${"; private static final String DYNAMIC_PARAM_SUFFIX = "}"; // 当data不是k-v形式对象时,写入第一个变量 public static S原创 2022-04-11 15:19:18 · 1805 阅读 · 0 评论 -
项目AOP处理请求日志
项目AOP处理请求日志为要打印日志的请求定义注解:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface RequestLog { /** * 请求名称 * * @return / */ String value() default "";}使用AOP解析每个使用了该注解的请求:@Slf4j@Aspect@Componentpu原创 2021-12-23 18:08:39 · 338 阅读 · 0 评论 -
Java 8新特性-教程
Java 8新特性-教程Java8新特性1. 引入1.1 常规求值1.2 使用接口1.3 使用匿名类1.4 使用Lambda表达式2. Lambda表达式2.1 Lambda表达式组成2.2 函数式接口2.3 如何使用Lambda表达式2.4 类型推断2.5 引用外部变量2.6 默认函数式接口3. 默认方法和静态方法3.1 什么是默认方法3.2 为什么要使用默认方法3.3 默认方法的优先级3.4 ...原创 2020-01-14 16:25:06 · 4389 阅读 · 4 评论