黑马程序员——java基础之易忘点总结(三)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一个进程中至少有一个线程。

 

为什么要覆盖run方法呢?

Thread类定义了一个功能run,用于存储线程要运行的代码。

 

join可以用来临时加入线程执行。

yield() 暂停当前正在执行的线程对象,并执行其他线程。

 

 

Lock:替代了Synchronized

    lock 获取锁

    unlock释放锁

    newCondition()返回绑定到此 Lock 实例的新 Condition 实例

 

Condition:替代了Object的 wait,notify,notifyAll

    await();等待

    signal();唤醒一个

    signalAll();唤醒所有

 

interrupt();  中断线程。

setDaemon(boolean on)将该线程标记为守护线程(即后台线程)或用户线程

 

this代表本类对象。

 

同步代码块使用的锁是任意对象。

同步函数使用的锁是this。对于static的同步函数,使用的锁不是this。是 类名.class

 

单词:Lock(锁),Condition, ReentrantLock(和synchronized类似),parseXXX, split(切割),trim(去两端空格),substring(获取子串),compareTo(比较),iterator(迭代器),

 

 

Integer a = 127;

Integer b = 127;

sop("a==b:"+(a==b));

结果为true。因为a和b指向了同一个Integer对象。因为当数值在byte范围(-128到127)内容,对于新特性,如果该数值已经存在,则不会在开辟新的空间。

 

StringBuilder: sb1.append(new Demo()).append(newDemo());

 

获取最大相同子串:

public static String getMaxSubString(String s1,String s2)

{

    String max = "",min = "";

    max = (s1.length()>s2.length())?s1: s2;

    min = (max==s1)?s2: s1;

    for(int x=0; x<min.length(); x++)

    {

       for(int y=0,z=min.length()-x; z!=min.length()+1; y++,z++)

       {

           String temp =min.substring(y,z);        

           sop(temp);

           if(max.contains(temp))

              return temp;

       }

    }

    return "";

}

 

wait和sleep的区别:

wait:释放cpu执行权,释放同步中锁。

sleep:释放cpu执行权,不释放同步中锁。

 

强制结束冻结状态:interrupt();目的是线程强制从冻结状态恢复到运行状态。

       但是会发生InterruptedException异常。

 

contains(obj):判断是否包含obj。比较的是参数类型!

 

addAll(collection):一个集合添加另一个集合!

removeAll(collection):

 

单词:clear(清空),isEmpty(是否包含元素),toArray(集合变数组),retainAll(取交集),

 

集合中存储的都是对象的引用(地址)

 

HashSet:是线程不安全的。不同步。比较相同,先判hashCode,再判equals!

 

Set集合的功能和Collection是一致的。

 

LinkedList:特有方法:

addFirst();  addLast();getFirst();getLast();removeFirst();removeLast();等对首尾元素的操作

在JDK1.6出现了替代方法。把原来的没有元素返回异常变为了返回null;

OfferFirst();offerLast();peekFirst();peekLast();pollFirst();pollLast();

 

ArrayList:查询快。增删慢。线程不同步。

LinkedList:增删快,查询慢。线程不同步。

Vector:线程同步。被ArrayList替代了。因为效率低

 

LinkedList:特有方法。凡是可以操作角标的方法都是该体系特有的方法。

增add(index,element);addAll(index,Collection);

删remove(index);

改set(index,element);

查get(index): subList(from,to); listIterator()里有个逆向遍历的方法;

    intindexOf(obj):获取元素的位置。

 

静态方法不可以访问类上定义的泛型。

如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。

    public  static  <W>  void  method(W  t)

 

TreeSet:保证元素唯一性的依据:compareTo方法return 0.

TreeSet排序的第一种方式:

让TreeSet里的元素对象自身具备比较性。其元素对象类

需要实现Comparable接口,覆盖compareTo方法。根据返回值正负判断前后!

这种方式也成为元素的自然顺序,或者叫做默认顺序。

 

TreeSet的第二种排序方式。TreeSet ts = newTreeSet(比较器对象);

定义一个类,实现Comparator(比较器)接口,覆盖compare方法。

 

当两种排序都存在时,以比较器为主

 

查找元素是否相同时用了二分法查找!

 

集合里增加元素对象时,也可以是基本数据类型,因为会自动包装成对象!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值