当前位置:网站首页>浅浅的谈一下ThreadLocalInsecureRandom
浅浅的谈一下ThreadLocalInsecureRandom
2022-07-05 19:46:00 【步尔斯特】
今天看了一眼随机数相关,无意间发现了这个类。
这看起来真不错啊,有继承了SecurityRandom,又带有ThreadLocal字样,难道拥有了二者的特性,成为了结合体?
我们来一探究竟。
先来看看它是如何生成随机数的
@Override
public int nextInt() {
return random().nextInt();
}
跟踪,看来这个random方法是它核心了。
private static Random random() {
return PlatformDependent.threadLocalRandom();
}
PlatformDependent是netty下的,我们日后再说它。
跟踪
public static Random threadLocalRandom() {
return RANDOM_PROVIDER.current();
}
跟踪
private interface ThreadLocalRandomProvider {
Random current();
}
跟踪,哦~
原来在这,原来底层用的还是ThreadLocalRandom啊,不过时jdk7及以上,用jdk的方式实现了。
static {
if (javaVersion() >= 7) {
RANDOM_PROVIDER = new ThreadLocalRandomProvider() {
@Override
@SuppressJava6Requirement(reason = "Usage guarded by java version check")
public Random current() {
return java.util.concurrent.ThreadLocalRandom.current();
}
};
} else {
RANDOM_PROVIDER = new ThreadLocalRandomProvider() {
@Override
public Random current() {
return ThreadLocalRandom.current();
}
};
}
看了一眼netty和jdk下的ThreadLocalRandom实现方式,还是有很大的不同,感兴趣自己去看看吧。
回头看了一眼ThreadLocalInsecureRandom还不是public修饰的,啥也不是,下课。
边栏推荐
- 太牛了,看这篇足矣了
- C application interface development foundation - form control (6) - menu bar, toolbar and status bar controls
- 5 years of experience, 27 days of Android programmer interview, 2022 programmer advanced classic
- Complete interview questions for interviewers and senior Android engineers in front-line Internet enterprises
- Mysql如何对json数据进行查询及修改
- 通配符选择器
- What do software test engineers do? How about the prospect of treatment?
- 函数的概念及语法
- 2022 the latest big company Android interview real problem analysis, Android development will be able to technology
- Fuzor 2020 software installation package download and installation tutorial
猜你喜欢
Android interview classic, 2022 Android interview written examination summary
【硬核干货】数据分析哪家强?选Pandas还是选SQL
Zhongang Mining: analysis of the current market supply situation of the global fluorite industry in 2022
PHP uses ueditor to upload pictures and add watermarks
Complete interview questions for interviewers and senior Android engineers in front-line Internet enterprises
力扣 1200. 最小绝对差
成功入职百度月薪35K,2022Android开发面试解答
太牛了,看这篇足矣了
MMO項目學習一:預熱
通过POI追加数据到excel中小案例
随机推荐
Concept and syntax of function
Wildcard selector
成功入职百度月薪35K,2022Android开发面试解答
Relationship between floating elements and parent and brother boxes
Win10 x64环境下基于VS2017和cmake-gui配置使用zxing以及opencv,并实现data metrix码的简单检测
PG basics -- Logical Structure Management (user and permission management)
Password reset of MariaDB root user and ordinary user
The problem of returning the longtext field in MySQL and its solution
ACM getting started Day1
安卓面试宝典,2022Android面试笔试总结
强化学习-学习笔记4 | Actor-Critic
HAC cluster modifying administrator user password
[C language] string function and Simulation Implementation strlen & strcpy & strcat & StrCmp
Reflection and imagination on the notation like tool
How to apply smart contracts more wisely in 2022?
什么是面上项目
Which securities company is better and which platform is safer for mobile account opening
【obs】libobs-winrt :CreateDispatcherQueueController
Fundamentals of machine learning (III) -- KNN / naive Bayes / cross validation / grid search
Worthy of being a boss, byte Daniel spent eight months on another masterpiece