首先,非常多人说,不会看jdk中的源代码就不叫学过Java。显然这是肯定的。打个例如:真正的厨师须要从食材的选取、加工。到最后的烹饪、装盘成型,甚至到最后给用户介绍食用方法等一整套流程走下来。而实际上非常多厨师仅仅是做了当中的一小部分,所以最多也仅仅能叫得上“炒菜的”,而不是一个厨师。而非常多顶级餐厅强调选材,就是从源头上找到适合做某道菜的原料,甚至是反过来。得到一个供应链供应某种独特食材而专门为该材料设计某种烹饪技术。

这就是从头至尾的资源最大化利用。其体现创新及内功的地方贯穿整个流水线!

特别的。厨师也须要用到各种工具,假设他仅仅知道这工具能简单的干什么,而不知道其本身特性,那么必然不能将工具用到创新的场合和场景。

而我们在编程的时候,当然能够看着相应类的API说明文档进行使用。这就无异于别人提供好了材料,你去炒菜。

炒得好当然是没问题的。可是要炒得妙,炒得有味道,当然你还得去了解食材背后的意义。比方了解食材的含水量。了解食材的生长环境及不同烹饪条件下发生的属性的改变等等。这样,你发挥的余地就不会局限于某一个小块。

回到编程,在使用某个类的时候,假设能深入了解其源代码的实现方法。那在以后的使用中势必更为得心应手。甚至为了满足自己的某项特殊需求,能够重写源代码中的某一方法。甚至重写其源代码库。若能提供一种比现有的源代码库中更好的类,那自己创新的影响力就不单纯局限于一个应用、一套软件,而是造福了千千万万编程爱好者。

说了这么多,事实上自己从接触Java编程的这两三个月里。也还没真正看过源代码。今天上网找了下资料。尝试了一下:

首先,在Eclipse中进行例如以下操作:

1.点击 “window”-> "Preferences"  在弹出的左側浏览列表里选择-> "Java" -> "Installed JRES";

2.此时"Installed JRES"右边是列表窗格。列出了系统中的 JRE 环境,选择你的JRE(一般那里就一个)先选中它。然后点边上的 "Edit..."。 会出现一个窗体(Edit JRE);

3.选中rt.jar文件的这一项:“%JAVA_HOME_PATH%\java\jre_1.5.0_06\lib\rt.jar” 前面的路径是试你自己的安装路径而定的,主要看后面是“\lib\rt.jar”就能够了。点 左边的“+” 号展开它;

4.展开后,。点“Source Attachment:(none)”这一项。点右边的button“Source Attachment...”, 选择你的JDK文件夹下的 “src.zip”文件(通常是在jdk安装根文件夹下)。

然后一直点“finish”和“ok”就能够完毕源代码文件与Eclipse的链接;

那么,这时候在Javaproject中按下crl,然后点击相应的Java自带的类名,就会打开跳转到相应的源代码文件。

可是对于安卓开发人员,假设在安卓项目中,想用相同的方法打开安卓project中,jdk的Java类源代码。似乎就还是跳出那个无法连接到源代码的界面(至少我是这种)。原因应该是,在Javaproject中,Eclipse找其源代码文件是当然是在jdk连接的源代码文件中面找。而在安卓project中。Eclipse是会去Android SDK的文件夹下去找。所以还是找不到。这时候就要在Eclipse中建立其连接,使得在安卓project中除了能找到相应的Java源代码文件,还能找到安卓的源代码文件。

以下開始配置建立链接:

Activity类的源码:按着Ctrl键,左击它,现实的结果却看不到代码的,提示的信息便是“找不到Activity.class文件”。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2F5Y2FpcWk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

1、 此时点击以下的button,“Change Attached Source…”。这是跳出一个弹出框;

2、由于须要导入Android SDK根文件夹下的整个“sources”文件夹,所以须要点击弹出框的“external
Folder”。然后选择Android SDK 安装文件夹下的“source”文件夹。最后点击“OK”。假设弹出“operation
 in  progress.....”说明,成功了。完毕配置。

3、假设在Android
SDK安装文件夹下找不到“source”文件夹,须要启动Android SDK Manager进行源码下载。启动后,勾选source for Android sdk,然后点击右下角“installe package...”,完毕下载。(或者你也能够用其它方式下载:Android
4.4.2(API19)最新版API的源代码
,然后存至本地,在上述步骤导入源代码目录的步骤。选择相应的下载包进行导入就可以)

4、至此,我们不管在Android project 还是Java project中用ctl加点击的方式打开我们想打开的类的源代码。都可打开跳转至对应的文件。

最后我们要的就是好好研究这些工具,特别是一些算法(如最经典的多种排序算法)。打开后有耐心地去研读其运行过程。必然收益良多!

最新文章

  1. CString转换为string
  2. js基础到精通全面教程--JS教程
  3. 使用Source Safe for SQL Server解决数据库版本管理问题(转载)
  4. 用SqlParameter 给SQL传递参数
  5. 刻意练习,逃离舒适区——怎么样成为一个高手[罗辑思维]No.183_知识笔记
  6. 如何在Eclipse中添加Tomcat的jar包
  7. hung_task_timeout_secs 和 blocked for more than 120 seconds
  8. ORACLE中常见的几种锁
  9. css text-overflow溢出文本显示省略号
  10. Nginx+keepalived做双机热备加tomcat负载均衡
  11. Swift - 34 - 闭包的基础语法
  12. BZOJ 1708: [Usaco2007 Oct]Money奶牛的硬币
  13. Boost::thread库的使用
  14. 清北学堂入学测试P4751 H’s problem(h)
  15. CPP--正码,反码,补码~附整数溢出的探讨
  16. Python_mongoDB
  17. MySQL查询性能优化(精)
  18. loadrunner场景报错:Error: CCI compilation error -/tmp/brr_5d65oV/netdir/E/\320\324/Action.c (318): undeclared identifier `LAST'解决思路
  19. 《机器学习实战(基于scikit-learn和TensorFlow)》第三章内容的学习心得
  20. app的描述-软件的描述

热门文章

  1. 风情万种awk
  2. HDU 1108.最小公倍数-辗转相除法
  3. Linux-Oracle 安装配置步骤
  4. POJ1067 取石子游戏 威佐夫博弈 博弈论
  5. Manacher算法总结
  6. 【虚树】hdu6161 Big binary tree
  7. 【动态规划】CDOJ1692 这是一道比CCCC简单题更有想象力的中档题
  8. Activity(活动)生命周期(2)--活动状态
  9. Python学习笔记 | 关于python数据对象 hashable & unhashable 的理解
  10. kosaraju算法求强连通分量