java高级
1.集合框架(容器)
collection 父接口
List set Map-》独立接口
List
实现类 ArrayList LinkedList
区别 ArrayList 底层是数组结构,遍历元素效率高
LinkedList 底层是链表结构,频繁删除插入效率高
add() remove() size() delete();
可以for循环遍历,迭代器遍历, foreach(增强for循环)-需加泛型
Set
实现类 HashSet TreeSet
区别 HashSet无序 TreeSet自然排序
add() remove() size() delete()
可以for循环遍历,迭代器遍历, foreach(增强for循环)-需加泛型
Map
实现类 HashMap HashTable
区别 HashTable线程安全,不允许null值。HashMap允许null值,非线程安全
key值不允许重复
put() keyset() values() get(key)->获取对应的value值
可以for循环遍历,迭代器遍历, foreach(增强for循环)-需加泛型
注明:集合获取长度是size()方法
2.文件流io
文件对象File file= new File("指定路径");
字符流和字节流
字符流
Writer Reader
FileWriter FileReader
BufferedWriter
BufferedReader
字节流
inputStream
FileInputStream
outputStream
FileOutStream
BufferedInputStream
BufferedOutputStream
转换流
inputStreamReader
outputStreamwriter
对象数据流
对象流必须实现Serializable接口(里面什么都没有)
ObjectInputStream
ObjectOutputStream
3.反射机制
四种方式创建类对象
1对象名.getClass();
2类名.class;
3Class.forName("全类名(包名+类名)");
4包装类.TYPE;
常用方法:
getFields()
getDeclaredFields()
getField(String name)
getMethods()
getMethod (String name,Class [] args)
newInstance()
getConstrutors()
getName()
通过反射机制创建对象
1调用Constructor的newInstance方法,适用所有无参构造方法
2如:cons.newInstance(new Object[ ] {"Amos", 32, 56});
3Array数组创建对象比较特殊Array.newInstance(clazz, 10);
调用方法
obj=反射创建出来的对象
method=获取到的指定方法对象
method.invoke(obj, new Object[]{ "Amos" });
4.xml
指定版本,及编码集(标签形式,成对出现(开始标签和结束标签))
DTD制定xml书写规则
dom解析xml
1创建解析器工厂2创建解析器对象3获取document对象4获取根元素和元素节点
dom4j解析
1引入jar包2创建SAXReader对象3调用read()获取document对象4获取根元素和元素节点
5.多线程
两种方式创建多线程
1继承Thread类,重写run();2实现Runnable接口,重写run();
start()启动线程(谁先争夺到谁启动)
线程运行状态
join()阻塞线程,靠谱,需线程运行完后才可运行
设置优先级,只是告诉cpu线程的优先级,但未必按照优先级执行
后台线程随主线程的消亡而消亡
线程同步--实现线程安全,性能下降,有可能会导致死锁
方法:1同步代码块 synchronized () {}
2同步方法(方法名前加 synchronized)
线程通讯
wait() notify() notifyAll()
1.集合框架(容器)
collection 父接口
List set Map-》独立接口
List
实现类 ArrayList LinkedList
区别 ArrayList 底层是数组结构,遍历元素效率高
LinkedList 底层是链表结构,频繁删除插入效率高
add() remove() size() delete();
可以for循环遍历,迭代器遍历, foreach(增强for循环)-需加泛型
Set
实现类 HashSet TreeSet
区别 HashSet无序 TreeSet自然排序
add() remove() size() delete()
可以for循环遍历,迭代器遍历, foreach(增强for循环)-需加泛型
Map
实现类 HashMap HashTable
区别 HashTable线程安全,不允许null值。HashMap允许null值,非线程安全
key值不允许重复
put() keyset() values() get(key)->获取对应的value值
可以for循环遍历,迭代器遍历, foreach(增强for循环)-需加泛型
注明:集合获取长度是size()方法
2.文件流io
文件对象File file= new File("指定路径");
字符流和字节流
字符流
Writer Reader
FileWriter FileReader
BufferedWriter
BufferedReader
字节流
inputStream
FileInputStream
outputStream
FileOutStream
BufferedInputStream
BufferedOutputStream
转换流
inputStreamReader
outputStreamwriter
对象数据流
对象流必须实现Serializable接口(里面什么都没有)
ObjectInputStream
ObjectOutputStream
3.反射机制
四种方式创建类对象
1对象名.getClass();
2类名.class;
3Class.forName("全类名(包名+类名)");
4包装类.TYPE;
常用方法:
getFields()
getDeclaredFields()
getField(String name)
getMethods()
getMethod (String name,Class [] args)
newInstance()
getConstrutors()
getName()
通过反射机制创建对象
1调用Constructor的newInstance方法,适用所有无参构造方法
2如:cons.newInstance(new Object[ ] {"Amos", 32, 56});
3Array数组创建对象比较特殊Array.newInstance(clazz, 10);
调用方法
obj=反射创建出来的对象
method=获取到的指定方法对象
method.invoke(obj, new Object[]{ "Amos" });
4.xml
指定版本,及编码集(标签形式,成对出现(开始标签和结束标签))
DTD制定xml书写规则
dom解析xml
1创建解析器工厂2创建解析器对象3获取document对象4获取根元素和元素节点
dom4j解析
1引入jar包2创建SAXReader对象3调用read()获取document对象4获取根元素和元素节点
5.多线程
两种方式创建多线程
1继承Thread类,重写run();2实现Runnable接口,重写run();
start()启动线程(谁先争夺到谁启动)
线程运行状态
join()阻塞线程,靠谱,需线程运行完后才可运行
设置优先级,只是告诉cpu线程的优先级,但未必按照优先级执行
后台线程随主线程的消亡而消亡
线程同步--实现线程安全,性能下降,有可能会导致死锁
方法:1同步代码块 synchronized () {}
2同步方法(方法名前加 synchronized)
线程通讯
wait() notify() notifyAll()