iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么样阅读Java源码
  • 935
分享到

怎么样阅读Java源码

2023-06-02 18:06:12 935人浏览 泡泡鱼
摘要

这篇文章主要介绍了怎么样阅读Java源码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。阅读Java源码的前提条件:1、技术基础在阅读源码之前,我们要有一定程度的技术基础的支持

这篇文章主要介绍了怎么样阅读Java源码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

阅读Java源码的前提条件:

1、技术基础

在阅读源码之前,我们要有一定程度的技术基础的支持。

假如你从来都没有学过Java,也没有其它编程语言的基础,上来就啃《Core Java》,那样是很难有收获的,尤其是《深入Java虚拟机》这类书,或许别人觉得好,但是未必适合现在的你。

比如设计模式,许多Java源码当中都会涉及到。再比如阅读Spring源码的时候,势必要先对iocaop,Java动态代理等知识点有所了解。

2、强烈的求知欲

强烈的求知欲是阅读源码的核心动力!

大多数程序员学习态度分为如下几个层次:

  1. 完成自己的项目就可以了,遇到不懂的地方就百度一下。

  2. 不仅做好项目,还会去阅读一些和项目有关的书籍。

  3. 除了阅读和项目相关的书籍之外,还会阅读一些IT行业相关的书籍。

  4. 平时会经常逛逛GitHub,找一些开源项目看看。

  5. 阅读基础框架、J2EE规范、源码。

大多数程序员的层次都是在第一层,到第五层的人就需要有强烈的求知欲了。

3、足够的耐心

通过阅读源码我们可以学习大佬的设计思路,技巧。还可以把我们一些零碎的知识点整合起来,从而融会贯通。总之阅读源码的好处多多,想必大家也清楚。

但是真的把那么庞大复杂的代码放到你的眼前时,肯定会在阅读的过程中卡住,就如同陷入了一个巨大的迷宫,如果想要在这个巨大的迷宫中找到一条出路,那就需要把整个迷宫的整体结构弄清楚,比如:api结构、框架的设计图。而且还有理解它的核心思想,确实很不容易。

刚开始阅读源码的时候肯定会很痛苦,所以,没有足够的耐心是万万不行的。

如何读Java源码:

团长也是经历过阅读源码种种痛苦的人,算是有一些成功的经验吧,今天来给大家分享一下。

如果你已经有了一年左右的Java开发经验的话,那么你就有阅读Java源码的技术基础了。

1、建议从jdk源码开始读起,这个直接和eclipse集成,不需要任何配置。

可以从JDK的工具包开始,也就是我们学的《数据结构算法》Java版,如List接口和ArrayList、LinkedList实现,HashMap和TreeMap等。这些数据结构里也涉及到排序等算法,一举两得。

面试时,考官总喜欢问ArrayList和Vector的区别,你花10分钟读读源码,估计一辈子都忘不了。

然后是core包,也就是String、StringBuffer等。 如果你有一定的Java io基础,那么不妨读读FileReader等类。

建议大家看看《Java In A Nutshell》,里面有整个Java IO的架构图。Java IO类库,如果不理解其各接口和继承关系,则阅读始终是一头雾水。

Java IO 包,我认为是对继承和接口运用得最优雅的案例。如果你将来做架构师,你一定会经常和它打交道,如项目中部署和配置相关的核心类开发。

读这些源码时,只需要读懂一些核心类即可,如和ArrayList类似的二三十个类,对于每一个类,也不一定要每个方法都读懂。像String有些方法已经到虚拟机层了(native方法),如hashCode方法。

当然,如果有兴趣,可以对照看看JRockit的源码,同一套API,两种实现,很有意思的。

如果你再想钻的话,不妨看看针对虚拟机的那套代码,如System ClassLoader的原理,它不在JDK包里,JDK是基于它的。JDK的源码Zip包只有10来M,它像是有50来M,Sun公司有下载的,不过很隐秘。我曾经为自己找到、读过它很兴奋了一阵。

2、JAVA WEB项目源码阅读

步骤:表结构 → WEB.xml → mvc → db → spring ioc → log→ 代码

