三,反射类
反射,类加载
一,类;
1,基本概念
long now = System.currentTimeMillis();
System.out.println(now);
直接调用无参构造得到的就是表示当前日期时间的Date对象
直接打印Date对象,得到的来自于toString方法的结果并不可用
Date方法中单独获取和设置年、月、日、时、分、秒的所有方法都已经过时。
2,Date的使用:
方便;
1、方便快速的获取当前日期时间的Date对象;
2、配合一个SimpleDateFormate的类,完成根据我们使用要求格式化时间日期字符串
不方便:
1、没有办法设置一个除了当前日期时间以外的特点日期时间 --- 使用Calender来解决
Date date = new Date();
SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss a");
String result = sd.format(date);
System.out.println(result);
3,采用了工厂模式,无需使用者产生对象,由Calendar提供工厂方法生成对象,我们只管用
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, 3);
给某个字段设置一个特定值(充分体现了设计符号常量的意义)
cal.set(1949, 10, 1);
根据年月日设置指定日期---月份需要-1处理
System.out.println("请输入年份:");
int year = new Scanner(System.in).nextInt();
System.out.println("请输入月份:");
int month = new Scanner(System.in).nextInt();
System.out.println("请输入日期:");
int day = new Scanner(System.in).nextInt();
cal.set(year, month-1, day);
Date d = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("E");
String dayOfWeek = sdf.format(d);
System.out.println(dayOfWeek);
4,结论:
1、获取当前日期时间,用Date
2、获取指定日期时间,用Calendar
3、获取格式化日期时间字符串,用Date配合SimpleDateFormat
4、掌握Calendar和Date之间的相互转换
二,反射;
1,用于配置文件
Properties;是一个集合类(是用来装东西的容器)
建------值
标识----数据
key---Value
Properties props = new Properties();
产生容器 ( map-----映射 )可以获取文件数据
2,增
props.setProperty("001", "a");
放数据的时候是kv对,成对放入
props.setProperty("002", "5");
props.setProperty("003", "3");
3,改
props.setProperty("002", "你好");
放入重复建,相当于在做修改
System.out.println(props.size());
查看props长度
4,查
String A=props.getProperty("001");
获取数据,如果键不存在不会报异常,而是返回null;
5,删
props.remove("001");
6,操作文件
写文件
相对于其它映射集合来说最大特点是可以操作属性文件(一种键直对表示特殊文件)
存文件,如果文件不存在就会在相应的位置新建文件;并放入集合中所有数据
如果文件存在,就会把集合所有的数据存入,覆盖掉文件中已有数据,
try{
props.store(new FileOutputStream("test.properties"), "");
}catch(FileNotFoundException fi){
fi.printStackTrace();
}catch(Exception ex){
ex.printStackTrace();
}
7,读取文件
Properties np = new Properties();
读取文件;如果文件不存在会报异常,
try{
np.load(new FileInputStream("test.properties"));
}catch(FileNotFoundException fi){
fi.printStackTrace();
}catch(Exception ex){
ex.printStackTrace();
}
System.out.println(np.size());
System.out.println(np.getProperty("002"));//查看键位002的值
System.out.println(np.stringPropertyNames());