`

Java 常用API的运用,效率及技巧五

    博客分类:
  • java
 
阅读更多

5Class, ClassLoader

Java是一种介于解释与编绎之间的语言, Java代码首先编绎成字节码, 在运行的时候再翻译成机器码。 这样在运行的时候我们就可以通过Java提供的反射方法(reflect)来得到一个ObjectClass的额外信息, 灵活性很大,可以简化很多操作。

 

Class: 任何一个Object都能通过getClass()这个方法得到它在运行期间的Class 得到这个Class之后可做的事情就多了, 比如动态得到它的构造函数, 成员变量, 方法等等。 还可以再生成一份新的实例, 下面只给出几个我们常用的方法, 更详细的用法参照Java API

Ø  Class Class.forName(String className) throws ClassNotFoundException 这是个静态方法, 通过一个Class的全称来得到这个Class

Ø  String getName() 取得这个Class的全称, 包括package名。

Ø  Object newInstance() 得到一个实例, 调用缺省的构造函数。

例如我们有一个类: com.some.util.MyClass  如果得到它的一个实例呢? 可能有以下两种方法:

MyClass myClass = new MyClass(), 

 直接通过操作符new生成; 或者:

MyClass myClass =  (MyClass) Class.forName(“com.some.util.MyClass”).newInstance(); 

 

也许有人就会怀疑第二种方法实际意义, 能够直接new出来干嘛绕弯。 但实际上它的用处却很大, 举个例子: 用过struts的人都知道, action-config.xml当中定义了一系列的formBeanactionBean 当然每个formaction都具有同类型, 这样在一个request过来的时候我可以动态的生成一个formaction的实例进行具体的操作, 但在编码的时候我并不知道具体是何种的formaction 我只调用它们父类的方法。 你如果要用第一种方法的话就很麻烦, 你得在编码的时候通过一个标志来判断每一次request需要具体生成的formaction 代码的灵活性大大降低。 总的来说在面向接口的编程当中经常使用这种方法, 比如不同数据库厂家的JDBC Driver都是从标准的JDBC接口继承下去的, 我们在写程序的时候用不着管最终是何种的Driver 只有在运行的时候确定。 还有XMLParser也是, 我们使用的只是标准的接口, 最后到底是谁来实现它的, 我们用不着去管。

 

ClassLoader: ClassLoader是一个抽象类,一般的系统有一个缺省的ClassLoader用来装载Class ClassLoader.getSystemClassLoader()可以得到。不过有时候为了安全或有其它的特殊需要我们可以自定义自己的ClassLoader来进行loader一些我们需要的Class 比如有的产品它用了自己的ClassLoader可以指定Class只从它指定的特定的JAR文件里面来loader,如果你想通过覆盖ClassPath方法来想让它用你的Class是行不通的。 有兴趣的可以参照Java API 的更详细的用法说。

 

 

分享到:
评论

相关推荐

    java学习的常用API

    Java学习的常用API是开发者日常编码和学习过程中不可或缺的参考资料,尤其对于初学者,理解并掌握这些API至关重要。本资源集合了多个领域的API文档,包括Struts2、Spring、Hibernate、MySQL、Oracle以及一些基础技术...

    javaapi合集

    对于开发者来说,深入理解和熟练运用Java API是提高编程效率和编写高质量代码的关键。通过阅读JDK_API_1_6_zh_CN.CHM这份中文参考文档,开发者可以详细了解到每个类的功能、方法的使用以及参数的含义,从而更好地...

    java 常用工具类

    以上就是关于"java 常用工具类"的一些关键知识点,了解并熟练运用这些工具类可以显著提高我们的编程效率,减少代码量,同时使得程序更易于理解和维护。通过阅读博文链接中的内容,可以深入学习和掌握更多实用技巧。

    JAVA初学者 第6到第8章(接口,异常,常用)

    在"JAVA初学者 第6到第8章"的学习资料中,你将深入理解这两个主题,并了解一些常用的Java编程技巧。 首先,让我们来探讨接口。在Java中,接口是一种完全抽象的类型,它只包含常量和抽象方法的声明,不包含任何实现...

    Java常用方法大全

    以上仅是Java常用方法的一小部分,实际上Java API包含数千个方法。通过深入学习和实践,你可以掌握更多高效编程技巧,提升自己的编程能力。在实际工作中,结合《Java常用方法大全》这样的参考资料,可以随时查阅和...

    java常用正则表达式(转)

    这篇博客“java常用正则表达式(转)”可能详细介绍了Java如何使用正则表达式进行各种操作。虽然没有具体的描述内容,但我们可以从标题和标签中推测,这篇博客可能涵盖了以下几个方面: 1. **正则表达式基础**: -...

    Java编程模式与范例:基础开发技巧

    10. **标准库和API**:Java的标准库提供了大量预定义的类和方法,如日期时间API、网络编程API、XML处理等,熟悉这些API能极大地提高开发效率。 通过对这些知识点的学习和实践,开发者不仅能掌握Java的基础开发技巧...

    Java程序设计技巧1001例

    "Java程序设计技巧1001例"这个资源显然旨在帮助开发者深入理解和运用这些技巧。以下是一些重要的Java编程技巧,涵盖了基础到高级的各个方面。 1. **异常处理**:在Java中,使用try-catch-finally语句块来处理异常是...

    Java 的常用包与数组的复制与排序26

    在Java编程语言中,了解和熟练使用常用的包以及...理解并熟练运用这些知识,将有助于提升Java编程的效率和质量。在实际开发中,还会涉及到更多高级特性和技巧,如多线程、并发控制、设计模式等,都需要不断学习和实践。

    Java程序设计教程第五版教材(美国)上的例题

    "Java程序设计教程第五版教材(美国)"是一本面向初学者的指南,旨在帮助读者深入理解Java编程语言,并通过实际例题来巩固理论知识。下面,我们将根据标题和描述中的知识点进行详细讲解。 1. **Java语法**:Java语法...

    Java编程技巧.pdf

    在Java编程中,掌握一些高效的编码技巧能显著提升代码质量并减少错误。以下是一些关键的知识点,基于提供的文件内容...在实际开发中,灵活运用这些技巧,不仅可以编写出高质量的代码,还能避免常见错误,提升开发效率。

    Java常用框架实战教程,包含Activiti,Dubbo

    Java编程语言在IT行业中占有重要地位,而Java开发者在日常工作中常常会接触到各种框架,以提升开发效率和软件质量。本教程重点聚焦于两个著名的Java框架:Activiti和Dubbo,它们分别在业务流程管理和分布式服务领域...

    java程序设计技巧1001例

    在Java程序设计的世界里,掌握各种技巧是提升编程效率和代码质量的关键。"Java程序设计技巧1001例"是一本深入浅出的指南,它涵盖了从基础到高级的各种编程实践,旨在帮助开发者们更好地理解和运用Java语言。在这个...

    JAVA2程序设计实务入门

    这些API的使用是Java编程实践中的常见任务,理解和熟练运用它们能大大提高开发效率。 在描述中提到“实务入门”,这意味着本书不仅会讲解理论知识,还会结合实际案例,提供代码示例和练习,帮助读者将所学知识应用...

    Java手机短信项目源码Java实用源码整理learns

    3. **Java框架**:Spring、MyBatis、Hibernate等,是企业级开发中常用的工具,掌握它们可以提高开发效率。 4. **Java最佳实践**:包括代码规范、设计模式、重构技巧等,帮助写出更高质量的代码。 5. **开源社区**...

    Java的常用的正则表达式

    5. **效率与优化** - 避免使用过于复杂的正则表达式,这可能导致性能下降。 - 对于大量数据的处理,考虑使用预编译的Pattern对象,以提高匹配速度。 - 使用`matches()`时,确保正则表达式能正确匹配整个字符串,...

    juice-java5-0.9.0.zip

    Juice库是一个面向Java 5及更高版本的实用工具集,它包含了各种常用的数据结构和算法,以及方便的实用工具类。0.9.0版本的发布,意味着这个库在不断成熟和完善中,虽然它可能不像一些流行框架那样普及,但其独特性和...

    平安Java考试题库

    8. **JVM**: 对Java虚拟机(JVM)的理解,包括内存管理(堆、栈、方法区)、垃圾回收机制、类加载过程以及性能优化技巧,对于写出高效且稳定的Java应用至关重要。 9. **Spring框架**: Spring是Java企业级应用中最...

Global site tag (gtag.js) - Google Analytics