final static abstract public synchronized修饰符

一、final修饰符

final static abstract public synchronized修饰符_第1张图片

二、static修饰符

final static abstract public synchronized修饰符_第2张图片

三、abstract修饰符

final static abstract public synchronized修饰符_第3张图片

四、访问修饰符

final static abstract public synchronized修饰符_第4张图片

五、synchronized修饰符

采用synchronized修饰符实现的同步机制也叫做互斥锁机制,它所获得的锁叫做互斥锁。

当多个线程去操作同一个数据时可能会出现数据混乱的问题,如何处理??  ==》同步原理
1.同步方法:
    (1)普通成员方法:synchronized 修饰的方法      ex:public synchronized void test(){}    
        锁对象,默认是this(也就是当前类对象)
    (2)静态成员方法:static synchronized  修饰的方法  ex:public static synchronized void test() {}
        锁对象,默认是类的.class对象(也就是类的字节码对象)
2.同步代码块:
     synchronized(锁对象){}
弊端:方法中的所有代码,都只允许一个线程访问。

 

六、这些修饰符哪些是不可以两两组合

(1)final、abstract:abstract修饰的类都是不能使用new关键字获取实例对象的类,修饰的方法都是没有方法体未实现的方法,而final修饰的类是不允许被继承的类,修饰的方法是不能被重写的方法,可以看出final和abstract修饰符一个是阻止继承一个是希望被继承,是两个对立的修饰符,所以这两个肯定是不可以组合的。

(2)abstract、synchronized:abstract修饰的方法没有方法体,sychronized则表示的是一个同步代码块,所以这两者也不能组合。

(3)static、abstract:static修饰的属性和方法是属于类的,而且是不能被子类给继承的,如果父类和子类都有一个同名的static修饰的方法,并不表示子类重写父类的方法,而是子类所特有的方法。
                                      abstract修饰的类和方法主要是为了让子类去实现和继承,所以这两个修饰符也不能放在一起用。

你可能感兴趣的:(修饰符,corejava,修饰符,corejava)