① 先了解项目数据库的表结构,这个方面是最容易忘记的,有时候我们只顾着看每一个方法是怎么进行的,却没有去了解数据库之间的主外键关联。其实如果先了解数据库表结构,再去看一个方法的实现会更加容易。

② 然后需要过一遍web.xml,知道项目中用到了什么拦截器,监听器,过滤器,拥有哪些配置文件。如果是拦截器,一般负责过滤请求,进行AOP等;如果是监听器,可能是定时任务,初始化任务;配置文件有如 使用了spring后的读取mvc相关,db相关,service相关,aop相关的文件。

③ 查看拦截器,监听器代码,知道拦截了什么请求,这个类完成了怎样的工作。有的人就是因为缺少了这一步,自己写了一个action,配置文件也没有写错,但是却怎么调试也无法进入这个action,直到别人告诉他,请求被拦截了。

④ 接下来,看配置文件,首先一定是mvc相关的,如springMVC中,要请求哪些请求是静态资源,使用了哪些view策略,controller注解放在哪个包下等。然后是db相关配置文件,看使用了什么数据库,使用了什么ORM框架,是否开启了二级缓存,使用哪种产品作为二级缓存,事务管理的处理,需要扫描的实体类放在什么位置。最后是spring核心的ioc功能相关的配置文件,知道接口与具体类的注入大致是怎样的。当然还有一些如apectj等的配置文件,也是在这个步骤中完成。

⑤ log相关文件,日志的各个级别是如何处理的,在哪些地方使用了log记录日志。

⑥ 从上面几点后知道了整个开源项目的整体框架,阅读每个方法就不再那么难了。

⑦ 当然如果有项目配套的开发文档也是要阅读的。

3、Java框架源码阅读

当然了,就是Spring、mybatis这类框架。

在读Spring源码前,一定要先看看《J2EE Design and Development》这本书,它是Spring的设计思路。注意,不是中文版,中文版完全被糟蹋了。

