• Java编写自己的webserver(一)


    反射Reflection: 把java类中的各种结构(方法、属性、构造器、 类名)映射成一个个的Java对象。利用反射技术可以对一个类进 行解剖,反射是框架设计的灵魂

    //反射:把java类中的各种结构(方法、属性、构造器、类型)映射成一个个java 对象
    public class ReflecTest {
    	public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
    		//三种方法
    		//1.对象.getClass()
    		Iphone iphone=new Iphone();
    		Class clz=iphone.getClass();
    		//2.类.class
    		clz=Iphone.class;
    		//3.Class.forName("包名.类型")
    		clz=Class.forName("server.basic.Iphone");
    		
    		//创建对象
    		Iphone iphone2=(Iphone)clz.newInstance();
    		System.out.println(iphone2);
    		 
    		Iphone iphone3=(Iphone)clz.getConstructor().newInstance();
    		System.out.println(iphone3);
    	}
    
    }
    class Iphone{
    	public Iphone(){
    		
    	}
    }
    

      

    XML:Extensible Markup Language,可扩展标记语言,作为数据的一种存储格式或用于 存储软件的参数,程序解析此配置文件,就可以到达不修改代码就能更改程序的目的。

    import java.io.IOException;
    
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
    
    public class XMLTest {
    	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
    		// SAX解析
    		// 1、获取解析工厂
    		SAXParserFactory factory = SAXParserFactory.newInstance();
    		// 2、从解析工厂获取解析器
    		SAXParser parse = factory.newSAXParser();
    		// 3、加载文档 Document 注册处理器
    		PersonHandler handler = new PersonHandler();
    		// 4、编写处理器
    		parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("server/basic/p.xml"), handler);
    
    	}
    }
    
    class PersonHandler extends DefaultHandler {
    	@Override
    	public void startDocument() throws SAXException {
    		System.out.println("---解析文档开始---");
    	}
    
    	@Override
    	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    		System.out.println(qName + "--->解析开始");
    	}
    
    	@Override
    	public void characters(char[] ch, int start, int length) throws SAXException {
    		String contents = new String(ch, start, length).trim();
    		if (contents.length() > 0) {
    			System.out.println("内容为:" + contents);
    		}else{
    			System.out.println("内容为->"+"空");
    		}
    	}
    
    	@Override
    	public void endElement(String uri, String localName, String qName) throws SAXException {
    		System.out.println(qName + "--->解析结束");
    	}
    
    	@Override
    	public void endDocument() throws SAXException {
    		System.out.println("---解析文档结束----");
    	}
    }
    

      

  • 相关阅读:
    jQuery实现图片延迟加载
    小猪学设计模式之—装饰者模式
    设计原则—依赖倒转原则
    ASP.NET MVC 在子页中引用头文件
    关于博客
    关于借钱
    面向对象编程(OOP)基础之UML基础
    C#抽象类、抽象方法、抽象属性
    小猪学设计模式——门面模式(外观模式)
    Eclipse 快捷键
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/12318893.html
Copyright © 2020-2023  润新知