原文:synchronized修饰static方法与非static方法的区别

. 当synchronized修饰一个static方法时,多线程下,获取的是类锁 即Class本身,注意:不是实例 ,作用范围是整个静态方法,作用的对象是这个类的所有对象。 . 当synchronized修饰一个非static方法时,多线程下,获取的是对象锁 即类的实例对象 ,作用范围是整个方法,作用对象是调用该方法的对象。 结论:类锁和对象锁不同,他们之间不会产生互斥。 代码演示: 运行结果: ...

2018-03-18 00:40 0 3626 推荐指数:

查看详情

synchronized 修饰static方法static方法区别

  Java中synchronized用在静态方法静态方法上面的区别   在Java中,synchronized是用来表示同步的,我们可以synchronized修饰一个方法。也可以synchronized修饰方法里面的一个语句块。那么,在static方法static方法前面加 ...

Wed May 18 23:11:00 CST 2016 0 14014
static 修饰方法

              static 修饰方法 1、static修饰方法被称之为静态方法也叫作类方法,加static方法,可以通过类名直接访问,也可以通过对象名访问,而不加static只能通过对象名访问,加了static方法,不能再内部写this,因为直接用类名点方法的时候,没有当 ...

Fri Jan 10 06:20:00 CST 2020 0 5792
【Java学习笔记】static方法static方法区别

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。静态方法可以直接通过类名调用,任何的实例也都可以调用。因此静态方法中不能用this和super关键字,不能直接 ...

Tue Apr 12 07:37:00 CST 2016 0 3487
SynchronizedStatic Synchronized区别

通过分析这两个用法的分析,我们可以理解java中锁的概念。一个是实例锁(锁在某一个实例对象上,如果该类是单例,那么该锁也具有全局锁的概念),一个是全局锁(该锁针对的是类,无论实例多少个对象,那么线程都共享该锁)。实例锁对应的就是synchronized关键字,而类锁(全局锁)对应的就是static ...

Wed Jan 29 04:17:00 CST 2020 0 1900
static修饰方法不能被重写可以被继承

今天我们谈谈为什么抽象类中不能有静态的抽象方法以及static修饰方法不能被重写可以被继承 1 static修饰方法不能被重写可以被继承我们知道static修饰方法为静态方法,可以直接使用类名.方法名进行调用,即该方法不属于某个对象属于该类。 我们根据下面的例子在看看static修饰 ...

Mon Nov 19 18:28:00 CST 2018 0 3871
static修饰属性,方法,类

中二、static修饰方法1.方法随着类的加载而加载随着类的加载而加载,是类方法,其加载早于对象,不需要n ...

Mon Oct 07 22:45:00 CST 2019 0 336
抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰

答:都不能。抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛盾的。本地方法是由本地代码(如C代码)实现的方法,而抽象方法是没有实现的,也是矛盾的。synchronized方法的实现细节有关,抽象方法不涉及实现细节,因此也是相互矛盾的。 抽象方法只能出现在抽象类中,南无该方法 ...

Fri Oct 27 22:58:00 CST 2017 0 2163
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM