阅读下面实现堆栈类并发控制的部分代码 public class DataStack{ private int idx=0; private in

题目

阅读下面实现堆栈类并发控制的部分代码 public class DataStack{ private int idx=0; private int[]data=new int[8]; public void push(int i){ . ________________{ data[idx]=i; idx + +; } } } …… } 在程序下画线处填入正确选项是

A.synchronized

B.synchronized(this)

C.synchronized()

D.synchronized(idx)

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

用于定义类成员的访问控制权的一组关键字是()

A.class, float, double, public

B.float, boolean, int, long

C.char, extends, float, double

D.public, private, protected


public, private, protected

第2题:

阅读下列说明和C++代码,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。
【说明】
以下C++代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分类及其关系如图6-1所示。



【C++代码】
#include?#include?using?namespace?std;class?DrawCircle?{??????//绘制圆形,抽象类? ? ? public: (1);//定义参数为?int?radius,?int?x,?inty? ?virtual~DrawCircle()?{?}};class?RedCircle:public?DrawCircle?{????//绘制红色圆形? ? ? ? public: void?drawCircle(intradius,?int?x,?int?y)?{cout?<?drawCircle?=?drawCircle;? }? ?virtual~shape()?{?}? public:? ?virtual?void?draw()?=?0;};class?Circle:public?Shape?{????//圆形? ? private:? ? ?int?x,y,radius;? ? public:? Circle(int?x,inty,int?radius,DrawCircle?*drawCircle)? (3)? {? this->x?=?x;? ?this->y?=?y;? ? this->radius?=?radius; }? ? ? public:? void?draw(){? drawCircle?-> (4); }};int?main(){Shape?*redCirclenew?Circle(100,100,10,????(5)????);//绘制红色圆形? Shape?*greenCircle=new?Circle(100,100,10, (6)??);//绘制绿色圆形redCircle >draw();? ?greenCircle?->draw();? ?return?0;}


答案:
解析:
(6)(1)void drawCircle (int radius,int x,int y)
(2)DrawCircle*drawCircle
(3)drawcircle
(4)drawCircle(radius,x,y)
(5)new RedCircle()
(6)new GreenCircle()【解析】
第一空是填接口里面的方法,在接口的实现里面找,可以发现应该填void drawCircle (int radius,int x,int y)。
第二空可以根据后面this drawCircle=drawCircle判断,这里应该有一个drawCircle属性,因此应该填)DrawCircle drawCircle。
第三空这里填drawcircle,用-> drawcircle来引用父类的成员。
第四空调用drawCircle(radius,x,y)方法。
第五、六空分别创建一个红色圆形对象和一个绿色圆形对象作为Circle里面的实参。

第3题:

下列选项中,列出用于定义类成员的访问控制权的一组保留字是()。

A.class.float.double.public

B.fioat.Boolean.int,long

C.char.extends.float.double

D.public.private.protected


正确答案:D

第4题:

阅读下面实现堆栈类并发控制的部分代码 public class DataStack } private int idx=0; private int[] data=new int[8]; public void push(int i) { ______ { data[idx]=I: idx++; } } … } 程序中下画线处应填入的正确选项是

A.synchronized

B.synchronized(this)

C.synchronized()

D.synchronized(idx)


正确答案:B
解析:在Java中,使用synchronized关键字标识临界区。Java平台将每个由synchronized语句设置的对象设置一个锁,称为对象锁,它是一种独占的排他锁,即同一时刻最多只能有一个线程获取该锁。为了能够正常地使用对象锁,对共享数据的所有访问都必须在临界区内,同时临界区的共享数据必须是私有的,确保只能通过对象的方法才能访问到。本程序中,下画线后边的代码即为临界区,所以需要用synchronized关键字标识。

第5题:

下列选项中,列出用于定义类成员的访问控制权的一组保留字是______。

A.float,boolean,int,long

B.class,float,double,public

C.char,extends,float,double

D.public,private,protected


正确答案:D

第6题:

下列选项中,列出用于定义类成员的访问控制权的一组保留字是 ( )

A.class,float,double,public

B.float,boolean,int,long

C.char,extends,float,double

D.public,private,protected


正确答案:D
解析:public定义的是公有的,private定义的是私有的,定义为protected的方法和成员变量能被同一个包里的所有类所访问,就像默认修饰符package一样。像float、double、int、long、char这些都不能定义类成员的访问控制权,所以本题的答案选择D。

第7题:

用于定义类成员的访问控制权限的一组关键字是

A.extends 和 implements

B.public,private 和 protected

C.class和public

D.char,int,float和double


正确答案:B
解析:修饰符分为访问限制符和非访问限制符。其中访问限制符有pub-lic.orivate.protected和default。非访问限制符有static,final和abstract等。

第8题:

阅读下面一个支持多线程并发操作的堆栈类代码 public class MyStack { private int idx=0; private int[] data=new int[8]; public ______ Void push(int i) { data[idx]=i; idx++; } … } 在下画线处应填入的是

A.synchronized

B.wait

C.blocked

D.interrupt


正确答案:A
解析:一个程序中单独的、并发的线程对同一个对象进行访问的代码段,称为临界区。在Java语言中,临界区可以是一个语句块或是一个方法,并且用synchronized关键字标识。本程序中push()方法即为临界区,所以需要用synchronized关键字标识。

第9题:

阅读下列一个支持多线程并发操作的堆栈类代码段 public class MyStack{ private int idx=0; private int[]data=new int[8]; public______void push(int i){ data[idx]=i; idx + +; } …… } 在下画线处应填入的是

A.synchronized

B.wait

C.blocked

D.interrupt


正确答案:A
解析:synchronized修饰方法,表示此方法的执行需同步,其同步锁对应的对象为本对象。程序实现一个简单的压栈操作,因压栈过程不能同时出栈或读取栈信息,故操作需要同步。