---------------------- <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>、期待与您交流! ----------------------