您的位置:首页 > 编程语言 > Java开发

自学资源推荐 JavaSE8 通过查看源代码来学习

2017-10-19 21:43 274 查看
礼悟:
   公恒学思合行悟,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
虚怀若谷良心主,愿行无悔给最苦。读书锻炼养身心,诚劝且行且珍惜。

  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适用于字符拼接的话,学到了。要是让 给最苦 写的话,也能写出来相似的,可能思路不那么清晰,这会看了官方的底层实现后,再让写,思路清晰了许多。

  上面的文字描述是 给最苦 作为一个新手看到底层实现代码时的心理活动,也想借助这段描述向你展示一个大概的学习方法。其中值得注意的是,多看别人代码的优点,学习他们的优点,反思自己的缺点,这是一个很重要的方向。论语中说道:“见贤思齐焉,见不贤而内自省也”

  想走好自学的道路,需要 坚韧不拔之志与极高的智慧。

  上述的内容是 给最苦 在自学道路上的所见所闻所感。每个人的特点是不同的,所以如果觉得此文适合自己,那么可以再仔细看看。如果觉得不适合,那么从中找到一两个有启发性的观点即可。总之,适合自己的才是最好的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: