美文网首页
java看源码心得

java看源码心得

作者: small瓜瓜 | 来源:发表于2019-07-05 16:32 被阅读0次

    以前对看jdk或是框架的源码,是比较排斥的。主要是因为别人写的代码自己看很难看懂。不是看不懂而是每个人思考方式不一样。但是看源码还是非常重要的。很多时候我们对一个api只是去了解它的作用,并不去了解它的底层实现是不行的。
    而且写jdk或是框架的作者们都会大神们。看他们的代码很多时候,可以自己思考问题不全面的地方。同时也能学习到各种算法实际的应用场景。

    一个算法的优劣通常用两个维度进行评判:
    1. 时间复杂度
    2. 空间复杂度

    但是有些问题必须要我们在这两标准上作出取舍,比如:判断一个链表是不是有环
    解法:

    • 用for循环访问所有的节点,并将已访问的节点打上标记,每次访问判断是否有标记。
    • 使用快慢指针的方式判断

    上面两种算法:
    第一种更高效,但是空间复杂度高。
    第二种也很高效,相对来说第一点,但是空间复杂度很低,常数级别
    面对这样的问题,我更推荐第二种方式,对于计算机来说,内存资源是相当宝贵的,同时cpu的处理速度是非常快的,一般cpu都是要等待内存的,所以在很多情况下,时间复杂度不是增加的非常多的情况,都会优先空间复杂度低的。

    以前觉得写代码简洁才是写的好,同样完成一个问题,代码量少的更好。但是实际并不是这样。
    我们的代码应该是面向计算机的
    计算机更习惯处理那些事情,我们的代码就应该写成什么样子,这里说明的可能不是那么准确。举个例子:
    判断一个整数的奇偶性
    可以使用求余是否等于零判断

    n % 2 == 0
    

    也可以使用为用

    n & 1 == 0
    

    但是下面算法更推荐,位运算计算机底层实现

    看源代码,静下心看,好好思考。真的很重要!!

    相关文章

      网友评论

          本文标题:java看源码心得

          本文链接:https://www.haomeiwen.com/subject/injehctx.html