如何使用Jdk查看源码?
先看再点赞,给自己一点思考的时间,如果对自己有帮助,微信搜索【程序职场】关注这个执着的职场程序员。
我有什么:职场规划指导,技能提升方法,讲不完的职场故事,个人成长经验。
最近,有很多读者问我,有没有java学习资料 ,我专门整理好的资源等你来拿,微信搜索「程序职场」,关注后 回复 学习资料。
你好,我是刚毕业的学生,想学习Java开发,但是不知道JDK用哪个版本好呢,怎么查看sdk源码呢?
今天有小伙伴问我java开发用哪个版本的jdk比较好,作为一个jdk使用了8-9年的老开发来说,甚至jdk的重要,当然很清楚这个问题,我想都没想就整理了这篇文章。
选择JDK版本
对于Java开发者来说搭建开发环境是少不了下载JDK的,那么我该下载哪个版本呢?
首先说一下我经历过的JDK都有哪些版本:JDK5 , JDK6 , JDK7 , JDK8 , JDK9 , JDK10 , JDK11 .
从5到11,7个版本,但是并不是说我每个版本都使用过,我使用过的,主要有4个 JDK 5 ,JDK6 , JDK8 ,JDK 11。
这些jdk版本也是区分大版本还是小版本的,比如主要现在使用的大版本,目前可以选的就是8和11了,其他都不是LTS。
个人的建议是选择主流的大版本,以免出现做好的项目线下能跑,线上有问题的情况。
目前我主要使用11,当然,8也装了。
下载JDK
那么如何下载JDK呢?
1,打开地址
https://openjdk.java.net/projects/jdk/
2,找到Java SE
3,选择JavaSE11(LTS)
下载后解压就好了。
查看源码
1,创建一个项目用来阅读源码
创建项目我这里通过 IDEA,也可以用其他工具,这个不做多说明。
2,创建项目后添加两个目录
source:放置JDK源码
test:测试代码
3、导入JDK源码
找到JDK安装目录就能找到源码,JDK安装目录下有一个名为src.zip压缩包,就是JDK源码!
解压压缩包,拷贝里面的所有目录到 我们创建的 项目的 source目录,拷贝后目录如下:
我们把源码放进一个项目中是为了我们学习查看源码,如果在开发中,直接进入去查看就行。
一切准备好以后我们随意查看一下这个源码信息,比如我们想看List的源码,就可以直接打开 Java--》util --》--》ArrayList
public class ArrayList<E> extends AbstractList<E>
4,建议阅读源码顺序
根据我的经验,排序如下:
1、java.lang
这里面其实就是Java的基本语法,比如各种基本包装类型(Integer、Long、Double等)、基本类(Object,Class,Enum,Exception,Thread)等等...
2、java.lang.annotation
包含Java注解基本元素相关的源码
3、java.lang.reflect
包含Java反射基本元素相关的代码
4、java.util
这里面放的都是Java的基本工具,最典型和常用的就是各种容器和集合(List、Map、Set)
5、java.util.concurrent
大名鼎鼎的JUC包,里面包含了Java并发和多线程编程相关的代码
6、java.util.function +java.util.stream
包含Java函数式编程的常见接口和代码
7、java.io
包含Java传统I/O相关的源码,主要是面向字节和流的I/O
8、java.nio
包含Java非阻塞I/O相关的源码,主要是面向缓冲、通道以及选择器的I/O
9、java.time
包含Java新日期和期间相关的代码,最典型的当属LocalDateTime、DateTimeFormatter等
10、java.math
主要包含一些高精度运算的支持数据类
11、java.net
主要包含Java网络通信(典型的如:Socket通信)相关的源代码。
我是【尔东双月】一枚执着的职场程序员,微信搜索【程序职场】关注我。别忘了三连啊,点赞、收藏、留言,随意给,我不挑。
注:如果文章有任何问题,欢迎毫不留情地指正。
如何使用Jdk查看源码?的更多相关文章
- 配置Eclipse可以查看JDK类库源码
一.配置方法 配置Eclipse可以查看JDK类库源码 Window->Preferences->Java->Installed JREs 若没有JRE,需要自己添加进来,有的话,点 ...
- Eclipse导入jdk的源码
eclipse导入JDK源码 前言:这件事情的重要性不言而喻,对于学习和观摩优秀的代码非常的有用,我喜欢想看什么代码都能 Ctrl+鼠标一点 就能够看到,不过这个不常操作,在这里小记一笔,以备后用.( ...
- Android Studio 关联 JDK Java 源码
Android Studio 关联 Android 源码比较方便,一般下载后可自动关联,但是 Android Studio 默认使用的 JDK 是内嵌的,是不带源码的.所以在查看 JDK 源码时,看到 ...
- eclipse查看源码失败总结
之前看的网上查看源码的方法,查看了JDK,只是知其然不知所以然. 后来发现要是查看其他源码,总是查看失败. 最开始每次点击Attach Source包到所要查看源码的jar包,但是还是这样. 但是依 ...
- 解决eclipse为什么不能查看源码
Java eclipse中查看源代码ctrl+左键单击 一.你是第一次使用该功能,没有导入项目源码,故无法查看源码 解决方法: 1.点 “window“-> “Preferences”-> ...
- eclipse 查看源码 source not found
是因为eclipse里面没有设置好源码路径. 源码路径在jdk安装包里面 C:/Program Files/Java/jdk1.8.0_191/src.zip 这个src.zip文件, 设置ecli ...
- Ecilpse绑定jdk的源码
因为近期才入职,所以电脑环境才配好,今天在写代码的时候,想查看源码,发现不能查看,所以在网上百度了一下: 下面是解决方法: 1.在Ecilpse的窗体下,点击Preferences 2.然后点击Jav ...
- JDK Collection 源码分析(2)—— List
JDK List源码分析 List接口定义了有序集合(序列).在Collection的基础上,增加了可以通过下标索引访问,以及线性查找等功能. 整体类结构 1.AbstractList 该类作为L ...
- androidstudio 查看源码
handler.postDelayed(myrunable,10000); ctrl+鼠标左键,点击postDelayed显示(不可以查看源码) ctrl+鼠标左键,点击postDelayed显示(可 ...
随机推荐
- MyBatis的Example如何按条件排序(Day_35)
MyBatis的Example如何按条件进行排序? 背景:有时我们在使用mybatis example 进行查询时,需要进行相应的业务排序.本博客以下图为例 @Override public List ...
- java为什么是一次编译,多次解释
在编程语言中分为编译型语言.解释型语言,而我们的java语言既是编译型的也是解释型的,因为比如c语言是编译型的,因为我们将c语言的源代码编译过后就形成了.exe文件,这样windows系统就可以直接运 ...
- IDEA 通过ctrl+滚轮缩放字体大小
能用图解决的问题,尽量简单粗暴通俗易懂 1.第一种方式 2.第二种方式
- 关于MongoDB ObjectId的那些事儿
ObjectId 是什么? 一句话,ObjectId 是 MongoDB 文档 _id(主键)的默认类型. ObjectId 的组成? ObjectId 使用 12 字节的存储空间,是一个由 24 个 ...
- ONNX 实时graph优化方法
ONNX 实时graph优化方法 ONNX实时提供了各种图形优化来提高模型性能.图优化本质上是图级别的转换,从小型图简化和节点消除,到更复杂的节点融合和布局优化. 图形优化根据其复杂性和功能分为几个类 ...
- Wide-Bandgap宽禁带(WBG)器件(如GaN和SiC)市场将何去何从?
Wide-Bandgap宽禁带(WBG)器件(如GaN和SiC)市场将何去何从? Where Is the Wide-Bandgap Market Going? 电力电子在采用宽禁带(WBG)器件(如 ...
- 使用NVIDIA A100 TF32获得即时加速
使用NVIDIA A100 TF32获得即时加速 NVIDIA A100带来了我们公司历史上最大的单代性能增长.这是一个新的结构创新,这是一个多功能的支持,这是一个多功能的结构支持.TF32是用于深度 ...
- Yolov4性能分析(下)
Yolov4性能分析(下) 六. 权重更新 "darknet/src/detector.c"--train_detector()函数中: ...... /* 开始训练网络 */ f ...
- video视频标签自定义显示隐藏播放控件&Shadow DOM
方法一:controlslist属性 controlslist="nodownload nofullscreen noremoteplayback" controlslist仅三种 ...
- python_selenium_PO模式下显示等待、隐式等待封装,结合Excel读取元素可取默认等待时间配置
basepage中等待的封装 def implicitly_wait(self): self.driver.implicitly_wait(5)def wait(self): time.sleep(5 ...