美文网首页
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