02 2020 档案

摘要:第4讲 | 强引用、软引用、弱引用、幻象引用有什么区别? 在Java语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向不同的对象。理解引用对于掌握Java对象生命周期和JVM内部相关机制非常有帮助。 今天我要问你的问题是:强引用,软引用、弱引用、幻想引用有什么区别?具体使用场景是什么? 阅读全文
posted @ 2020-02-21 12:00 源问三生 阅读(235) 评论(0) 推荐(0)
摘要:理论一:当谈论面向对象的时候我们到底在谈论什么? 专栏正文的第一个模块, 我会讲一些设计原则、 设计思想, 比如,面向对象设计思想、 经典设计原则以及重构相关的知识, 为之后学习设计模式做铺垫。 在第一个模块中, 我们又首先会讲到面向对象相关的理论知识。 提到面向对象, 我相信很多人都不陌生, 随口 阅读全文
posted @ 2020-02-16 21:41 源问三生 阅读(192) 评论(0) 推荐(0)
摘要:面向对象、设计原则、设计模式、编程规范、重构这五者有何关系? 本专栏学习的内容 面向对象 现在, 主流的编程范式或者是编程风格有三种, 它们分别是面向过程、面向对象和函数式编程。面向对象这种编程风格又是这其中最主流的。现在比较流行的编程语言大部分都是面向对象编程语言。大部分项目也都是基于面向对象编程 阅读全文
posted @ 2020-02-16 17:18 源问三生 阅读(216) 评论(0) 推荐(0)
摘要:02 | 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力? 如何评价代码质量的高低? 实际上,咱们平时嘴中常说的“好”和“烂”,是对代码质量的一种描述。但是单纯的用“好”或者“烂”不足以真正的表述代码的质量情况。我们可以更专业更丰富的用以下词语来表述代码: 灵活性()、可扩展性()、可维 阅读全文
posted @ 2020-02-16 17:02 源问三生 阅读(1267) 评论(0) 推荐(0)
摘要:有哪些方法可以在运行时动态生成一个Java类? 典型回答 我们可以从常见的Java类来源分析,通常的开发过程是,开发者编写Java代码,调用javac编译成class文件,然后通过类加载机制载入JVM,就成为应用运行时可以使用的Java类了。 从上面过程得到启发,其中一个直接的方式是从源码入手,可以 阅读全文
posted @ 2020-02-12 16:30 源问三生 阅读(168) 评论(0) 推荐(0)
摘要:Java通过引入字节码和JVM机制,提供了强大的跨平台能力,理解Java的类加载机制是深入Java开发的必要条件,也是个面试考查热点。 今天的问题是,请介绍类加载过程,什么是双亲委派模型? 典型回答 一般来说,我们把Java的类加载过程分为三个主要步骤:加载、链接、初始化,具体行为在Java虚拟规范 阅读全文
posted @ 2020-02-12 11:52 源问三生 阅读(200) 评论(0) 推荐(0)
摘要:谈谈 final、finally、 finalize 有什么不同? 答: final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展,final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)。 finally 则是 阅读全文
posted @ 2020-02-06 19:03 源问三生 阅读(260) 评论(0) 推荐(0)