java日期处理类
Date类 获取 日期+时间
Date date=new Date(); //实例化Date
Calendar类 日历类 获取年月日时分秒
Calendar calendar=Calendar.getInstance();//实例化
SimpleDateFormat类 日期类型转换
封装类
//将日期对象转换成指定格式的日期字符串
public static String formatDate(Date date,String format){
String result="";
SimpleDateFormat sdf=new SimpleDateFormat(format);//实例化
if(date!=null){
result=sdf.format(date);
}
return result;
}
//将日期字符串转换成日期对象
public static Date formatDateStr(String datestr,String format) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat(format);//实例化
return sdf.parse(datestr);
}
String 对String对象操作,等同于重新生成一个新的对象,将引用指向它
StringBuffer 对StringBuffer对象操作,操作的始终是同一个对象
Math类 常用的数学工具类方法
Arrays类 封装了很多操作数组的工具方法
java泛型:
泛型的引入
限制泛型类型
通配符泛型
泛型方法
java反射 一般情况下,通过类创建对象,反之通过对象找到类用反射
通过反射获取类的基本结构:
类实例化名.getClass().getName() //通过实例化名获取包名
Class<?> c=Class.forName("包名"); //通过包名获取类名
newInstance的使用
getConstructors() 获取全部的构造方法,返回的是类的数组
Method mds[]=c.getMethod();//获取方法
Field fs[]=c.getDeclaredFields();//获取属性
//调用方法用invoke
Object obj=c.newInstance();
Method m=obj.getClass().getMethod("setName",String.class);
m.invoke(obj,"先生");
Method mm=obj.getClass().getMethod("getName");
String name=(String)mm.invoke(obj);
设置访问私有属性
Object obj=c.newInstance();
Field nameField=c.getDeclaredField("name");
nameField.setAccessible(true);
nameField.set(obj,"先生");
List集合 元素可重复的
元素很少变化使用实现类ArrayList
元素经常变动使用LinkedList
集合的遍历iterator和foreach
Iterator<String> it=hs.iterator();
while(it.hasNext()){
String s=it.next();//判断有没下个值,有就输出下个值
}
for(Student s:list){
}
set集合 不允许存在重复的元素
hashset无序的,不允许存在重复的
map集合
Iterator<String> it=hashMap.keySet().iterator();//获取key的集合,再获取迭代器
while(it.hasNext()){
String key=it.next();//获取key
Student student=hashMap.get(key);//获取值
}
多线程的实现
继承Thread类
实现Runnable接口
多线程实现数据共享
线程状态
创建
Thread thread=nre Thread();
就绪
start()方法
运行
run()方法
堵塞
人为挂起或者执行耗时的输入输出操作的情况下
死亡
stop()方法或者run()执行结束后
线程常用的方法
getName() 返回该线程的名称
currentThread() 返回对当前正在执行的线程对象的引用
isAlive()测试线程是否处于活动状态
sleep()线程休眠
setPriority(int newPriority)更改线程的优先级
yield()暂停当前正在执行的线程对象,并执行其他的线程