Java 编程 - 类何时会被加载
先来看第一个问题:如果一个类没有在程序中的任何地方被使用,它会被加载吗?
先来看第一个问题:如果一个类没有在程序中的任何地方被使用,它会被加载吗?
当我们需要检查或修改 Java 虚拟机中正在运行的应用程序的运行时行为时通常会使用反射。反射提高了程序的扩展性,程序可以通过使用外部用户定义类的完全限定名(fully-qualified names)来创建扩展性对象的实例或者获取类的信息。
使用反射来创建一个类的实例的效率,肯定是要比直接使用 new 低的,那么到底低多少呢?下面我们来测试一下。我们使用 JMH(Java Microbenchmark Harness) 来进行基准测试,然后 对比测试结果。
在很多开源框架中都用到了反射,因此这些框架中都包含了很多的反射工具类,我们可以很方便的直接只用这些工具类,而不用自己再去重新定义。下面介绍几个常用框架中包含的反射工具类。
面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、特性、代码与方法。对象则指的是类(class)的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。
本部分为Java编程指导部分,内容涵盖Java基础及常用框架。本部分并不会对太过基础内容进行讲解。阅读前需要有一定的Java基础。本文档源代码使用的JDK版本为 21 ,同时会包含从 JDK 8 到 JDK 21 的新特性。
参考资料
算法复杂度 / Big-O / 渐进分析法 ✅