Class.forName() 和使用 类字面常量的区别

进来一看,罪过罪过,居然有3个月没记东西了。

今晚看了几页书,几个零碎的知识点,记一下:

获取一个类 org.common.A 的Class引用时,有两中方法,

  1. 调用Class.forName("org.common.A")。
  2. 使用 A.class (前提是,A 必须得经过编译)。这种情况下,

假如A类如下:

class A{

public A(){         //

//  如果不存在默认构造方法,那么

// Class a = Class.forName("org.common.A");

//    a.newInstance() 时会报错。  newInstance() 就是调用默认的构造方法来执行实例化的。

}

static final int staticFinal = 100;      // 调用这个常量时,如果A 类没有初始化,并不会执行初始化,因为这个量是编译常量。

static final int staticFinal2 = System.currentTimeMillis();  // 调用这个量时,如果类 A 没有被初始化,那么就会初始化 A。

}

时间: 2024-12-11 07:45:53

Class.forName() 和使用 类字面常量的区别的相关文章

java 类字面常量,泛化的Class引用

类名.class 就是字面常量,代表的就是该类的Class对象引用.常量需要赋值给变量 简单,安全. 编译期接受检查,不需要像forName一样置于try/catch块中. 加载后不会进行初始化,初始化被延迟到静态方法静态域首次使用时. 类字面常量可用于类 接口 数组 基本数据类型 基本数据类型也有类字面常量如int.class, 对应的包装器的 Integer.TYPE. System.out.println(int.class); //int System.out.println(Integ

结构体和类的唯一区别就是类函数没有加说明是私有而结构体函数是公有

结构体和类的唯一区别就是              类函数没有加说明是私有                   而   结构体函数是公有

day10 Python作用域 Python2.7与Python3.x的类继承的区别及其他

一.Python作用域   1.Python中无块级作用域 if 1 == 1: name = 'test' print(name) #输出会报错,因为name的作用域仅限于if下的代码块,而不属于全局   2.Python中以函数为作用域 def func(): func_name = 'func_test' print(func_name) #这里同样会报错,因为变量func_name的作用于func函数中   3.Python作用域链,层层嵌套,使用时从内向外找   4.Python的作用

14章类型信息之使用类字面常量

14章类型信息-之类型转换前先做检查--之使用类字面常量--类名.class--以及动态instanceof(isInstance方法)----递归计数(计算各个类的个数) 实例代码: 实体类父类: //: typeinfo/pets/Individual.javapackage typeinfo.pets; public class Individual implements Comparable<Individual> {  private static long counter = 0;

3/类与结构区别

  C#结构和类的六点区别   引言··· 1 区别一:存储类型··· 3 堆和栈:··· 3 结构和类的存储类型:··· 3 区别二:继承性··· 4 区别三:初始化··· 5 区别四:构造函数··· 5 区别五:析构函数··· 7 区别六:关键字··· 7 类和结构的使用选择:··· 7 参考:··· 8 1.一览表:··· 8 2.结构和类的区别:··· 8 3.结构和类的异同:··· 8 4.源代码:··· 8 Struct,cs· 8 Class.cs· 10 Program.cs·

java 对象锁和类锁的区别(转)

java 对象锁和类锁的区别   转自 <http://zhh9106.iteye.com/blog/2151791> 在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法. 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识. java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁.线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁.获得内置锁的唯一途

Class.forName(&quot;ClassName&quot;)与ClassName.class的区别

引发问题的来源:最近在看比较深入的JVM相关的书,不得不感慨,JVM确实是比较深奥,很多地方难以理解不说,在网上还找不到什么资料,发现一个左思右想都想不明白的问题上网来搜索,结果基本上都是从书上copy下来的东西,还是不能理解. 问题的出现:今天突然想到一个这样的问题,就是类变量也就是静态变量的初始化问题.以前的范范理解是静态变量在类加载的时候就会初始化,反正是在初始化堆内存的之前会初始化静态变量,知道是这么一回事,但是不知其所以然.因为类加载其实也是有很多个步骤的,比如加载-连接-初始化.以前

Java 编程下使用 Class.forName() 加载类【转】

在一些应用中,无法事先知道使用者将加载什么类,而必须让使用者指定类名称以加载类,可以使用 Class 的静态 forName() 方法实现动态加载类.下面的范例让你可以指定类名称来获得类的相关信息. package cn.sunzn.demo; public class ClassDemo { public static void main(String[] args) { try { Class c = Class.forName(args[0]); System.out.println("类

.net 中struct(结构)和class(类)的区别

1.struct 结构与class(类)的区别 1)struct是值类型,class是对象类型 2)struct不能被继承,class可以被继承 3)struct默认访问权限是public,而class默认是private 5) struct不能由程序员申明构造函数,有编辑器自动生成,用于描述轻量级对象,执行效率高,例如:Line,Point等 6)struct的new和class的new是不同的,struct的new就是执行一下构造函数创建一个实例,再对所有字段进行复制. 而class则是在堆