想要阅读MyBatis的源码就要先了解它的一些概念,否则云里来雾里去的什么也不懂。有很多人会选择去买一些书籍来帮助阅读,当然这是可取的。那么如果不想的话,就可以去官网查看它的介绍(MyBatis网站:Http://www.mybatis.org/mybatis-3/zh/getting-started.html),团长也是按照官网上面的介绍来进行源码阅读的。团长认为MyBatis的亮点就是管理sql语句。

总结

没有人一开始就可以看得懂那些源码,我们都是从0开始的,而且没有什么捷径可寻,无非就是看我们谁愿意花时间去研究,谁的求知欲更强烈,谁更有耐心。阅读源码的过程中我们的能力肯定会提升,可以从中学到很多东西。在我们做项目的时候就会体现出来了,的确会比以前顺手很多。

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么样阅读Java源码”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: 怎么样阅读Java源码

本文链接: https://www.lsjlt.com/news/230914.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么样阅读Java源码
    这篇文章主要介绍了怎么样阅读Java源码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。阅读Java源码的前提条件:1、技术基础在阅读源码之前,我们要有一定程度的技术基础的支持...
    99+
    2023-06-02
  • 怎么阅读Java源码
    本篇内容主要讲解“怎么阅读Java源码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么阅读Java源码”吧!Java源码初接触如果你进行过一年左右的开发,喜欢用eclipse的debug功能。...
    99+
    2023-06-17
  • PostgreSQL怎么阅读源代码
    这篇文章主要介绍PostgreSQL怎么阅读源代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!自底向上的方法    先说自底向上的方法。简单来说,就是从一个具体的小功能点出发阅读和...
    99+
    2024-04-02
  • Nacos源码阅读方法
    为什么我会经常阅读源码呢,因为阅读源码能让你更加接近大佬,哈哈,这是我瞎扯的。 这篇文章将会带大家阅读Nacos源码 以及 教大家阅读源码的技巧,我们正式开始吧! 先给大家献上一张我...
    99+
    2024-04-02
  • Android源码在线阅读
    ⭐博客同步更新在blogs-index ⭐推荐在github上阅读 推荐几个我在用的Android源码在线阅读网站,方便随时随地学习Android代码。 AOSPXRef 代码比较齐全,...
    99+
    2023-09-02
    android
  • 程序员是怎么阅读源码的
    本篇内容介绍了“程序员是怎么阅读源码的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!React:React 架构的演变 - 从同步到异步Re...
    99+
    2023-06-15
  • Spring源码阅读MethodInterceptor解析
    目录概述MethodInterceptor 分析AspectJAroundAdvice 分析AspectJAfterThrowingAdvice 分析AspectJAfterAdvi...
    99+
    2022-11-13
    Spring MethodInterceptor Spring MethodInterceptor源码解析
  • GoExcelizeAPI源码阅读GetPageLayout及SetPageMargins
    目录一、Go-Excelize简介二、 GetPageLayout三、SetPageMargins一、Go-Excelize简介 Excelize 是 Go 语言编写的用于操作 Of...
    99+
    2024-04-02
  • jQuery1.5.1 animate方法源码阅读
    复制代码 代码如下: animate: function( prop, speed, easing, callback ) { if ( jQuery.isEmptyObject(...
    99+
    2022-11-21
    animate 源码阅读
  • 怎么读Java源码
    这篇文章主要讲解了“怎么读Java源码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么读Java源码”吧!1、建议从JDK源码开始读起,这个直接和eclipse集成,不需要任何配置。可以从...
    99+
    2023-06-17
  • 怎么进行axios源码阅读与分析
    怎么进行axios源码阅读与分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。概述在前端开发过程中,我们经常会遇到需要发送异步...
    99+
    2024-04-02
  • Nacos源码阅读方法是什么
    这篇文章主要介绍“Nacos源码阅读方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Nacos源码阅读方法是什么”文章能帮助大家解决问题。先给大家献上一张我梳理的高清源码图,方便大家对nac...
    99+
    2023-06-29
  • python json-rpc 规范源码阅读
    目录json-rpc 源码阅读JSON-RPC规范jsonrpcclient的实现jsonrpcserver的实现小结小技巧json-rpc 源码阅读 JSON-RPC是一个无状态且...
    99+
    2024-04-02
  • Java终止线程实例和stop()方法源码阅读
    了解线程概念线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。线程特点拥有状态,表示线程的状态,同一时刻中,JVM中的某个线程只有一种状态;·NEW尚未启动的线程(程序运行开始至今一次未启动的线程)·RUNNAB...
    99+
    2023-05-30
  • python线程同步原语--源码阅读
    前面两篇文章,写了python线程同步原语的基本应用。下面这篇文章主要是通过阅读源码来了解这几个类的内部原理和是怎么协同一起工作来实现python多线程的。 相关文章链接:python同步原语--线程锁                  ...
    99+
    2023-01-30
    线程 源码 python
  • 教你阅读Python开源项目代码
    作者:董伟明 链接:https://zhuanlan.zhihu.com/p/22275595 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。注:本专栏文章未经允许请勿转载。 知乎上有不少人问和关注阅读开...
    99+
    2023-01-31
    教你 开源 代码
  • Redis源码阅读:Redis字符串SDS详解
    SDS 基本概念 简单动态字符串(Simple Dynamic String)SDS,用作Redis 的默认字符串。 C语言中的字符串:以空字符结尾的字符数组 SDS实现举例 r...
    99+
    2024-04-02
  • spring源码阅读--@Transactional实现原理讲解
    目录@Transactional注解简介spring中声明式事务实现原理猜想@Transactional作用动态代理逻辑实现TransactionInterceptor–最终事务管理...
    99+
    2024-04-02
  • spring源码阅读--aop实现原理讲解
    目录aop实现原理简介代理实现的处理器(BeanPostProcessor)代理实现的源头–AnnotationAwareAspectJAutoProxyCreatorAnnotat...
    99+
    2024-04-02
  • Go Excelize API源码阅读SetSheetViewOptions示例解析
    目录一、Go-Excelize简介二、 SetSheetViewOptions一、Go-Excelize简介 Excelize 是 Go 语言编写的用于操作 Office Excel...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作