java基础
打不死Gin
打不倒我的将被我打败
展开
-
Java中Comparable接口与Comparator接口的区别
一、Java的命名规则讲究“见名知意”,compare(比较、对比)这个词我们非常熟悉,那么也基本知道Comparable接口与Comparator接口是干嘛的啦,其作用就是比较,这样可以方便对数组、集合类进行排序。因为可以直接调用Arrays.sort(数组)方法或Collections.sort(集合类)方法,而且通过翻看源码,我们发现这两个方法的底层实现确实是基于Comparable接口与Comparator接口的。不同点:1.接口中规定的方法不同Comparable接口中是:public i原创 2020-05-28 11:51:13 · 401 阅读 · 0 评论 -
发生java.lang.StackOverflowError的所有情况
根本原因总结就是一句话请求的栈深度大于虚拟机所允许的最大深度。具体情况目前我一共遇到过四种情况下的StackOverFlowError异常,全部列举如下:不恰当的递归方法;两个方法循环调用;循环调用构造方法;程序自动循环调用toString()方法;1.不恰当的递归方法写过递归方法的我们都知道,对于递归方法来说,为防止其无休止地进行,必须在方法内有终止条件。比如就用递归方法实...原创 2020-03-25 18:38:36 · 3897 阅读 · 0 评论 -
java中final关键字用法总结
目录1.final数据基本类型引用类型空白finalfinal参数2.final方法3.final类final类中的属性final类中的方法1.final数据基本类型final的作用就是使变量的值保持不变。例如已经定义了 final int num = 1;之后再给num赋其他的值是不允许。引用类型final的作用也是使变量的值保持不变。因为引用类型变量存储的是数据的地址,一旦被初始化指...原创 2019-09-19 15:15:28 · 277 阅读 · 0 评论 -
==运算符与equals方法(含JDK8源码分析)
目录1.Object中的equals方法源码例一2.八种基本类型对应封装类中的equals方法Integer类源码例一其他类源码1.Object中的equals方法源码因为java.lang.Object类中有定义equals方法,所以java中的所有类都会继承这个方法。Object类中的equals方法:public boolean equals(Object obj) { //1...原创 2019-09-22 15:34:32 · 494 阅读 · 0 评论 -
自动装箱和拆箱源码分析JDK1.8(一)
目录1.自动拆、装箱的实现1.Long类源码例一2.Short类源码3.Byte类源码新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流...原创 2019-09-23 14:47:16 · 498 阅读 · 0 评论 -
自动装箱和拆箱源码分析JDK1.8(二)
目录1.Float类源码例一2.Short类源码3.Byte类源码例一4.Character类源码1.Float类源码valueOf()public static Long valueOf(long l) { final int offset = 128; //l大于等于-128 且小于等于127, if (l >= -128 &...原创 2019-09-23 16:14:29 · 224 阅读 · 0 评论 -
static块与类加载
目录1.综述2.概念类加载的时机初始化对象的创建3.例一4.例二1.综述主要分析以下几点:1.为什么父类静态代码块优先于子类静态代码块执行?2.为什么静态代码块只执行一次?2.概念类加载的时机类加载的全过程是加载、验证、准备、解析和初始化这5个阶段。那么什么时候需要开始类加载的初始化阶段?这个java虚拟机规范有严格的规定,有且仅有(这句话是不是很熟悉)五种情况必须立即进行“初始化...原创 2019-09-20 14:56:49 · 197 阅读 · 0 评论