黑马程序员-基础加强-反射(2)&内省&注解-No.08
来源:互联网 发布:java判断float是否为0 编辑:程序博客网 时间:2024/04/25 20:51
---------------------- android培训、java培训、期待与您交流! ----------------------
一、Hashcode分析
把一个HashSet集合抽象地想象成由多个区域组成的,每个区域对应一组有相似规则的哈希值,往集合中添加对象时,先寻找同自己相似规则的哈希值的那块区域,找到后,然后在这块区域里用hashCode值挨个挨个比较,如果有相同的则不存入,没有则存入。
如果有这样一个程序,不断地对集合进行添加、修改和删除等操作,因为有可能修改了对象的hashCode值,使对象从此不被发现,则有可能造成内存泄露,所谓内存泄露,就是对象没有了,但实际上一直占有内存空间,不被释放。所以Java语言中发生内存泄露是有可能的。
二、反射
1、反射的作用——实现框架(使用配置文件中的信息用反射机制去调用需要的类)
2、框架与工具类的区别:工具类被用户的类调用,框架则是调用用户提供的类
3、读取配置文件的方法并创建配置文件中类的代码示例:
(例中假如当当前路径有一个配置文件config.properties时)
public static void main(String[] args) throws Exception {//创建一个输入流InputStream ips = new FileInputStream("config.properties");Properties props = new Properties();//把config.Properties的键值信息加载过来props.load(ips);//关掉的是资源,ips在内存的对象由垃圾回收机制处理ips.close();//传递键的参数,key指具体的键String className = props.getProperty("key");//通过从配置文件获取来的信息构造需要的类实例Object obj = (Object)Class.forName(className).getConstructors(); ·······················}
(加载配置文件的方式有多种,可通过当前类的Class实例获得类加载器调用getResourceAsStream("路径")方法获得,这种方式在SSH中常用,但对配置文件只能读,不能写)
三、内省
1、JavaBean,特殊的Java类,该类中的方法符合某种特殊的规则,即所有的属性是通过set和get方法获得知晓的,属性根据方法名称得来,用来多个模块间传递信息
2、IntroSpector类是用来操作JavaBean类的
3、BeanUtils以字符串对JavaBean进行操作
4、PropertyUtils以属性类型本事进行操作
5、Java7新特性:Map map = {name:"heima", address:"beijing"}
四、注解
1、注解是JDK1.5的新特性,使用注解已是一种趋势
2、一个注解就是一个类,注解一次相当于实例了一个对象
3、注解相当于一种标记,可以修饰任何程序元素
4、Annotation Types 注解类型:
@Deprecated——>标识已过时的;(作用与Java源文件)
@Override——>限定重写父类方法;(作用与Java源文件)
@SuppressWarmings——>取消编译器警告 (作用与Java运行时期)
5、@Retention元注解的三种取值:(枚举值)
RetetionPolicy.SOURCE;RetetionPolicy.CLASS;RetetionPolicy.RUNTIME
6、@Target——设置被修饰的Annotation能作用于类的哪些成员上
7、自定义注解及属性
public @interface AnnotationTest {
String name() default "heima"; //指定了默认值使用时就可以不用指定值了
int age();
}
8、访问Annotation的方法
getAnnotation(Class<T> annotationClass):返回该对象上存在的指定类型的注解;
Annotation[] getAnnotations():返回该程序上的所有注解
boolean isAnnotationPresent(指定注解类型):是否存在指定注解类型
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
- 黑马程序员-基础加强-反射(2)&内省&注解-No.08
- 黑马程序员:基础加强之反射机制和内省
- 黑马程序员----基础加强3反射和内省
- 『黑马程序员』---java--基础加强--反射+内省
- 黑马程序员-JAVA基础加强-内省与注解
- 黑马程序员基础加强---内省
- 黑马程序员_java基础加强_静态导入_反射_枚举_注解_内省_泛型_代理
- 黑马程序员_java_基础加强_静态导入_反射_枚举_注解_内省_泛型
- 黑马程序员--基础加强--第六篇--内省
- 黑马程序员-------(基础加强)内省
- 黑马程序员_Java基础加强_内省
- 黑马程序员--基础加强(内省-javabean)
- 黑马程序员-基础加强-反射(1)-No.07
- 黑马程序员-JAVA基础加强-反射2
- 黑马程序员_反射、内省、注解
- 黑马程序员_反射、内省、注解
- 黑马程序员基础加强---反射
- 《黑马程序员》基础加强---反射
- 我的第一堂CSDN课,感觉很好
- Optimizing shaper — hashing filters (HTB)
- 数据库事务四大特性是什么?
- hdu 1542 ,1255 线段树面积并与面积交
- 计算机顶级会议Rankings
- 黑马程序员-基础加强-反射(2)&内省&注解-No.08
- 记录我的新工作(二)
- [我所知道的BIOS]->[Chipset Config] 5
- Android平台开发指导(Android Porting Guide)(一)
- 我家有儿韩胜利 纪录片《父亲》,英文名《勇敢的父亲》
- 寻找满足条件的两个或多个数
- Linux添加删除用户和用户组
- 简单JS和PHP正则验证
- 性能测试脚本录制时的协议类型