您的位置:首页 > 编程语言 > Java开发

java基础知识点

2017-04-11 15:13 134 查看
&和&&区别:&是位运算符,&&是布尔逻辑运算符

Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口):

匿名内部类是没有名字的内部类,不可以继承其他类,但一个内部类可以作为接口由另一个内部类实现

Collection 和Collections的区别

1、java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
 Collection   

├List   

│├LinkedList   

│├ArrayList   

│└Vector   

│ └Stack   

└Set 

2、java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

Java代码  


import java.util.ArrayList;  

import java.util.Collections;  

import java.util.List;  

  

public class TestCollections {  

      

    public static void main(String args[]) {  

        //注意List是实现Collection接口的  

        List list = new ArrayList();  

        double array[] = { 112, 111, 23, 456, 231 };  

        for (int i = 0; i < array.length; i++) {  

            list.add(new Double(array[i]));  

        }  

        Collections.sort(list);  

        for (int i = 0; i < array.length; i++) {  

            System.out.println(list.get(i));  

        }  

        // 结果:23.0 111.0 112.0 231.0 456.0  

    }  

}  

 sleep()和wait()的区别:

① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。

sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。

② 锁: 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。

sleep不出让系统资源;wait是进入线程等待池等待,出让系统资源,其他线程可以占用CPU。一般wait不会加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤醒等待池中的所有线程,才会进入就绪队列等待OS分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。

Thread.sleep(0)的作用是“触发操作系统立刻重新进行一次CPU竞争”。

③ 使用范围:wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用。

   synchronized(x){ 

      x.notify() 

     //或者wait() 

   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java