• Java中的四类八种基本数据类型 第一类:整数类型  byte short int long 第二类:浮点型  float double 第三类:逻辑型    boolean(它只有两个值可取true false)
    第四类:字符型  char
  • 在java中标识符可以包括这4种字符:字母、下划线、$、数字;开头不能是数字;不能是关键字。例如:var3&是错误的,不能与&相组合来命名。
  • abstract类的子类也可以是抽象类所以抽象类的子类必须实现其超类的所有抽象方法这句话是错误的。抽象类不能被实例化,无法使用new关键字调用抽象类的构造器创建抽象类的实例,即使抽象类不包含抽象方法,也不能被实例化。
  
    public 
    class 
    HasStatic { 
    // 1 
    
    
         
    private 
    static 
    int 
     x =  
    100 
    ; 
    // 2 
    
    
         
    public 
    static 
    void 
     main(String args[]) { 
    // 3 
    
    
             
    HasStatic hsl =  
    new 
    HasStatic(); 
    // 4 
    
    
             
    hsl.x++; 
    // 5 
    
    
             
    HasStatic hs2 =  
    new 
    HasStatic(); 
    // 6 
    
    
             
    hs2.x++; 
    // 7 
    
    
             
    hsl =  
    new 
    HasStatic(); 
    // 8 
    
    
             
    hsl.x++; 
    // 9 
    
    
             
    HasStatic.x--; 
    // 10 
    
    
             
    System.out.println( 
    " x=" 
    + x); 
    // 11 
    
    
         
    } 
    
    
    }这段代码输出的结果是 x=102.同一个类内,private变量可以访问,由于x是static的,存贮在类内,而不是对象内,所以++、--操作的是同一个变量。创建两个对象调用只是障眼法,其实调用的是同一个变量。

  • vector是线程安全的ArrayList,在内存中占用连续的空间。初始时有一个初始大小,当数据条数大于这个初始大小后会重写分配一个更大的连续空间。如果Vector定义为保存Object则可以存放任意类型。所以不必事先知道vector所存储数据对象的类型。在java中可以用Exception抛出一些并非错误的消息,但这样比直接从函数中返回一个结果要更大的系统开销。在接口中可以包含数据成员,但是这些数据成员必须是常量,public final static,一旦声明不可改变。
  • A,Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。
    B,CyclicBarrier 主要的方法就是一个:await()。await()方法没被调用一次,计数便会减少1,并阻塞住当前线程。当计数减至0时,阻塞解除,所有在此 CyclicBarrier 上面阻塞的线程开始运行。
    C,直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用说,门闩的意思顾名思义就是阻止前进。在这里就是指CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程。
    D,Counter不是并发编程的同步器
  • 接口中的方法默认是public,不能用private修饰