深度剖析java 技术
文章平均质量分 77
回想刚开始写时,就冠以“深度剖析”的名称,也是为了给自己一些压力,以期能写好
奋斗的小面包
每天进步一点点,N天之后你会发现你征服了一座大山!
展开
-
在线程能否获取父线程的ThreadLocal里面的值,肯定点,能
子线程如果获取父线程的threadLocal变量原创 2023-06-09 17:23:43 · 291 阅读 · 0 评论 -
关于自动映射在项目中的具体落地(dozer)
项目开发过程中,经常需要编写model之间的转换,最常见的有:等操作,故为了简化代码的开发工作,需要简化对象属性之间复制的步骤,目前有两种解决方案,一种是定义converter 使用手写或插件生成,对各个属性进行set方法的设置。IDEA提供GenerateAllSetter插件,可帮助我们快速生成上述代码。另一中方案是使用自动映射框架进行属性的自动设置,基本有两种方向,一种是基于反射进行的,另一中是进行预编译生成相关代码,当然了 后一种在项目运行中效率是最高的。但是我们下面讲解的具体落地 使用的是基于反射原创 2023-05-29 12:51:56 · 524 阅读 · 0 评论 -
java 八股文
java 八股文原创 2022-12-07 20:03:16 · 1591 阅读 · 1 评论 -
ThreadLocal学习
首先,每个Thread 里面都有一个成员 ThreadLocal.ThreadLocalMap 类型的成员变量看到这里我们应该清楚了 ThreadLocal.ThreadLocalMap 的数据结构,如下图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YeVbUiSu-1668950584616)(https://weijinhao.gitee.io/markdown-picture/ThreadLocal原理图.png)]原创 2022-11-20 21:24:10 · 311 阅读 · 0 评论 -
java 容器
ArrayList 的默认初始化容量为0,首次添加元素时,创建容量为(10 || 添加集合大小) ,以后每次扩容的话,为当前容量的1.5倍。原创 2022-11-20 21:22:22 · 309 阅读 · 0 评论 -
雪花算法生成全局id
雪花算法生成全局id算法原理SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图:SnowFlake可以保证:所有生成的id按时间趋势递增整个分布式系统内不会产生重复id(因为有datacenterId和workerId来做区分)算法实现package com.kaffatech.mocha.dsuite.id.manager.impl;import java.util.List;import java.util.Set;import java.ut原创 2021-12-16 16:48:20 · 301 阅读 · 0 评论 -
java泛型的相关介绍
由于本人能力有限,一下为个人理解的观点,如果错误,请留言,我会在验证后修改。为什么使用泛型?泛型简而言之就是当我们定义类,接口,和方法的时候允许类型参数化,通过这种方式我们可以实现代码的复用。使用泛型有几点好处:1)在编译时更强大的类型检查。2)消除强制类型转化3)通过使用泛型可以实现通用算法(比如集合框架)原始类型:当我们定义了一个泛型类,在不指定泛型参数的情况下创建对象,,那么这就是原始类型的...原创 2018-05-27 18:35:49 · 270 阅读 · 0 评论 -
Lambda表达式详解
首先,我们来谈一谈为什么java jdk8会引入lambda表达式,下面我们定义一个功能,public class Person { public enum Sex { man,woman } private String name; private LocalDate birthday; private Sex gender; private String...原创 2018-05-01 17:58:50 · 297 阅读 · 0 评论 -
java集合框架的接口概述
java平台的集合接口所定义的函数是通用的,例如:Collection<E>,但是实现可以选择的支持相关操作,当执行没有被支持的操作时,抛UnsupportedOperationException.异常,有幸的时,java平台的各种集合都实现了相关操作。附上集合核心接口的层次图:下面我们来讨论一下集合框架接口:Collection 集合框架的根接口,在实现中,所有实现中有的允许重复,有...原创 2018-05-05 00:36:56 · 426 阅读 · 0 评论 -
java I/O Streams
Byte Streams程序使用字节流去输入和输出字节(8-bit),所有的字节流都继承自 InputStream 和 OutputStream。java平台为我们定义了许多字节流,我们聚焦于文件字节流,这样我们可以更好的演示,其他的字节流使用起来没什么区别除了构造函数的不同。我们一段案例来开始探索字节流吧。import java.io.FileInputStream;import java.i...原创 2018-05-06 00:18:06 · 334 阅读 · 0 评论 -
java线程池的实现(原理)
我们并不是要闭门造车,因为现在市面上有一些非常优秀的线程池供我们使用,我们写这段代码的目的是为了更好的理解和使用线程池。首先说一说一个线程池应该具备哪些东西1 初始化线程个数2核心线程个数3最大线程个数4维护线程池中线程数量,当线程空闲数多时尽心线程的回收,当线程紧张时进行线程的创建5任务添加策略6任务队列7线程的构造工厂我们有这些基本就算是够了现在我们先来...原创 2018-08-04 21:58:50 · 714 阅读 · 0 评论