一.集合框架
- List:有序/可重复
- ArrayList:长度可变的数组,便于查找和随机访问
- LinkedList(Node):双向链表,便于插和删除 - Set:无序/唯一
- HashSet:HashMap的key(由HashCode()和equals()方法共同保证不重复),常用于去重 - Map:底层是Entry<K,V>键值对
- 遍历:
- List:fori,增强for,迭代器
- Set:增强for
- Map:entrySet(),keySet(),values(); - 泛型:限定了集合类型的输入和输
- 常用方法:
- add()/put();
- remove();
- set();/put();
- get(下标)/get(key);
- Collection:CompareAble/new CompareTo{int compare(){}}
二.实用类
- 包装类:基本是数据类型的表示法,主要用于泛型的使用,且常用于与字符串类型的转换
- 装箱:将基本数据类型变为包装类型
- 拆箱:把包装类型转为基本数据类型
- Integer a=1;//自动装箱
- int b=new Integer(12);//自动拆箱 - Math类:基本为数学公式
- Random类:各种随机数
- 枚举类:特殊的类,私有构造,直接写的值都是当前类型
- String类:底层是字符数组常量,不可改变,更安全
- 常用方法:indexOF,split,charAt,substring,toCharArray,getBytes - StringBuffer类:底层是字符数组变量,初始长度为16,线程安全,运行相对较慢
- 常用方法:append(),toString() - Stringbuilder类:单线程,运行相对较快
- Date类:UTC时间
- SimpleDateFormat类:“yyyy-MM-dd HH:mm:ss”
三.I/O流:InputStream/OutputStream/Reader/Writer
-
普通流:FileInputStream/FileOutputStream/FileReader/FileWriter
-
转换流:InputStreamReader/OutputStreamWriter,转换流以及字符编码
-
高级流:
- 缓冲流:把流在闲时先一步读取进缓存
BuffereReader、BuffereWriter
- 二进制流:相对来说安全,先把要传输的图片、音频、视频等先放入文件流
DataInputStream、DataOutputStream
- 对象流:对象要现实性Serializable接口(序列化)
ObjectInputStream、ObjectOutputStream -
读取过程:
- 把文件放入文件输入流中
- read(),read(b)…
- 关闭流 -
写入过程:
- 把文件输出路径放入输出流中
- Writer()
- 关闭流
四.多线程
- 继承Thread类的、实现Runnable接口
- 实现Callable接口:call()方法是由返回值的(泛型)
- FutureTask task=new FutureTask(Callable接口的实现类的对象);
- Thread t=new Thread(task);
- t.start();
- task.get();//获取返回值
五.反射
- 运行时获取对象及操作对象及其内容及其属性和方法(唯一不生效的是枚举)
- 获Class对象的三种方式:类型.class、对象.getClass()、Class.forName(“类的全路径”);
- 获取构造方法: (getDeclaredConstructor())newInstance()
- 设置权限:setAccessible(true);
- 调用方法:(getDeclaredMethod(“方法名”,“参数类型”))invoke()
- 设置属性:(getDeclaredField(“属性名”))set()
六.XLM/JSON
- xml格式:<?xml version="1.0" charsrt="UTF-8"?>
- 根标签、一一对应(有开头、有结束) - xml作用:传输数据(基本不用了)、配置文件
- DOM:
- DocumentBuilderFactoryfactory=DocumentBuilderFactory.newDocumentBuilderFactory();
- DocumentBuilder builder=factory.newDocumentBuilder();
- Docment document=builder.parrse(“xml路径”);
- Element e=document.getElementByName(“标签名称”);
- e.item(0); - 保存
- TransformFactory f=TransformFactory.newInstance();
- Transform tf=f.newTransform();
- DomSource s=new DomSource();
- StreamResult sr=new StreamResult(writer对象装入目标地址);
- tf.tranform - JSON:对象要实现Serializable接口
- 对象转json格式字符串:JSON.toJSONString(对象)
- json字符串转json:JSON.parseObject(json串);
- json转对象:JSON.toJavaObject(json对象,java对象类型.class);