黑马程序员-java基础加强-enhance3

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! -------

知识点:反射机制与配置文件properties
1,Method类与invoke方法。
通过字节码文件对象得到Method对象。
String str = "abc";
Method charAt=String.Class.getMethod("charAt",int.Class);
注意参数,getMethod方法有两个参数列表,第一个表示方法名,第二个表示该方法的参数列表,可以有多个参数,jdk1.4中用数组表示的,到了1.5使用了可变参数列表概念。二者有区别。
str.charAt(1);一般调用方法。
charAt.invoke(str,1);反射调用。注意参数列表,第一个表示方法对应的对象,第第二个表示方法的参数列表。若第一个参数为null,明显表示这个方法为静态方法。
charAt在这里只是一个自己定义的方法名字,不同于str.charAt里面的charAt。

2,数组的反射。
具有相同维数和元素类型的数组属于同一个类型,也就是说具有同一个Class实例对象。
代表数组的Class实例对象的getSuperClass()返回的父类为Object类对应的Class。
基本类型的一维数组可以被当作Object类型使用,不能当作Object[]类型使用。非基本类型的一维数组既可以当作Object类型使用也可以被当作Object[]类型使用。

3,反射的作用--实现框架功能。
在一个程序运行时,是不能改变程序内部的结构的。框架就像一个房子,我们要为它添加门窗,锁等等变成一个具有特色的屋子。这就是在框架的基础上开发。可能一个框架写出来后,要使用这个框架的人还在读小学,怎么知道添加的东西叫什么名字呢?当要添加其他的Class类到程序中时,就完用到反射机制了。可以更改配置文件就可以达到注入外程序到框架里面去。实现更多的功能。

4,main方法传参。
在反射中,要兼容jdk1.4的语法,应该将数组再包装一层


5,防止内存泄露和hashCode。
这是一个在反射中涉及集合时出现的问题,当添加元素对象到set集合中后,使用过程中对元素的字段再度修改之后,删除该元素是不会释放内存的,也就是没有删除。因为这些字段都参与了当初存储元素时计算的hash值了的。set集合里是不允许重复元素添加的,就是hashCode和equals两个方法判断元素重复的依据。 

6,Bean。
一个特殊的类,有着某些规则。
要有setXX;getXX
还要有一个私有属性XX
getXX要返回一个值。
setXX要传入一个参数。

7,配置文件路径的读取。
properties
一般不用相对路径。
一定要记住用完整的路径,完整的路径不是硬编码来的,是运算出来的。
类加载器也加载配置文件。
Person.Class.getClassLoader().getResourceAsStream("XXX");
Person.Class.getResourceAsStream("XXX");
相对和绝对,不带/的是相对。

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! -------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值