5.6笔记整理

本文详细介绍了Java反射中获取构造方法及方法的不同方式,并对比了公共与私有方法的区别。此外,还深入探讨了Java集合框架中的List、Set、Map等核心接口与实现类的特点及其线程安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.5日 总结
1.在反射中,class. getConstructor(Class<?>... parameterTypes) Constructor<?>[] getConstructors()
           都是返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。 返回的是公共的方法
           如果想返回所有的方法(包括私有的)应该用getDeclaredMethods()
           这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
           getDeclaredConstructors()
          返回 Constructor 对象的一个数组,这些对象反映此 Class 对象表示的类声明的所有构造方法

          
2
集合只能存储对象,长度可变,可以存取不同类型的对象
collection 有两个子接口 list列表  可存放重复元素,元素存取是有序的。 set 集合不可存放重复元素 ,元素存取是无序的

list接口的常用类 :
ArrayList
Vector 线程安全 已经被ArrayList 替代
LinkList 链表结构

取出LIst集合中元素的方式:
get(int  index):通过脚标获取元素。
iterator():通过迭代方法获取迭代器对

set的常用接口类
HashSet:线程不安全,存取速度快。它是如何保证元素唯一性的呢?  通过 equals 和 hashcode 来保证元素的唯一性

TreeSet: 线程不安全,可以对Set集合中的元素进行排序。  通过compareTo或者compare 方法中的来保证元素的唯一性。元素是以二叉树的形式存放的。

 Map集合常用类
 
 Hashtable:线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。
 HashMap:线程不安全,速度快,允许存放null键,null值。
 TreeMap:对键进行排序,排序原理与TreeSet相同。


 collection 与 collections的区别  collection集合框架的接口,常用 set,list
                                   Collections是工具类
 
 contines包含
 

 list 如何保证线程安全(由一个方法)??


2.1java.util
类 Properties
java.lang.Object
  java.util.Dictionary<K,V>
      java.util.Hashtable<Object,Object>
          java.util.Properties

读取配置文件

3

. 遍历枚举 enum.value()返回一个数组 再通过for增强进行遍历

   特点 每一个枚举值都是一个枚举类型的子对象,因此公用此枚举类的构造方法,但是但是构造方法不可以被public修饰
  
        enum是新特性中提供的一个新的引用数据类型

       
    -------------------------------------------------------------
    Annotation 注解
   
    java.lang.Annotation

4 注解:定义标记简化书写。
    特点:
 将运行时出现问题体现编译时期:@Override
 它就是程序中的一个标记。
 定义格式:
 @interface 注解名称
 {
  //注解属性。
  属性类型 属性名();
  属性类型  属性名() default 类型对应的值;
 }
 

注解内部有一个默认的属性value。
 属性类型:8种基本数据类型,String ,Class,数组,enum,Annotation
 注解可以加载包,类,成员,局部。
 
 注解有一个声明周期:
 是通过一个注解来体现的。
 @Retention(RetentionPolicy.RUNTIME)
 RetentionPolicy是一个枚举类型。
 有三个值:
 
 CLASS:默认的。编译器将把注释记录在类文件中,但在运行时 VM 不需要保留注释
 RUNTIME:编译器将把注释记录在类文件中,在运行时 VM 将保留注释,因此可以反射性地读取
 SOURCE:编译器要丢弃的注释
 
 
 注解如何来获取:
 通过反射的形式。类的注解获取类所属Class对象。
      方法注解要获取Method对象。
     
 什么时候用注解呢?
 配置信息较为简单可以将其配置在注解上。
 方便于类在反射的是使用该配置信息。这样就不用在对配置信息文件进行读写操作。
 
 注解也有一定义的局限性。
 将值直接定义在程序内部。
   
  
   ------------------------------------------------------   
  4 5.6日 XML
   最外层标签只能有一个
  <![CDATA[…………]]>  内容不被解析  
    <!-- adf adf-->  这是注释 
    (#PCDATA)可被解析的数据
   
  引入dtd 给xml添加约束  <!DOCTYPE students SYSTEM "1.dtd">
  
    |
   
DTD 文档——元素定义
语法格式:
  <!ELEMENT 元素名称 使用规则>
示例:
 <!ELEMENT 书架 (书名,作者,售价)>
 <!ELEMENT 书名 (#PCDATA)>
 DTD 规则 空格 不用按照顺序 ,按照顺

 <!ELEMENT students (student+)>
<!ELEMENT student (name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>


    XMLSPY 强解析
 
 
 DTD 文档——属性定义
 语法格式:
 <!ATTLIST 元素名
  属性名1 属性类型 设置说明
  属性名2 属性类型 设置说明
  ……
 >
示例:
<!ATTLIST 商品
 类别 CDATA #REQUIRED
 颜色 CDATA #IMPLIED
>
#REQUIRED:必须设置该属性
#IMPLIED:可以设置也可以不设置
#FIXED:说明该属性的取值固定为一个默认值,
XML应用:
 <商品 类别="服装" 颜色="黄色">…</商品>
 <商品 类别="服装">…</商品>

CDATA:指的是纯文本,即由字符、符号组成的字符串
Enumerated:属性也可以被描述为一组可接受的取值的列表, XML文件中对属性的赋值将从这个列表中选取一个值。这 类属性属于枚举类型ENUMERATED,不过,关键字 ENUMERATED是不出现在Dtd定义中的。
ID:是用属性值的方式为文件中的某个元素定义唯一标识的方 法,由处理文件的程序或脚本语言使用。
IDREF:允许一个元素的属性使用文件中的另一个元素,方法就 是把那个元素的 ID标识值作为该属性的取值
ENTITY:将多内容文本或者一个文件用一个简称来标识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值