【Java基础学习】Java基础中容易忽略点-4

- 编写webserver

请求响应式编程
涉及:

  1. OOP
  2. 容器
  3. I/O
  4. 多线程
  5. 网络编程
  6. XML解析
  7. 反射
  8. HTML
  9. HTTP

- 反射

理解:
1、原来new对象需要JVM在类加载器中加载类模子,现在由使用者准备该模子
2、java类中的各种结构(方法、属性、构造器、类名)映射成一个个的java对象。利用反射可以对一个类进行解剖,反射是框架设计的灵魂。

/**
 * 反射:java类中的各种结构(方法、属性、构造器、类名)映射成一个个的java对象。
 * 利用反射可以对一个类进行解剖,反射是框架设计的灵魂。
 * 1、获取Class对象
 * 三种方式:推荐Class.forName("包名.类名")
 * 2、可以动态创建
 * clz.getConstructor().newInstance();
 *
 */
public class ReflectTest {
   
	public static void main(String[] args) throws Exception {
   
		//三种方式
		//1、对象.getClass()
		Class clz=new Iphone().getClass();
		//2、类.class()
		clz=Iphone.class;
		//3、Class.forName("包名.类名")
		clz=Class.forName("com.sxt.server.basic.Iphone");//灵活性提高,编译的时候该类不需要存在,可以动态的传递。后期一版传子类
		
		//创建对象
        /*Iphone iphone2=(Iphone) clz.newInstance();//jdk9不推荐
		System.out.println(iphone2);*/
		
		//jdk9推荐
		Iphone iphone2=(Iphone) clz.getConstructor().newInstance();
		System.out.println(iphone2);
		
		
	}
}

class Iphone{
   
	public Iphone() {
   
		
	}
}

- XML解析

解析:

<?xml version="1.0" encoding="UTF-8" ?>
<persons>
    <person>
      <name>至尊宝</name>
      <age>9000</age>
   </person>
   <person>
      <name>白晶晶</name>
      <age>7000</age>
   </person>
</persons>

代码为:

public class XmlTest02 {
   
	public static void main(String[] args) throws Exception {
   
		//SAX解析
		//1、获取解析工厂
		SAXParserFactory factory=SAXParserFactory.newInstance();
		//2、从解析工厂获取解析器
		SAXParser parse =factory.newSAXParser();
		//3、编写处理器
		//4、加载文档Document注册处理器
		PersonHandler handler=new PersonHandler();
		//5、解析
		parse.parse(Thread.currentThread().getContextClassLoader()
		.getResourceAsStream("com/sxt/server/basic/p.xml")
		,handler);
		
		handler.printPersons();
	}
}

class PersonHandler extends DefaultHandler {
   
	private List<Person> persons;
	private Person person;
	private String tag;//存储操作的标签
	@Override
	public void startDocument() throws SAXException {
   
		persons=new ArrayList<Person>();
	}
	
	@Override
	public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
   
		System.out.println(qName+"---->解析开始")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值