阅读JDK源码有感

最近加班不是很严重,爱上了查看JDK源码,每天回来,准备一杯咖啡,开始阅读,受益良多。从上周开始阅读,觉得还是写下感想和学习心得比较好。以后每天阅读,每天记下收获。总体来说,我觉得JDK源码写得十分漂亮,无论是从代码风格还是从重用性来说,都是相当出色的。之前阅读过Thinking in java,感觉很多东西都不能深入理解,太过于理论化,现在结合JDK看来,又别有一番感悟。以前每次有面试,都会从网上收集一些面试题,死记硬背一些知识,HashMap与HashTable的区别啊之类的,但是看了JDK的源码以后,很自然就懂了为什么会有这些区别了,理解真心很重要。其实给我感受最大的是,JDK的编程风格,类中的每个方法都很简短,从不显得很臃肿,虽然简短,但是都实现了其功能,这才是最重要的,以至于阅读起来不是那么难理解。从阅读源码,我也体会到了编码的重要性,在今后的工作中,要学会这种编程风格。前段时间阅读的,没有写下,这几天一定要补上,以后看看肯定是受益良多的。

时间: 2024-10-25 09:28:19

阅读JDK源码有感的相关文章

如何阅读jdk源码?

简介 这篇文章主要讲述jdk本身的源码该如何阅读,关于各种框架的源码阅读我们后面再一起探讨. 笔者认为阅读源码主要包括下面几个步骤. 设定目标 凡事皆有目的,阅读源码也是一样. 从大的方面来说,我们阅读源码的目的是为了提升自己的技术能力,运用到工作中,遇到问题快速定位,升职加薪等等. 从小的方面来说,阅读某一段源码的目的就是要搞清楚它的原理,就是死磕,就是那种探索真相的固执. 目的是抽象的,目标是具体的,我们阅读源码之前一定要给自己设定一个目标. 比如,下一章我们将要一起学习的Concurren

idea 导入 jdk源码 解决compile code 后阅读jdk 源码

在用intelliJ IDEA阅读代码时,跟踪到例如java.io.File类文件时,在关键代码段总会出现 “compile code”字样,使人不能真正跟踪到代码内部去. 为解决此问题,如下操作: step1:下载jdk源码,src.jar 1.1 mac安装的jdk路径 :/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/ 源码所在位置:/library/java/javavirtualmachines/1.6.0_65-b14-462.j

为何阅读JDK源码

前言 这段时间比较闲,就看起了jdk源码.一般的一个高级开发工程师, 能阅读一些源码对自己的提升还是蛮大的.这里作个自己的小结. 为什么要读源码? 现在一个项目基本离不开jar包, 第三方api,我们可以反编译去看一些大神们的源码,当然源码的水平也是有好有坏.都有哪些好处呢? 1.了解思想 程序员大部分开发中都是些增删查改,过的的业务的逻辑.比如一个需求 我们用了几十行代码写了. 感觉没问题, 但是别人可能用几行就搞定了,要学习别人的思路. 2.熟悉设计模式 包括24种设计模式,Java对象的三

使用NetBeans、Eclipse阅读JDK源码

下面说明在Netbeans.Eclipse环境下怎么查看JDK源码: Netbeans: 在"工具->java平台->源"里添加下路径,如果你安装jdk的时候选择安装了源码的话,jdk目录里会有一个src.zip的文件,添加这个文件就可以了. 选中相应的代码,ctrl+鼠标左键.就进入到源码环境了. Eclipse: 1.点 "window"-> "Preferences" -> "Java" ->

jdk 源码阅读有感(一)String

闲暇之余阅读 jdk 源码. (一)核心属性 /** The value is used for character storage. */ private final char value[]; /** Cache the hash code for the string */ private int hash; // Default to 0 String的核心结构,char型数组与 int 型 hash值. (二)构造器 构造器方面,由于上述两个值是不可更改的,所以直接 对 String

JDK源码之String、StringBuffer、StringBuilder

就String而言,平时工作中用得最多,但是很多时候还是用不好,有必要对他进行整体的分析下.如果看过Thinking in java,再看下JDK的源码,很多东西就会变得十分明了.现在对String的底层实现进行下分析. 首先是对构造函数而言,我工作中最常用到的可能就是new String(str)这个构造函数了,所以再在此关注这一个.这个构造函数是对传进来的String进行解析,将其放进一个数组当中,我们设定为arrayOfChar,String类定义了全局变量offset(偏移量),coun

JDK源码学习--String篇(二) 关于String采用final修饰的思考

JDK源码学习String篇中,有一处错误,String类用final[不能被改变的]修饰,而我却写成静态的,感谢CTO-淼淼的指正. 风一样的码农提出的String为何采用final的设计,阅读JDK源码的时候,有粗略的思考过,今天下班后又把<Thinking in Java>中关于final的内容重新看了一遍,对此写下一些关于自己的理解和想法. String类中final关键字的使用 final关键字,用来描述一块数据不能被改变,两种可能理由:设计.效率 final使用的三种情况:数据.方

【JDK源码】JDK的java.util.concurrent包结构

本文从JDK源码包中截取出concurrent包的所有类,对该包整体结构进行一个概述. 在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便.而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait().notify()和synchronized等,每每需要考虑性能.死锁.公平性.资源管理以及如何避免线程安全性方面带来的危害等诸多因素,往往会采

jdk源码分析总览

今天看到了一个源码分析按照重要性排序的例子, 这里拿过来用了,之后按照这个顺序不断的完善源码的内容. 引用的出处忘记了(对作者说声抱歉) 很多java开发的小伙伴都会阅读jdk源码,然而确不知道应该从哪读起.以下为小编整理的通常所需阅读的源码范围. 标题为包名,后面序号为优先级1-4,优先级递减 1.java.lang 1) Object 12) String 13) AbstractStringBuilder 14) StringBuffer 15) StringBuilder 16) Boo