JDK源码阅读
Eragon伊拉龙
这个作者很懒,什么都没留下…
展开
-
JDK源码阅读 Throwable/Exception/Error
1.strackTrace、backTrace、cause、message、suppressed 答:StackTraceElement[] strackTrace:数组,保存所有栈调用的相关信息(方法、类名、文件名、行号) Object backTrace:用于回溯 为native变量 cause: 表示当前异常是哪个异常引起的,如果没有则为null...原创 2019-10-20 19:40:03 · 310 阅读 · 0 评论 -
JDK源码阅读 AbstractStringBuilder/StringBuffer/StringBuilder
1.为什么初始化就把数组的大小设为16,而如果使用有参构造函数也是要传入的字符串长度+16? 答:因为使用StringBuffer或者StringBuilder都会频繁的使用append,假设value数组使用固定长度,那么每一次append或者remove都需要创建新的数组进行扩充,消耗性能,ArrayList也是这样设计的。这也是为什么额外用count变量来表示length。...原创 2019-10-20 19:37:43 · 129 阅读 · 0 评论 -
JDK源码阅读 String
1.String是如何做到不可变?为什么要将它设计为不可变类? 答:首先String类是被final修饰,不能被继承;它把数据存放在一个数组value中,value同样被final修饰;所有对String对象进行操作,包括构造函数等涉及到都是重新创建一个String对象,且涉及到数组value的时候,都是重新copy一个新的数组,避免改动影响原来的value。 1&g...原创 2019-10-20 19:33:49 · 162 阅读 · 0 评论 -
JDK源码阅读 Object
1.静态代码块里的registerNatives()方法,因为Object是所有java类的父类,且该方法在静态代码块里,所以只有创建任何对象都会调用这个方法, 答:该方法的作用是将java层的方法和本地方法名对应起来,方便调用本地函数 2.为什么Object是所有类的父类,java如何实现的呢 答:可以使用Object里定义好的一些方法,如果一个类没有显示...原创 2019-10-20 19:31:07 · 106 阅读 · 0 评论