07 2021 档案

摘要:转载自https://www.cnblogs.com/Elliott-Su-Faith-change-our-life/p/7472265.html Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地分析Prio 阅读全文
posted @ 2021-07-30 11:49 liumeng哈哈哈 阅读(459) 评论(0) 推荐(0) 编辑
摘要:本文摘自On Java8 一旦学会了多态,就可以以多态的思维方式考虑每件事。然而,只有普通的方法调 用可以是多态的。例如,如果你直接访问一个属性,该访问会在编译时解析: // polymorphism/FieldAccess.java // Direct field access is determ 阅读全文
posted @ 2021-07-27 14:23 liumeng哈哈哈 阅读(140) 评论(0) 推荐(0) 编辑
摘要:注:本文摘自On Java8 构造器调用的层次结构带来了一个困境。如果在构造器中调用了正在构造的对象的动态绑定方法,会发生什么呢? 在普通的方法中,动态绑定的调用是在运行时解析的,因为对象不知道它属于方法所在的类还是类的派生类。 如果在构造器中调用了动态绑定方法,就会用到那个方法的重写定义。然而,调 阅读全文
posted @ 2021-07-26 17:28 liumeng哈哈哈 阅读(88) 评论(0) 推荐(0) 编辑
摘要:初始化阶段是执行类构造器<clinit>()方法的过程。 <clinit>()方法是由编译器自动收集类中的所有类变量的赋值动作和静态语句块(static{})中的语句合并产生的,编译器手机的顺序是由语句在原文件中出现的顺序所决定的,静态语句块中只能访问到定义在静态语句块之前的变量,定义在他之后的变量 阅读全文
posted @ 2021-07-26 15:54 liumeng哈哈哈 阅读(249) 评论(0) 推荐(0) 编辑
摘要:Java重写(Override)和重载(Overload) 重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。 重写方法不 阅读全文
posted @ 2021-07-25 14:10 liumeng哈哈哈 阅读(224) 评论(0) 推荐(0) 编辑
摘要:栈、堆、方法区的交互关系 从线程共享与否的角度 线程共享:堆、元空间 线程私有:虚拟机栈、本地方法栈、程序计数器 交互关系图1 交互关系图2 方法区的理解 《Java 虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于 阅读全文
posted @ 2021-07-24 09:00 liumeng哈哈哈 阅读(146) 评论(0) 推荐(0) 编辑
摘要:本地方法接口 本地方法 简单地讲,一个 Native Method 就是一个 Java 调用非 Java 代码的接口。一个 Native Method 是这样一个 Java 方法:该方法的实现由非 Java 语言实现,比如 C。这个特征并非 Java 所特有,很多其它的编程语言都有这一机制,比如在 阅读全文
posted @ 2021-07-23 15:17 liumeng哈哈哈 阅读(236) 评论(0) 推荐(0) 编辑
摘要:概述 运行时数据区结构图:灰色的表示单独线程私有,红色的为多个线程共享 线程 线程是一个程序里的运行单元。JVM允许一个应用有多个线程并行的执行。 Hotspot JVM里,每个线程都与操作系统的本地线程直接映射。 当一个Java线程准备好执行以后,此时一个操作系统的本地线程也同时创建。Java线程 阅读全文
posted @ 2021-07-23 13:55 liumeng哈哈哈 阅读(132) 评论(0) 推荐(0) 编辑
摘要:类的加载过程 概述 在Java中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载。 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,他的整个生命周期包括如下7个阶段: 其中,验证、准备、解析3个部分统称为链接(Lin 阅读全文
posted @ 2021-07-22 15:28 liumeng哈哈哈 阅读(161) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示