<Zhuuu_ZZ>Java高级特性知识总结

1.集合框架

在这里插入图片描述

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() addAll()集合之间互相转换
remove()
set()/put()
get()
Collections: CompareAble/new CompareTo{int compare(){} }

public class Student  {
    private int id;
    private  String name;
    private int score;

    public Student() {

    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", score=" + score +
                '}';
    }

    public Student(int id, String name, int score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }

    public static void main(String[] args) {
        Student s=new Student(1,"王菲",56);
        Student s1=new Student(2,"李凯",35);
        List list=new ArrayList();
        list.add(s);
        list.add(s1);
        Collections.sort(list, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.score-o2.score;
            }
        });
        System.out.println(list);
    }}

2.实用类

  包装类:方便泛型使用,与String类型的转换
         装箱:把基本数据类型变为包装类型
         拆箱:把包装类型转为基本数据类型
         Integer a=1;//自动装箱
         int b=new Integer(12);//自动拆箱
  Math类
  Random类
  枚举类:特殊的类,私有构造,直接写的值都是当前类型
  String:底层是字符数组常量,不可改变
            indexOf,split,charAt 给对应下标,找到字符,substring(),toCharArray 有中文用这个,getBytes
   StringBuffer :线程安全,较慢  
                  append(), toString()    
   Stringbuilder :单线程订的,较快
   Date   :UTC时间
   SimpleDateFormat:"yyyy-MM-dd HH:mm:ss"

3.io流:InputStream OutputStream Reader Writer

    普通流:FileInputStream   FileOutStream   FileReader      FileWriter
     转换流:InputStreamReader   OutputStream        转换流及字符编码
    高级流:
         缓冲流:把(字符)流在闲时先一步读取进缓存
         二进制流  先把要传输的图像,视频,音频等先放入文件流,再把文件流装入DataInputStream,DataOutputStream
         对象流:对象要实现Serializable接口                         
                   ObjectInputStream      ObjectOutputStream
 读取过程:
        1.把文件放入文件输入流中
         2.read()  , read(b)......(放入字符串)
         3.关闭流
写入过程:
         与上一步基本类似

4.多线程

   继承Thread类,实现Runnabel接口
   start()和run()的区别:start是真正实现多线程的方法
   实现Callable接口:call()方法有返回值(泛型)
                     FutureTask ft=new FutureTask(Callable接口的实现类的对象)
                     Thread t=new Thread(ft);
                     t.start();
                     ft.get()//获取返回值

5.反射:运行时获取对象,操作对象及其属性和方法(唯一操作不了的就是枚举)

    获取类对象:类型.class   对象.get.Class()      Class.forName("类的全路径") 最后一个会抛个异常
    获取构造方法(getDeclaredConstructor())  newInstance(),方法(getDeclaredMethod("方法名",参数类型)  invoke(),属性(getDeclaredField("属性名") set()
    权限不够的需要执行 setAccessible(true);

6.xml和json

           xml格式:<?xml version="1.0" charset="UTF-8"?>
                    根标签  一一对应(有开头,有结束)
            xml作用:传输数据,配置文件
            DOM获取:
                      1.DocumentBuilderFactory factory=DocumentBuliderFactory.newInstance();
                      2.DocumentBuilder builder=factory.newDocumentBuilder();
                      3.Document document=builder.parse("xml路径");
                      4.Element e=document.getElementsByName("标签名称");
                       5.e.item(0)
              DOM保存:
                       1.TransformFactory f=TransformFactory.newInstance();
                       2.Transform tf=f.newTransform();
                       3.DomSource s=new DomSource(document);
                       4.StreamResult sr=new StreamResult(writer对象装入目标地址);
                       5.tf.transform(s,sr);

       json:对象要实现Serializable接口
         对象转json格式字符串:JSON.toJSONString(对象)
          对象转json:JSON.parseObject(json串)
          json转对象:JSON.toJavaObject(json对象,java对象类型.class);

7.正则表达式:规则表达式

匹配规则

建议多练

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值