java ReentrantLock 构造函数问题

问题描述

java ReentrantLock 构造函数问题

Java ReentrantLock的构造函数有这一句代码

public ReentrantLock(boolean fair) {
    sync = fair ? new FairSync() : new NonfairSync();
}
    sync这个变量的类型是Sync,为什么可以被一个Boolean赋值?

解决方案

没有,这代码其实是
if (fair)
sync = new FairSync();
else
sync = new NonfairSync();

解决方案二:

1、构造函数什么时候被调用,被谁调用?

转摘:http://bbs.csdn.net/topics/350231037
当然,只有在NEW的时候,才会真正的创建这个对象,只有在创建时才会调用该类的构造函数。
如:
Class?A{
public?A(){
System.out.println("这是A的构造函数");
}
}
C......
答案就在这里:java 构造函数问题

时间: 2024-08-21 16:02:36

java ReentrantLock 构造函数问题的相关文章

继承-java 子类构造函数要用到父类的方法判断成功后再构造,但这样的话super()不是第一句就报错

问题描述 java 子类构造函数要用到父类的方法判断成功后再构造,但这样的话super()不是第一句就报错 父类是点,里面有方法判断是不是同一个点,子类是直线,我在子类直线构造时要判断两个点是否相等,因此调用父类的方法,但是这样下面先构造父类super()就不对,该怎么解决呢? 谢谢解答. 解决方案 首先,你的父类是不是有有参构造函数呢?如果有的话,子类构造函数的第一句就必须是super(参数)调用父类的构造函数. 其次,父类有有参数构造函数,第一句就先super(参数),然后再调用父类的方法.

Java中构造函数File(String)未定义

问题描述 Java中构造函数File(String)未定义 package nmd; import java.io.*; public class FileHello { public static void main(String[] args) { try { Runtime ec=Runtime.getRuntime(); File file=new File("file.txt"); ec.exec(file.getAbsolutePath()); } catch (Excep

关于java中构造函数的一些知识详解_java

java的构造函数是一个非常重要的作用,首先java里的构造函数是可以重载的,而且因为也是可以继承在父类的构造函数,所以在子类里,首先必然是调用父类的构造函数.可以看下面的两个例子来对比: public class Test { public static void main(String args[]) { B b = new B(100); } } class A { public A() { System.out.println("A without any parameter"

java 构造函数问题,谢谢各位指导。

问题描述 java 构造函数问题,谢谢各位指导. 在日期类中,写构造函数时先调用了日期类的方法判断public Date(String date) { if (isValidDate(date)) { date = this.date; } } 现在我要在测试类中,让用户输入日期,默认为当前日期,若用户输入的日期不正确,则一直到用户输入正确为止,这样的话也就是说只有输入正确了才会构造日期类函数成功,但是我要判断是否正确必须要先构造才可以调用方法判断啊?怎么解决呢? 解决方案 public Dat

Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁_java

在Java5.0之前,只有synchronized(内置锁)和volatile. Java5.0后引入了显示锁ReentrantLock. ReentrantLock概况 ReentrantLock是可重入的锁,它不同于内置锁, 它在每次使用都需要显示的加锁和解锁, 而且提供了更高级的特性:公平锁, 定时锁, 有条件锁, 可轮询锁, 可中断锁. 可以有效避免死锁的活跃性问题.ReentrantLock实现了 Lock接口: 复制代码 代码如下:   public interface Lock {

详解Java多线程编程中互斥锁ReentrantLock类的用法_java

0.关于互斥锁 所谓互斥锁, 指的是一次最多只能有一个线程持有的锁. 在jdk1.5之前, 我们通常使用synchronized机制控制多个线程对共享资源的访问. 而现在, Lock提供了比synchronized机制更广泛的锁定操作, Lock和synchronized机制的主要区别: synchronized机制提供了对与每个对象相关的隐式监视器锁的访问, 并强制所有锁获取和释放均要出现在一个块结构中, 当获取了多个锁时, 它们必须以相反的顺序释放. synchronized机制对锁的释放是

Java中new DerivedClass()时背后发生的事情

Java中new DerivedClass()时背后发生的事情 (原创 – 邵正军, 2005-4-5)   class DerivedClass extends BaseClass {-} new DerivedClass();   1           装载class 1.1          载入BaseClass , 产生了此处说明的序列步骤(即: [装载class])的递归. 1.2          载入DerivedClass 1.2.1     为类作用域变量分配存储空间,并赋

Effective Java (4) 通过私有构造器强化不可实例化的能力

一.背景 对于有些工具类如java.lang.Math.java.util.Arrays等,它们只包含静态方法和静态域字段,对于这样的类实例化没有什么任何意义.但在实际使用中,如果不加任何特殊处理,这样的类还是可以像其他类一样可以被实例化. 二.处理办法 将构造函数设置为private,这样外部类无法实例化该类,同时在这个私有的构造函数中直接抛出异常,从而避免在类的内部实例化. public class UtilityClass { // 私有的构造器,内部实例化会抛出异常 private Ut

Effective Java(3) 用私有构造器或者枚举类型强化Singleton属性

一.背景 所谓的Singleton是指仅仅被实例化一次的类,Singleton通常被用来代表那些本质上唯一的系统组件. 实现Singleton有以下三种方法: ①. 私有构造器,公有静态final域. ②. 私有构造器,公有静态工厂方法. ③. 单元素枚举类型(首选). 二.私有构造器,公有静态final域 public class Singleton1 { public static final Singleton1 INSTANCE = new Singleton1(); // 公有静态fi