龙空技术网

Netty 源码共读(一)如何阅读JDK下sun包的源码

IT知识分享官 174

前言:

今天你们对“nettyidea源码”大概比较看重,看官们都需要知道一些“nettyidea源码”的相关文章。那么小编也在网络上收集了一些有关“nettyidea源码””的相关文章,希望朋友们能喜欢,小伙伴们一起来了解一下吧!

基础文章,就如标题所说,就如何阅读JDK下sun包的源码做出了解答,可能会上推荐,如果大家不感兴趣或不需要,可以直接退出,以免浪费时间。

谢谢~

前言

在写这篇文章前,我先说说我个人的状况。我非常简单的学过 Netty,跑过 Netty 的简单项目,大致了解其中的一些知识。但都停留在理论和demo上,看到这个活动要阅读的是Netty框架时,我个人是有些畏惧的,因为我还没有在项目中使用过 Netty,并且还没能熟练的使用它。

它不认识我,但我已在诸多地方听闻过它的存在,著名 RPC 框架 Dubbo 底层则采用了 Netty 来进行通信,淘宝的消息中间件 RocketMQ 的消息生产者和消息消费者之间,采用 Netty 进行高性能、异步通信。还有 Redis 常用的 Lettuce、搜索引擎Elastic Search 等等~

Netty 官网给的列表:netty.io/wiki/relate…(我觉得是不齐全的hh)

写都写到这里啦,还是补上吧,我觉得这次活动后端难度有点高啦,完全没想到,直接上手Netty啦(我太菜,别骂我,只是我的看法)

源码阅读还没开始,今天只是解决阅读jdk源码的问题~

今天夜晚在宁姐带领下,已经迈开第一步啦,明天或者后天应该能完成任务关卡一啦。

一、克隆张师傅项目并运行起来

克隆项目

git clone 复制代码

idea打开,等个一会~

启动 MyServer~

复制ServerSocketChannelImpl双击shift,定位到这个文件:

你会发现,sun 包下的文件,全部都是class文件,变量名也全都变成了 var1、var2等等,也没有注释可以看。

二、解决问题

如果你是像我一样,从Oracle官网上的下载的 Jdk 8,你会发现不能阅读sun包下的源码,这主要是我们下载的 JDK 中的文件src.zip中本身就是没有这部分的源码的。

下载JDK源码

git clone  #克隆至本地复制代码

我这里是克隆啦整个项目,但其实我们只需要 sun.* 代码,可以直接切换至 jdk8u/jdk8u 分支下载,会快很多,因为整个项目大致有1.3G左右,网速稍慢,可能就.... hh

刚下载下来的样子

git checkout jdk8u/jdk8u # 切换分支复制代码

我们需要的源码文件在

openjdk\jdk\src\share\classes

替换原JDK下src.zip文件

复制原JDK下src.zip出来备份,然后解压出来里面的内容,将上面的 sun 目录复制到一起,重新打包成src.zip文件

将重新打包的src.zip替换掉原JDK下的src.zip文件。

解决问题

如果替换时说文件正在打开,关闭掉正打开的class文件或者项目即可。

之后再打开,就可以看到文件已经显示为.java后缀啦,这样我们就可以快乐阅读啦

三、后语

源码阅读还没开始,今天夜晚在宁姐带领下,已经迈开第一步啦,明天或者后天应该能完成任务关卡一啦。

虽然我也觉得阅读源码,或许应该不是我现在该做的事情,但是有目标的去进行一件事情,总让我的生活变得充实。让我的时间利用达到了最大化,我很喜欢。

并且这也让我停更的博客,又重新的开始写啦, 我觉得还是有意义的。

通过阅读其他人的博客、书籍进行知识的输入,再经以实践,加以自己的理解,最终通过文字进行传播,我觉得还是一件有意义的事情吧。 薪火相传~

用一一说给我听的一句话作为本篇文章的结尾

一:”我们都在努力成为更好的自己,我的天,人生真是美好

春:“哪里美好啦呀 ~"

一:”我们成为更好的自己这件事,光看这几个字,就对未来充满热爱“

标签: #nettyidea源码