- 浏览: 127978 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
hanyuanbo:
多谢啦不过你这里有关于字符串的连接机制么?比如:String ...
栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴) -
only_java:
不错不错,但是好像没有关于字符流的介绍哦?
[转]Java IO 技术之基本流类 ~~~~~~~~ (图+讲解+代码) 好好看 有好处 -
lvwz2008:
比较简单,学习了也受益不少!
栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴) -
306781704:
看了你写的东西,很不错,基础的很详细
META元素使用详解 -
yihengliu:
总结的完全,有大帮助!
JSP内置对象详解1
Java classes 组成分析<o:p></o:p>
首先容我以图3的java.util.LinkedList为例,将Java class的定义大卸八块,每一块分别对应图4所示的Reflection API。图5则是“获得class各区块信息”的程序示例及执行结果,它们都取自本文示例程序的对应片段。<o:p></o:p>
<o:p> </o:p>
package java.util; //(1)<o:p></o:p>
import java.lang.*; //(2)<o:p></o:p>
public class LinkedList<E> //(3)(4)(5)<o:p></o:p>
extends AbstractSequentialList<E> //(6)<o:p></o:p>
implements List<E>, Queue<E>,<o:p></o:p>
Cloneable, java.io.Serializable //(7)<o:p></o:p>
{<o:p></o:p>
private static class Entry<E> { … }//(8)<o:p></o:p>
public LinkedList() { … } //(9)<o:p></o:p>
public LinkedList(Collection<? extends E> c) { … }<o:p></o:p>
public E getFirst() { … } //(10)<o:p></o:p>
public E getLast() { … }<o:p></o:p>
private transient Entry<E> header = …; //(11)<o:p></o:p>
private transient int size = 0;<o:p></o:p>
}<o:p></o:p>
图3:将一个Java class 大卸八块,每块相应于一个或一组Reflection APIs(图4)。<o:p></o:p>
<o:p> </o:p>
Java classes 各成份所对应的Reflection APIs<o:p></o:p>
图3的各个Java class成份,分别对应于图4的Reflection API,其中出现的Package、Method、Constructor、Field等等classes,都定义于java.lang.reflect。<o:p></o:p>
Java class 内部模块(参见图3)<o:p></o:p> |
Java class 内部模块说明<o:p></o:p> |
相应之Reflection API,多半为Class methods。<o:p></o:p> |
返回值类型(return type)<o:p></o:p> |
(1) package<o:p></o:p> |
class隶属哪个package<o:p></o:p> |
getPackage()<o:p></o:p> |
Package<o:p></o:p> |
(2) import<o:p></o:p> |
class导入哪些classes<o:p></o:p> |
无直接对应之API。<o:p></o:p> 解决办法见图5-2。<o:p></o:p> |
<o:p> </o:p> |
(3) modifier<o:p></o:p> |
class(或methods, fields)的属性<o:p></o:p> <o:p> </o:p> |
int getModifiers()<o:p></o:p> Modifier.toString(int)<o:p></o:p> Modifier.isInterface(int)<o:p></o:p> |
int<o:p></o:p> String<o:p></o:p> bool<o:p></o:p> |
(4) class name or interface name<o:p></o:p> |
class/interface<o:p></o:p> |
名称getName()<o:p></o:p> |
String<o:p></o:p> |
(5) type parameters<o:p></o:p> |
参数化类型的名称<o:p></o:p> |
getTypeParameters() <o:p></o:p> |
TypeVariable <Class>[]<o:p></o:p> |
(6) base class<o:p></o:p> |
base class(只可能一个)<o:p></o:p> |
getSuperClass()<o:p></o:p> |
Class<o:p></o:p> |
(7) implemented interfaces<o:p></o:p> |
实现有哪些interfaces<o:p></o:p> |
getInterfaces()<o:p></o:p> |
Class[]<o:p></o:p> <o:p> </o:p> |
(8) inner classes<o:p></o:p> |
内部classes<o:p></o:p> |
getDeclaredClasses()<o:p></o:p> |
Class[]<o:p></o:p> |
(8') outer class<o:p></o:p> |
如果我们观察的class 本身是inner classes,那么相对它就会有个outer class。<o:p></o:p> |
getDeclaringClass()<o:p></o:p> |
Class<o:p></o:p> |
(9) constructors<o:p></o:p> |
构造函数getDeclaredConstructors()<o:p></o:p> |
不论 public 或private 或其它access level,皆可获得。另有功能近似之取得函数。<o:p></o:p> |
Constructor[]<o:p></o:p> |
(10) methods<o:p></o:p> |
操作函数getDeclaredMethods()<o:p></o:p> |
不论 public 或private 或其它access level,皆可获得。另有功能近似之取得函数。<o:p></o:p> |
Method[]<o:p></o:p> |
(11) fields<o:p></o:p> |
字段(成员变量)<o:p></o:p> |
getDeclaredFields()不论 public 或private 或其它access level,皆可获得。另有功能近似之取得函数。<o:p></o:p> |
Field[]<o:p></o:p> |
图4:Java class大卸八块后(如图3),每一块所对应的Reflection API。本表并非<o:p></o:p>
Reflection APIs 的全部。发表评论
-
中文乱码问题的解决方法
2007-11-05 22:46 2066tomcat下中文的彻底解决[转] http://blog ... -
候捷谈Java反射机制(6)
2007-11-05 22:44 1454Java 源码改动办法<o:p></o:p ... -
候捷谈Java反射机制(5)
2007-11-05 22:43 1109运行时生成instances<o:p></o ... -
候捷谈Java反射机制(4)
2007-11-05 22:42 1088#001 cc = c.getDeclaredClasses ... -
候捷谈Java反射机制(3)
2007-11-05 22:40 1128Java Reflection API 运用示例<o: ... -
候捷谈Java反射机制(1)
2007-11-05 22:28 1609关于本文:<o:p></o:p> 读者 ... -
J2SE API读取Properties文件六种方法
2007-11-05 22:23 10271。使用java.util.Properti ... -
Java 调用存储过程
2007-11-05 22:21 883本文阐述了怎 ... -
JavaMail API细节详细解析大全
2007-11-05 22:16 1120一、JavaMail API简介 JavaMail API ... -
JAVA中正则表达式应用
2007-11-05 22:12 8291.简介: java.util.regex ... -
Java正则表达式详解
2007-11-05 22:08 803如果你曾经用过Perl或任何其他内建正则表达 ... -
JDBC 4.0 API
2007-11-05 21:55 1027???? -
JDBC 3.0 API (扩展部分)
2007-11-05 21:54 1230Ø ConnectionPoo ... -
JDBC 2.0 API
2007-11-05 17:19 975JDBC 2.0 API被划 ... -
开发基于JNDI的应用程序3
2007-11-05 16:18 1791JNDI 的DNS 服务提供程序 DNS服务提供程序使得基于 ... -
开发基于JNDI的应用程序2
2007-11-05 16:14 1369示例代码 2 Resolve2.java ... -
开发基于JNDI的应用程序1
2007-11-05 16:06 1065Java命名和目录接口(Java Naming and ... -
struts+spring+hibernate的web应用(4.6)
2007-10-25 11:35 934product_success.jsp页面代码: ... -
struts+spring+hibernate的web应用(4.5)
2007-10-25 11:32 1109addproduct.jsp页面代码: &l ... -
struts+spring+hibernate的web应用(4.4)
2007-10-25 11:11 1008接着就是写资源文件了。 在com.game.resource ...
相关推荐
Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时获取和操作任何已知名称的类的内部信息。这一机制使得Java具备了一定的动态性,虽然在传统的分类中Java被视为静态类型语言。通过反射,开发者可以在...
7. **反射机制**:深入理解Java反射的概念,如何在运行时动态访问类、接口、方法和构造器。 8. **设计模式**:讲解常用的设计模式,如单例、工厂、观察者、装饰者、代理等,以及如何在实际开发中应用。 9. **JVM...
这篇《候捷谈Java反射机制》的文章应该深入探讨了这一主题。 反射的核心概念主要包括Class类、Constructor类、Method类和Field类。以下是对这些关键知识点的详细说明: 1. **Class类**:在Java中,每个类都有一个...
### 侯捷-Java编程思想+第2版(繁体版)关键知识点解析 #### 一、书籍概览与评价 - **书籍名称**:本书名为《Thinking in Java》第二版,作者为Bruce Eckel,台湾译者为侯捷与王建兴。 - **书籍定位**:本书被广泛...
7. **反射机制**:利用反射动态获取类的信息,创建对象,调用方法,修改字段值,了解Class类和Method类的使用。 8. **设计模式**:常见的设计模式如工厂模式、单例模式、观察者模式、装饰者模式等,理解其应用场景...
8. **反射与动态代理**:Java的反射机制能让我们在运行时检查类的信息并操作对象,动态代理则能在运行时创建具有特定接口的代理类,这对于AOP(面向切面编程)和插件式系统很有用。 9. **Java EE基础**:虽然不是...
2. **Java技术**:精通Java核心技术,包括反射、集合、网络编程和IO流的使用。 3. **Web应用开发**:熟练运用jsp、servlet、JSTL/EL、dom4j和JDBC,具备Struts2、Spring、Hibernate等主流框架的实践经验。 4. **...