A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗海云 中级黑马   /  2013-2-24 16:12  /  1892 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 罗海云 于 2013-2-25 20:57 编辑
  1. package com.itheima.day01;

  2. import java.io.FileInputStream;
  3. import java.io.InputStream;
  4. import java.util.*;
  5. public class ReflectTest2 {

  6. /**
  7. * @param args
  8. */
  9. public static void main(String[] args) throws Exception{
  10. // TODO Auto-generated method stub
  11. //一定要记住用完整的路径, 但完整的路径不是硬编码, 而是运算出来的.
  12. //InputStream ips = new FileInputStream("config.properties");

  13. InputStream ips = ReflectTest2.class.getClassLoader().getResourceAsStream("com/itheima/day01/config.properties");<FONT color=red>//我就是想问下,为什么getResourceAsStream取路径为什么只用一个/就可以了我看以前基础视频的取路径都是//表示的...</FONT>

  14. Properties props = new Properties();

  15. props.load(ips);
  16. ips.close();

  17. String className = props.getProperty("className");
  18. Collection collections = (Collection)Class.forName(className).newInstance();


  19. //Collection collections = new HashSet();
  20. ReflectPoint pt1 = new ReflectPoint(3,3);
  21. ReflectPoint pt2 = new ReflectPoint(5,5);
  22. ReflectPoint pt3 = new ReflectPoint(3,3);
  23. collections.add(pt1);
  24. collections.add(pt2);
  25. collections.add(pt3);
  26. collections.add(pt1);
  27. //pt1.y = 7;       <FONT color=#ff0000>//还有为什么假如我把这行注释去掉..然后下面就删不掉了呢?注释结果就是1,不注释结果就是2.
  28. </FONT>collections.remove(pt1);
  29. System.out.println(collections.size());

  30. }

  31. }
复制代码
麻烦大神们来说下你的理解..和原理

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

5 个回复

倒序浏览
1,基础视频里取路径用的 \\ 不是 // 用 / 就相当于\\
2,当修改了对象的属性后,它的hashCode会发生改变,所以HashSet会认为它是一个新的对象,所以就达不到删除的目的,会造成内存泄露

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
如果觉得还有问题,继续追问,若得到解决,记得修改帖子的分类为【已解决】,谢谢合作~  楼下几位的答案解决问题了吗?
回复 使用道具 举报
陈丽莉 发表于 2013-2-25 20:44
如果觉得还有问题,继续追问,若得到解决,记得修改帖子的分类为【已解决】,谢谢合作~  楼下几位的答案解 ...

哦. 谢谢版主提醒..还是有点不懂.自己研究去了..
回复 使用道具 举报
本帖最后由 陈丽莉 于 2013-2-26 08:42 编辑
罗海云 发表于 2013-2-25 20:56
哦. 谢谢版主提醒..还是有点不懂.自己研究去了..


一二楼的答案已经很清楚了,有什么不懂得呢?  老师视频中,用了两个\\,是因为,\后面的字母会被转意成其他字符,比如\n是众所周知的换行,所以表示目录时,只有一个\是不行的,而你的程序中,用的不是同一个方向的斜杠,并没有什么冲突;另外,第二个问题所说的删掉注释,恐怕删除的只是// 而不是那一整行,这样的话,注释后面的自然要执行了,影响结果也就不足为奇。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马