自学资源推荐 JavaSE8 通过查看源代码来学习
2017-10-19 21:43
274 查看
礼悟:
公恒学思合行悟,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
虚怀若谷良心主,愿行无悔给最苦。读书锻炼养身心,诚劝且行且珍惜。
Java是开源的,函数的实现细节可以通过查看底层代码来了解。从前 给最苦 有顾虑,就是底层的代码 新手能看得懂吗?现在没有这个顾虑了,因为经过了几次查看源代码的学习后,给最苦 知道了 对于新手来说,只要你肯静下心来分析,简单的底层实现是可以轻松地理解的。可是,有简单就有难,有能看懂的就有看不懂的。
下面举一个例子,来简述 通过阅读源代码实现自学的过程。IDE是myeclipse。
代码:
效果:
作为新手的 给最苦 看到这里就觉得有趣了,Arrays.toString函数的这个整合效果还挺好的,还算美观。Arrays.toString是怎么实现的呢?它的实现代码有哪些优点值得我去学习的呢?
ctrl+鼠标左键 点击 Arrays.toString的toString上,转到Arrays.toString的具体实现处
代码如下:
看到源代码时的心理活动:
奥,原来是这样实现的呀。首先进行了NULL值判断,防止了空指针异常,这个想的全面,值得学习。之后,判断了数组的元素个数是否为0。的确是,一个数组要么不存在,要么存在。存在的话,数组的要么有元素,要么没有元素。没有元素,a.length=0,就直接返回 [];有元素的话,就进行另外的处理。官方用了StringBuilder,嗯,StringBuilder适用于字符拼接的话,学到了。要是让 给最苦 写的话,也能写出来相似的,可能思路不那么清晰,这会看了官方的底层实现后,再让写,思路清晰了许多。
上面的文字描述是 给最苦 作为一个新手看到底层实现代码时的心理活动,也想借助这段描述向你展示一个大概的学习方法。其中值得注意的是,多看别人代码的优点,学习他们的优点,反思自己的缺点,这是一个很重要的方向。论语中说道:“见贤思齐焉,见不贤而内自省也”
想走好自学的道路,需要 坚韧不拔之志与极高的智慧。
上述的内容是 给最苦 在自学道路上的所见所闻所感。每个人的特点是不同的,所以如果觉得此文适合自己,那么可以再仔细看看。如果觉得不适合,那么从中找到一两个有启发性的观点即可。总之,适合自己的才是最好的。
公恒学思合行悟,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
虚怀若谷良心主,愿行无悔给最苦。读书锻炼养身心,诚劝且行且珍惜。
Java是开源的,函数的实现细节可以通过查看底层代码来了解。从前 给最苦 有顾虑,就是底层的代码 新手能看得懂吗?现在没有这个顾虑了,因为经过了几次查看源代码的学习后,给最苦 知道了 对于新手来说,只要你肯静下心来分析,简单的底层实现是可以轻松地理解的。可是,有简单就有难,有能看懂的就有看不懂的。
下面举一个例子,来简述 通过阅读源代码实现自学的过程。IDE是myeclipse。
代码:
package jizuiku.demo; import java.util.Arrays; /** * 通过Arrays.toString函数进行演示 阅读源代码学习方式 * * @author 给最苦 * @version V17.10.19 */ public class LookSourceDemo { public static void main(String[] args) { System.out.println(Arrays.toString(new int[]{1,2,3})); } }
效果:
作为新手的 给最苦 看到这里就觉得有趣了,Arrays.toString函数的这个整合效果还挺好的,还算美观。Arrays.toString是怎么实现的呢?它的实现代码有哪些优点值得我去学习的呢?
ctrl+鼠标左键 点击 Arrays.toString的toString上,转到Arrays.toString的具体实现处
代码如下:
/** * Returns a string representation of the contents of the specified array. * The string representation consists of a list of the array's elements, * enclosed in square brackets (<tt>"[]"</tt>). Adjacent elements are * separated by the characters <tt>", "</tt> (a comma followed by a * space). Elements are converted to strings as by * <tt>String.valueOf(int)</tt>. Returns <tt>"null"</tt> if <tt>a</tt> is * <tt>null</tt>. * * @param a the array whose string representation to return * @return a string representation of <tt>a</tt> * @since 1.5 */ public static String toString(int[] a) { if (a == null) return "null"; int iMax = a.length - 1; if (iMax == -1) return "[]"; StringBuilder b = new StringBuilder(); b.append('['); for (int i = 0; ; i++) { b.append(a[i]); if (i == iMax) return b.append(']').toString(); b.append(", "); } }
看到源代码时的心理活动:
奥,原来是这样实现的呀。首先进行了NULL值判断,防止了空指针异常,这个想的全面,值得学习。之后,判断了数组的元素个数是否为0。的确是,一个数组要么不存在,要么存在。存在的话,数组的要么有元素,要么没有元素。没有元素,a.length=0,就直接返回 [];有元素的话,就进行另外的处理。官方用了StringBuilder,嗯,StringBuilder适用于字符拼接的话,学到了。要是让 给最苦 写的话,也能写出来相似的,可能思路不那么清晰,这会看了官方的底层实现后,再让写,思路清晰了许多。
上面的文字描述是 给最苦 作为一个新手看到底层实现代码时的心理活动,也想借助这段描述向你展示一个大概的学习方法。其中值得注意的是,多看别人代码的优点,学习他们的优点,反思自己的缺点,这是一个很重要的方向。论语中说道:“见贤思齐焉,见不贤而内自省也”
想走好自学的道路,需要 坚韧不拔之志与极高的智慧。
上述的内容是 给最苦 在自学道路上的所见所闻所感。每个人的特点是不同的,所以如果觉得此文适合自己,那么可以再仔细看看。如果觉得不适合,那么从中找到一两个有启发性的观点即可。总之,适合自己的才是最好的。
相关文章推荐
- 自学资源推荐 JavaSE8 API手册
- 通过视图查看最占资源的查询
- 给大家推荐一个很好的免费学习资源下载网站—软实力资源网
- Webpack 学习资源整理 供随时查看
- 一些理论算法的学习资源推荐
- 自学宝典:10个学习Android开发的网站推荐
- 小白入门:大型网站技术架构负载均衡技术介绍及学习资源推荐
- 强力推荐给大家的资源:给程序员的设计学习指南
- redis 学习资源,源代码分析
- 《Linux内核修炼之道》精华分享与讨论(9)——内核学习的相关资源 推荐
- 通过Eclipse查看jar包对应的源代码
- [学习笔记]Linux系统资源查看
- 在下载jar包时,要有三个包,分别为使用的把class、查看文档的api、查看源代码的资源包
- 自学宝典:10个学习Android开发的网站推荐
- 自学宝典:10个学习Android开发的网站推荐
- 推荐大家WCF RIA Service的学习资源
- 推荐一些非常不错的javascript学习资源站点
- 推荐20个关于CSS3优秀学习资源
- 学习资源推荐(不定期更新)