zoukankan      html  css  js  c++  java
  • java.3

    线程

    Runable接口是线程工作的内容,只有一个方法就是run() Thread创建了一个线程,start之后启动线程

    public class MyRunnable implements Runnable{
    public void run(){  
    }
    }
    
    Runnable threadJob= new MyRunnable();
    Thread myThread=new Thread(threadJob);
    myThread.start()
    

    线程状态 可执行/执行中/阻塞

    Thread.sleep()确保县城在一段时间内不会被唤醒

    线程调用start()之后,虽然对象还是会在堆上,但是已经失去了线程的可执行性

    thread.setName() Thread.currentThread().getName()

    synchronized 修饰的方法叫做同步化的方法。每一个java对象都有一个锁,当对象有同步化的方法的时候,线程只有在取得要是的情况下才能进入线程。

    synchronized(this){...}可以只是给部分代码块加锁

    同步化会减慢程序的执行速度,也可能会导致死锁

    注意可以在一个类的内部再次定义一个内部类,这个内部类只有这个类本身才能使用

    集合类Collection

    1,List就好像是数组一样

    ArrayList 按照加入的顺序存储的

    LinkedList 底层类似于链表,有大量删除插入的时候用

    Vector

    2,Set集合数据不能重复,顺序跟你插入的顺序没关系

    Set是如何判断重复的?1,判断hashcode,hashcode一样的话在调用equals的方法判断对象是不是一样。所以有些时候你要放入Set的数据有类似于主关键字这样的限制的话,要重写这两个方法

    TreeSet 自动排序(唯一的一个)所以元素必须实现Comparable接口 或者呢 写一个实现了comparator接口的类,传入到TreeSet的构造函数里面也可以

    HashSet

    LinkedHashSet

    Map key-value key不能重复

    可以用Collection.sort(List list)对List排序

    泛型

    class x<T>{
       void xx(T t){
      }
    }
    x xx<String>=new xx<String>;
    

    public <T extends Animal> void x(ArraList<T> t)

    public void x(ArraList<"? extends Animal>" t)

    这两种写法表示集合里面的元素必须是继承或者实现自Animal的

  • 相关阅读:
    try-catch- finally块中, finally块唯一不执行的情况是什么?
    Mac下 pygame.image.load不显示图片解决方法
    Ubuntu中sudo速度慢的解决方法(转载)
    [Mac Terminal] ___中断跳出死循环
    Fuzzy logic
    Discrete Mathematics and Its Applications | 1 CHAPTER The Foundations: Logic and Proofs | 1.4 Predicates and Quantifiers
    Bugs -----The largest and most interesting kind of thing.
    A Brief, Incomplete, and Mostly Wrong History of Programming Languages
    MIPS指令集
    >> 计算机的数据表示
  • 原文地址:https://www.cnblogs.com/Coder-Pig/p/6243219.html
Copyright © 2011-2022 走看看