专业建站公司报价,网络营销方案策划案例,朔州做网站公司,有什么网站可以做电子挑战第 5 天 java反射List Set Map 区别Object 常用方法 java反射 
定义: 
运行时动态获取类信息和调用方法的特性。 
应用场景: 
JDBC数据库连接。框架如Hibernate和Struts等。 
实现方式: 
通过四种方法获取Class对象: Class.fo… 
 挑战第 5 天
 - java反射
 - List Set Map 区别
 - Object 常用方法
 
 
  
 
java反射
 
- 定义:
 
 
 
- 应用场景:
 
 
- JDBC数据库连接。
 - 框架如Hibernate和Struts等。
 
 
- 实现方式:
 
 
- 通过四种方法获取Class对象: 
- Class.forName(“类的路径”)
 - 类名.class
 - 对象名.getClass()
 - 基本类型的包装类通过Type属性获取Class对象。
 
  
 
- 核心类:
 
 
- Class:获取类和接口信息。
 - Field:获取属性信息和动态访问权限。
 - Constructor:获取构造方法信息和访问权限。
 - Method:获取方法信息。
 
 
- 优缺点:
 
 
- 优点: 
- 运行时动态获取实例,提高灵活性。
 - 可与动态编译结合。
 
  - 缺点: 
- 性能较低,因为需要解析字节码。
 - 破坏封装性,可以访问私有方法和属性。
 
  
 
- 性能优化方案:
 
 
- 使用setAccessible(true)关闭安全检查。
 - 缓存Class对象以加快多次实例化速度。
 - 使用ReflectASM工具类通过字节码生成加速反射。
 
 
List Set Map 区别
 
- List:
 
 
- 存储元素的顺序是有序的。
 - 可以包含重复的元素。
 - 允许元素引用相同的对象。
 
 
- Set:
 
 
- 不允许重复元素。
 - 元素自动去重,不会有多个元素引用相同的对象。
 - 无序的,但某些实现如LinkedHashSet和TreeSet可以保持元素的插入顺序或自然排序顺序。
 
 
- Map:
 
 
- 使用键值对存储数据。
 - 每个键最多只能映射到一个值。
 - 键不能重复,但值可以重复。
 - 键通常使用String类型,但也可以使用任何对象。
 - Map不保证元素的顺序,但某些实现如LinkedHashMap可以保持插入顺序。
 
 
Object 常用方法
 
- clone方法:
 
 
- 保护方法,用于实现对象的浅复制。
 - 只有实现了Cloneable接口的类才能调用此方法,否则会抛出CloneNotSupportedException。
 - 实现深拷贝需要成员变量也为引用类型并实现Cloneable,同时重写clone方法。
 
 
- finalize方法:
 
 
- 与垃圾收集器相关,用于判断对象是否可以被回收。
 - 当对象即将被垃圾回收器回收时,由垃圾回收器调用此方法。
 
 
- equals方法:
 
 
- 用于比较对象的等价性。
 - 默认行为与==相同,即比较对象的内存地址,通常需要在子类中重写。
 
 
- hashCode方法:
 
 
- 用于哈希查找,通常在重写equals方法时也需要重写此方法。
 - JDK 1.6和1.7默认返回随机数,而JDK 1.8使用Marsaglia’s xorshift scheme算法生成随机数。
 
 
- wait方法:
 
 
- 与synchronized关键字配合使用,使当前线程等待对象的锁。
 - 可以无限期等待或设置超时时间。
 - 等待期间,线程进入睡眠状态,直到被通知、被中断或超时。
 
 
- notify方法:
 
 
- 与synchronized关键字配合使用,唤醒在此对象上等待的单个线程。
 
 
- notifyAll方法:
 
 
- 与synchronized关键字配合使用,唤醒在此对象上等待的所有线程。
 
 
- toString和getClass方法:
 
 
- toString方法用于返回对象的字符串表示,通常需要在子类中重写。
 - getClass方法用于获取对象的运行时类信息,通常不需要讨论。