- 浏览: 340629 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
hjl0722:
...
Java中的异或 -
lucd:
f(New.<Person, List<Pet&g ...
第15章泛型 -
liujunhao225:
[Error: could not access: List; ...
mvel的使用 -
superscorpio:
public void testImportInContex ...
mvel的使用 -
yuyangtina:
哦,知道了,是继承的方法。谢谢你的分享。
HttpClient3.x发送Soap请求的方法
1.类是程序的一部分,每个类都有一个Class对象。该Class对象被保存在一个同名的.class文件中。
2.Class对象包含了与类有关的信息,Class对象用于创建类的所有“常规”对象。
3.jvm通过类加载器这个子系统来加载要用到的类。
4.所有的类都是在对其第一次使用时,动态加载到jvm中的。当程序创建第一个对类的静态成员的引用时,就会加载这个类。这个证明构造器也是静态方法。因为,通过new创建新对象时,也会被当做对类的静态成员的引用。
5.类加载器首先检查这个类的Class对象是否已经加载。如果尚未加载,默认的类加载器就会根据类名查找.class文件。一旦类的class对象被载入内存,它就用来创建这个类的所有对象。
6.static子句,是在类第一次被加载时执行。即,static初始化是在类加载时执行的。
7.java还提供了另一种方法来生成对class对象的引用,即类字面常量。例如
FancyToy.class
这个方法更安全、更高效、更简单,建议使用这种方式。它不仅适用于普通类,还适用于接口、数组和基本类型。基本类型的包装器,还有一个标准字段TYPE,指向对应基本类型的class对象。为了保持统一,建议还是使用.class吧
8.为了使用类而做的准备工作实际包含3个步骤:
(1).加载,通过类加载器寻找.class文件并加载;
(2).链接,为静态域分配存储空间;
(3).初始化,执行静态初始化器和静态初始化块;
可见,初始化被延迟到了对静态方法(构造器隐式地为静态的)或者非常数静态域进行首次引用时才执行。
9.仅使用.class语法来获取对类的引用不会引发初始化。但是,Class.forName()立即就进行了初始化。如果一个static final值是编译期常量,那么这个值不需要对该类进行初始化就可以读到,例如:
static final int staticFinal = 47;
如果只是static final而不是编译期常量,那么在读取的时候,就要进行初始化。例如:
static final int staticFinal2 = ClassInitialization.rand.nextInt(1000);
如果一个static域不是final的,那么在访问它时,总要进行链接(分配存储空间)和初始化(初始化该存储空间)。
附注:Class对象的一些主要方法用处
1.getInterfaces
public Class[] getInterfaces()
Determines the interfaces implemented by the class or interface represented by this object.
If this object represents a class, the return value is an array containing objects representing all interfaces implemented by the
class. The order of the interface objects in the array corresponds to the order of the interface names in the implements clause of the
declaration of the class represented by this object. For example, given the declaration:
class Shimmer implements FloorWax, DessertTopping { ... }
suppose the value of s is an instance of Shimmer; the value of the expression:
s.getClass().getInterfaces()[0]
is the Class object that represents interface FloorWax; and the value of:
s.getClass().getInterfaces()[1]
is the Class object that represents interface DessertTopping.
If this object represents an interface, the array contains objects representing all interfaces extended by the interface. The order
of the interface objects in the array corresponds to the order of the interface names in the extends clause of the declaration of the
interface represented by this object.
If this object represents a class or interface that implements no interfaces, the method returns an array of length 0.
If this object represents a primitive type or void, the method returns an array of length 0.
Returns:
an array of interfaces implemented by this class.
2.getSuperclass
public Class<? super T> getSuperclass()
Returns the Class representing the superclass of the entity (class, interface, primitive type or void) represented by this Class. If
this Class represents either the Object class, an interface, a primitive type, or void, then null is returned. If this object represents
an array class then the Class object representing the Object class is returned.
Returns:
the superclass of the class represented by this object.
3.newInstance //创建所表示类的一个实例 ,当时所表示的类,必须有默认的构造函数
public T newInstance()
throws InstantiationException,
IllegalAccessException
Creates a new instance of the class represented by this Class object. The class is instantiated as if by a new expression with an
empty argument list. The class is initialized if it has not already been initialized.
Note that this method propagates any exception thrown by the nullary constructor, including a checked exception. Use of this method
effectively bypasses the compile-time exception checking that would otherwise be performed by the compiler. The Constructor.newInstance
method avoids this problem by wrapping any exception thrown by the constructor in a (checked) InvocationTargetException.
Returns:
a newly allocated instance of the class represented by this object.
4.getCanonicalName
public String getCanonicalName()
Returns the canonical name of the the underlying class as defined by the Java Language Specification. Returns null if the underlying
class does not have a canonical name (i.e., if it is a local or anonymous class or an array whose component type does not have a
canonical name).
Returns:
the canonical name of the underlying class if it exists, and null otherwise.
Since:
1.5
5.forName //必须带上包名称,如果已经有一个类的对象了,可以通过getClass()方法来获取相应的class对象。
public static Class<?> forName(String className)
throws ClassNotFoundException
Returns the Class object associated with the class or interface with the given string name.
Parameters:
className - the fully qualified name of the desired class.
Returns:
the Class object for the class with the specified name.
2.Class对象包含了与类有关的信息,Class对象用于创建类的所有“常规”对象。
3.jvm通过类加载器这个子系统来加载要用到的类。
4.所有的类都是在对其第一次使用时,动态加载到jvm中的。当程序创建第一个对类的静态成员的引用时,就会加载这个类。这个证明构造器也是静态方法。因为,通过new创建新对象时,也会被当做对类的静态成员的引用。
5.类加载器首先检查这个类的Class对象是否已经加载。如果尚未加载,默认的类加载器就会根据类名查找.class文件。一旦类的class对象被载入内存,它就用来创建这个类的所有对象。
6.static子句,是在类第一次被加载时执行。即,static初始化是在类加载时执行的。
7.java还提供了另一种方法来生成对class对象的引用,即类字面常量。例如
FancyToy.class
这个方法更安全、更高效、更简单,建议使用这种方式。它不仅适用于普通类,还适用于接口、数组和基本类型。基本类型的包装器,还有一个标准字段TYPE,指向对应基本类型的class对象。为了保持统一,建议还是使用.class吧
8.为了使用类而做的准备工作实际包含3个步骤:
(1).加载,通过类加载器寻找.class文件并加载;
(2).链接,为静态域分配存储空间;
(3).初始化,执行静态初始化器和静态初始化块;
可见,初始化被延迟到了对静态方法(构造器隐式地为静态的)或者非常数静态域进行首次引用时才执行。
9.仅使用.class语法来获取对类的引用不会引发初始化。但是,Class.forName()立即就进行了初始化。如果一个static final值是编译期常量,那么这个值不需要对该类进行初始化就可以读到,例如:
static final int staticFinal = 47;
如果只是static final而不是编译期常量,那么在读取的时候,就要进行初始化。例如:
static final int staticFinal2 = ClassInitialization.rand.nextInt(1000);
如果一个static域不是final的,那么在访问它时,总要进行链接(分配存储空间)和初始化(初始化该存储空间)。
附注:Class对象的一些主要方法用处
1.getInterfaces
public Class[] getInterfaces()
Determines the interfaces implemented by the class or interface represented by this object.
If this object represents a class, the return value is an array containing objects representing all interfaces implemented by the
class. The order of the interface objects in the array corresponds to the order of the interface names in the implements clause of the
declaration of the class represented by this object. For example, given the declaration:
class Shimmer implements FloorWax, DessertTopping { ... }
suppose the value of s is an instance of Shimmer; the value of the expression:
s.getClass().getInterfaces()[0]
is the Class object that represents interface FloorWax; and the value of:
s.getClass().getInterfaces()[1]
is the Class object that represents interface DessertTopping.
If this object represents an interface, the array contains objects representing all interfaces extended by the interface. The order
of the interface objects in the array corresponds to the order of the interface names in the extends clause of the declaration of the
interface represented by this object.
If this object represents a class or interface that implements no interfaces, the method returns an array of length 0.
If this object represents a primitive type or void, the method returns an array of length 0.
Returns:
an array of interfaces implemented by this class.
2.getSuperclass
public Class<? super T> getSuperclass()
Returns the Class representing the superclass of the entity (class, interface, primitive type or void) represented by this Class. If
this Class represents either the Object class, an interface, a primitive type, or void, then null is returned. If this object represents
an array class then the Class object representing the Object class is returned.
Returns:
the superclass of the class represented by this object.
3.newInstance //创建所表示类的一个实例 ,当时所表示的类,必须有默认的构造函数
public T newInstance()
throws InstantiationException,
IllegalAccessException
Creates a new instance of the class represented by this Class object. The class is instantiated as if by a new expression with an
empty argument list. The class is initialized if it has not already been initialized.
Note that this method propagates any exception thrown by the nullary constructor, including a checked exception. Use of this method
effectively bypasses the compile-time exception checking that would otherwise be performed by the compiler. The Constructor.newInstance
method avoids this problem by wrapping any exception thrown by the constructor in a (checked) InvocationTargetException.
Returns:
a newly allocated instance of the class represented by this object.
4.getCanonicalName
public String getCanonicalName()
Returns the canonical name of the the underlying class as defined by the Java Language Specification. Returns null if the underlying
class does not have a canonical name (i.e., if it is a local or anonymous class or an array whose component type does not have a
canonical name).
Returns:
the canonical name of the underlying class if it exists, and null otherwise.
Since:
1.5
5.forName //必须带上包名称,如果已经有一个类的对象了,可以通过getClass()方法来获取相应的class对象。
public static Class<?> forName(String className)
throws ClassNotFoundException
Returns the Class object associated with the class or interface with the given string name.
Parameters:
className - the fully qualified name of the desired class.
Returns:
the Class object for the class with the specified name.
发表评论
-
final变量
2012-07-07 10:47 869final变量必须被初始化,不管是静态的还是非静态的,初始化的 ... -
第10章内部类
2012-07-05 00:40 840一、概述 package com.test; ... -
第12章 异常处理
2012-05-22 13:03 8511.Throwable类是所有异常类的基类,Throwable ... -
线程类中的同步关键字
2012-03-19 17:28 1232public class Constants { publ ... -
第20章注解
2012-03-03 11:32 8651.注解也被称为元数据 ... -
使用Executor
2012-02-29 17:24 1395相关代码: public class CachedThread ... -
死锁的问题
2012-02-29 15:35 9221.某个任务在等待另个任务,而后者有等待别的任务,这样一直下去 ... -
生产者消费者
2012-02-29 11:39 5271. class Meal { private final ... -
第21章 并发
2012-02-22 17:39 9671.基本上所有的并非模式在解决线程冲突问题时,都是采用序列化访 ... -
对象序列化
2012-02-06 17:49 1206当你创建对象时,只要你需要,它就会一直存在,但是在程序终止时, ... -
JAVA IO结构图
2012-02-05 16:00 1271图1 http://blog.sina.com.cn/s/b ... -
第18章IO系统
2012-02-03 18:11 9971. File类既能代表一个文件,也能代表某个目录下文件和子 ... -
第17章容器深入研究
2012-02-02 17:47 9431.List接口的相关方法 1)toArray Object ... -
第11章持有对象
2012-02-01 17:52 10581.向上转型也可作用于泛型(当指定了某个确切类型作为类型参数时 ... -
随机数
2012-01-31 10:23 1259java.util.Random类 1.public Ran ... -
第15章泛型
2012-01-30 17:25 20101.泛型,就是“适用于 ... -
第16章数组
2012-01-29 17:56 9361.数组和其他容器相比是一种效率最高的存储和随机访问对象的方式 ... -
第13章 字符串操作
2011-12-14 23:43 9691. public class Concatenation { ... -
Interrupt
2010-11-01 20:36 981interrupt()只是改变中断状态而已 inte ... -
volatile
2010-10-09 09:08 1091以前就看到过Volatile关键字, 只知道跟多线程同步有关, ...
相关推荐
在"chapter14"这个压缩包文件中,可能包含了关于如何获取和利用类型信息的具体示例,涵盖上述各种情况。学习这部分内容,开发者可以提升对程序内部运作的理解,编写更健壮、更易于维护的代码,并且能够更有效地利用...
Java编程思想第十四章类型信息之反射与代理.pptx
第四章至第八章可能包含了关于控制结构、输入/输出、数组、指针等内容。控制结构包括条件语句(if-else)和循环(for、while、do-while),用于控制程序的执行流程。输入/输出函数如scanf和printf则用于与用户交互。...
在本资源"C#语言和SQL Server数据库基础-第14章上机练习.zip"中,主要探讨了C#编程语言与SQL Server数据库的基础知识及其实际应用。这是一份由原创作者田超凡编写的教程,旨在帮助学习者通过上机实践来加深对这两个...
第四章:选择结构程序设计 4课时 第五章:循环结构程序设计 8课时 第六章:函数与编译预处理 4课时 第七章:数组 6课时 第八章:指针 8课时 第九章:结构体数据类型与链表 6课时 第十章...
【UNIX环境高级编程(第十四章)】章节主要讲解了UNIX系统中进程间通信(IPC,InterProcess Communication)的各种机制,这些机制允许不同进程之间高效地交换信息,超越了简单的文件共享和进程创建。以下是对各知识...
第14章 数据备份与还原 共21页.pptx 第15章 MySQL日志 共22页.pptx 第16章 性能优化 共18页.pptx 第17章 MySQL Workbench5.2 的使用 共15页.pptx 第18章 MySQL Replication 共27页.pptx 第19章 MySQL Cluster 共49页...
【标题】"ACCP6.0 S1 C#语言 和 数据库技术基础 第14章(共17章)"涵盖了计算机科学中的两个关键领域,即C#编程语言和数据库技术,这些都是现代软件开发的基础。在这一部分,我们将会深入探讨C#语言的基本语法和特性...
**第十四章:ASP.NET MVC** ASP.NET MVC是一种模型-视图-控制器架构模式,为Web开发提供了更灵活的方式。会讲解MVC架构的原理,以及如何创建和路由控制器、视图和模型。 通过北大青鸟ACCP的这些章节,学生将全面...
第十四章探讨了Java中的反射机制。反射允许程序在运行时获取类的信息并操纵对象的状态。本章讲解了Class对象的使用方法、如何获取类的方法和字段信息、如何动态创建对象以及调用方法等内容。通过反射,可以实现更为...
描述中并未提供具体信息,但我们可以推测这可能是一个学习资源,提供了解答机械工程课程中第14章习题的答案,帮助学生理解和掌握相关知识。 标签“资料”暗示这是一个学习资料或参考资料,可能包含详细的解释和计算...
【标题】"VC开发经验技巧 共分为21章 第十四章" 提供了关键信息,这是一份关于Visual C++(简称VC)开发的综合教程,共有21个章节,而我们关注的是第14章。在VC开发中,开发者通常会涉及到Windows应用程序设计、MFC...
由于上传文件大小限制该资源为上下篇 本资源为下篇 ...第14章 类型信息 第15章 泛型 第16章 数组 第17章 容器深入研究 第18章 Java I/O系统 第19章 枚举类型 第20章 注解 第21章 并发 第22章 图形化用户界面
5.8 数组初始化 5.8.1 可变参数列表 5.9 枚举类型 5.10 总结 第6章 访问权限控制 第7章 复用类 第8章 多态 第9章 接口 第10章 内部类 第11章 持有对象 第12章 通过异常处理错误 第13章 字符串 第14章 类型信息 第15...
第14章 数据备份与还原 共21页.pptx 第15章 MySQL日志 共22页.pptx 第16章 性能优化 共18页.pptx 第17章 MySQL Workbench5.2 的使用 共15页.pptx 第18章 MySQL Replication 共27页.pptx 第19章 MySQL Cluster 共49页...
文章目录第十四章 Caché 定义和使用关系关系概述一对多关系主子关系主子关系和储存共同关系术语定义关系一般语法定义一对多关系定义父子关系父子关系和编辑。示例一对多关系示例主子关系示例连接对象方案1:更新一...
第四章“数组和指针”深入讨论了数组的特性和指针的使用。习题解答会涵盖多维数组、指针运算、指针与数组的关系,以及动态内存分配和释放。 第五章“表达式”讲解了C++中的算术、比较和逻辑表达式,还包括自增自减...
【描述】在“ACCPS1 14章项目”中,学生将面临一系列编程挑战,这些挑战通常涵盖Java 5的更新内容,包括但不限于自动装箱与拆箱、枚举类型、可变参数、匿名内部类、泛型以及增强的for循环(foreach)。通过实际操作...
在第14章“结构体与共用体和用户定义类型”中,王勇老师详细讲解了这一概念。`typedef` 关键字用于给已有的数据类型赋予新的名字,例如: ```c typedef int INTEGER; typedef float REAL; ``` 在这两个例子中,`...
Python中文指南,共十三章,分别为第一章:安装运行、第二章:数据类型、第三章:数据结构、第四章:控制流程、第五章:学习函数、第六章:错误异常、第七章:类与对象、第八章:包与模块、第九章:调试技巧、第十章...