Java集合,io ,xml,多线程 转

    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()

猜你喜欢

转载自blog.csdn.net/qq_40529747/article/details/79739796
今日推荐