易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : java

Java反射机制

一、什么是反射:
      反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。
      反射本身并不是一个新概念,尽管计算机科学赋予了反射概念新的含义。在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。
二、什么是Java中的类反射:
       Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性和方法。Java 的这一能力在实际应用中用得不是很多,但是在其 ......

Java反射机制深入研究

Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。
 
在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制。
 
Java 反射机制主要提供了以下功能:
在运行时判断任意一个对象所属的类。
在运行时构造任意一个类的对象。
在运行时判断任意一个类所具有的成员变量和方法。
在运行时调用任意一个对象的方法。
 
Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Serializable),也包括fields和methods 的所有信息,并可于运行时改变fields内容或调用methods。
 
一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,R ......

Java中的接口

  1.  在Java中,一个类只能够有一个直接的父类,但是一个类可以实现多个接口,Java采用这种方式实现多继承;
  2. 接口的概念:
      a.接口明确地描述了系统对外提供的所有服务,清晰地把系统的实现细节与接口分离,系统的实现细节由接口的实现类负责实现,接口负责对外描述系统提供的服务,对内描述系统应该具备的功能;
      b.接口和抽象类都不能够被实例化,但是抽象类中可以包含具体的实现,这样可以提高代码的重用性,而接口不能包含任何具体的实现;
  3.接口的特点
     (1)接口中的成员变量必须全部是public,static,final类型(编译时常量),必须被显式地初始化;
     (2)接口中的方法必须全部是public,abstract类型;
             综合(1)(2)两点,接口中不能够出现:
              A.实例变量
              B ......

java 读写xml

使用DOM方式,Java解析XML基本步骤:
首先,我们需要建立一个解析器工厂。
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
然后可以利用这个工厂来获得一个具体的解析对象。
DocumentBuilder builder=dbf.newDocumentBuilder();
DocumentBuilder的Parse()方法接受一个XML文档名作为输入参数,返回一个Document对象。Document对象代表了 一个XML文档的树模型。
Document doc=builder.parse("candiate.xml");
使用Document对象的getElementsByTagName()方法,我们可以得到一个NodeList对象,他是XML文档中的标签元素 列表,可以使用NodeList对象的item()方法来得列表中的每一个Node对象。
NodeList nl=doc.getElementsByTagName("PERSON");
Element node=(Element)nl.item(i);
最后,我们会使用Node对象的getNodeValue()方法提取某个标签内的内容。
node.getElementsByTagName("NAME").item(0).getFirstChild().getNodeValue()
完整程序代码:
import javax.xml.parsers.*;
import org.w3c.dom.*;
public class dom {
public static void main(String args[]){
String uri=args[0];
try{
DocumentBuilderFactory factory = DocumentBuilde ......

java文件操作


package com.gamvan.tools;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
public class FileOperate {
    private String message;
    public FileOperate() {
    } 
    /**
     * 读取文本文件内容
     * @param filePathAndName 带有完整绝对路径的文件名
     * @param encoding 文本文件打开的编码方式
     * @return 返回文本文件的内容
     */
    public String&nbs ......

有反型java 对象转到xml xstream方式

package com.jcauto.action;
import java.util.ArrayList;
import java.util.List;
public class ContentRsp {

private String resultCode;

List<ContentInfo> contentList = new ArrayList<ContentInfo>();

public void addContent(ContentInfo contentInfo) {
contentList.add(contentInfo);
}
public void removeContent(ContentInfo contentInfo) {
contentList.remove(contentInfo);
}

public String getResultCode() {
return resultCode;
}
public void setResultCode(String resultCode) {
this.resultCode = resultCode;
}
}
package com.jcauto.action;
public class ContentInfo {
private String contentName;
private String contentId;
private String dispritiong;
private String catalogId;
private String title;
public String getContentName() {
return contentName;
}
public void setContentName(String contentName) {
this.contentName = contentName;
}
public String getContentId() {
return contentId;
}
public void setContentId(String con ......

有反型java 对象转到xml xstream方式

package com.jcauto.action;
import java.util.ArrayList;
import java.util.List;
public class ContentRsp {

private String resultCode;

List<ContentInfo> contentList = new ArrayList<ContentInfo>();

public void addContent(ContentInfo contentInfo) {
contentList.add(contentInfo);
}
public void removeContent(ContentInfo contentInfo) {
contentList.remove(contentInfo);
}

public String getResultCode() {
return resultCode;
}
public void setResultCode(String resultCode) {
this.resultCode = resultCode;
}
}
package com.jcauto.action;
public class ContentInfo {
private String contentName;
private String contentId;
private String dispritiong;
private String catalogId;
private String title;
public String getContentName() {
return contentName;
}
public void setContentName(String contentName) {
this.contentName = contentName;
}
public String getContentId() {
return contentId;
}
public void setContentId(String con ......
总记录数:6386; 总页数:1065; 每页6 条; 首页 上一页[2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号