博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解Java的Class.forName()方法
阅读量:3958 次
发布时间:2019-05-24

本文共 608 字,大约阅读时间需要 2 分钟。

Class.forName() 官方文档解释:通俗点说就是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段,并返回与该类相关的Class对象。

例如:加载thread类(只是先加载、初始化,并没有实例化\new\分配内存空间)

Class t = Class.forName(“java.lang.Thread”);

另外需要理解的概念:

♦静态代码块: 概念总结:随着类的加载而加载,并且只执行一次,常用来执行类的初始化 作用:用于给类初始化.

♦区分 new关键字和newInstance() 、Class.forName()的区别:

new():实例化并分配内存空间。使用关键字new创建一个类的时候,这个类可以没有被加载。
newInstance():实例化并分配内存空间,但是前提要求 这个类已经加载。
Class.forName():要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段,并返回与该类相关的Class对象。

现在可以看出,newInstance()实际上是把new这个方式分解为两步,即首先调用Class加载方法加载某个类,然后实例化。

Class t = Class.forName(str); t.newInstance();
  • 这样分步的好处是显而易见的。我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了一种降耦的手段。

转载地址:http://jfmzi.baihongyu.com/

你可能感兴趣的文章
简单邮件系统程序
查看>>
STL里的multimap使用详解
查看>>
STL 库其中的 std::string用法总结
查看>>
模态对话框的销毁过程与非模态对话的几种销毁方法
查看>>
C++实现http下载 && 24点计算编码风格
查看>>
memcached了解使用和常用命令详解
查看>>
GDB调试各功能总结
查看>>
"undefined reference to" 多种可能出现的问题解决方法
查看>>
类结构定义
查看>>
Windows下关于多线程类 CSemaphore,CMutex,CCriticalSection,CEvent,信号量CSemaphore的使用介绍
查看>>
图像处理基本算法(汇总)以及实现
查看>>
C++编程获取本机网卡信息 本机IP 包括Windows和Linux
查看>>
C++连接CTP接口实现简单量化交易
查看>>
服务端使用c++实现websocket协议解析及通信
查看>>
C# string.Format使用说明
查看>>
Linux下安装Mysql数据库开发环境
查看>>
Linux用户及用户组添加和删除操作
查看>>
通用 Makefile 的编写方法以及多目录 makefile 写法
查看>>
C++的4种智能指针剖析使用
查看>>
RPC框架实现之容灾策略
查看>>