黑马程序员--反射应用实现框架

 

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

 

 

 

什么叫内存泄漏?
 一个对象不用了,但是它一直在占用内存空间,没有被释放,这就叫内存泄漏。

HashSet就是采用哈希算法存取对象的集合,它内部采用对某个数字n进行区域的方式对哈希吗进行分组和划分对象的存储区域,

当一个对象被存储进HashSet集合中以后,就不能修改这个对象中的那些参与计算哈希值的字段了,否则,对象修改后的哈希值与最初存储金HashSet集合中时的
哈希值就不同了,在这种情况下,即使在contains方法使用该对系那个的当前引用作为的参数去HashSet集合众检索对象,也将返回找不到对象的结果,这也会导致无法从HashSet集合众单独删除当前对象,从而造成内存泄漏。


反射的作用--〉实现框架

框架和工具类的区别:
 一个是人家调用你,另一个是你调用人家
 框架是:人家调用你
 工具类:是你调用人家,要你用工具类,当然你得调用人家工具类嘛。

得到一个文件的绝对路径:
 getRealPath();


框架的概念及用反射技术开发框架的原理:
 //创建一个名为config的properties文件
 className="java.util.ArrayList";
 //主程序 
 public static void main(String[] args) throws Exception {
  //创建读取流
  InputStream ips=new FileInputStream("config.properties");//这里用的是相对路径
  //创建properties对象
  Properties props=new Properties();
  props.load(ips);
  ips.close();
  //获得键所对应的值
  String className=props.getProperty("className");
  Collection coll=(Collection)Class.forName(className).newInstance();
  
  coll.add(1);
  coll.add(2);
  coll.add(3);
  coll.add(1);
  //config文件     className=java.util.ArrayList
  System.out.println(coll.size());//输出结果为4
  //config文件     className=java.util.HashSet
  System.out.println(coll.size());//输出结果为3
 }


用类加载器来加载普通文件:
  //用类加载器来加载文件,两种方式
  
  InputStream ips=Fu.class.getResourceAsStream("config.properties");

  InputStream ips=Fu.class.getClassLoader().getResourceAsStream("config.properties");


 

 

 

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值