首页 / JAVA / Java:指令流程不清楚
Java:指令流程不清楚
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java:指令流程不清楚,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1423字,纯文字阅读大概需要3分钟。
内容图文
![Java:指令流程不清楚](/upload/InfoBanner/zyjiaocheng/798/e21e1b79f11441438308bc55c5f62dc6.jpg)
我正在经历一些随机的java代码并遇到了这个代码,我试图理解流程并且很难理解类的实际执行情况,类的实际操作所以我的基本问题是WhatDoIDo类实际上做什么?任何指导都将得到推广.
问:
什么是单元测试用例,它解释了由于在并发环境中实现而改进的性能.
码
public class WhatDoIDo{
private X x;
private boolean b;
private Object o;
public WhatDoIDo(X x) {
this.x = x;
}
synchronized Object z() {
if (!b) {
o = x.y();
b = true;
}
return o;
}
public interface X {
Object y();
}
}
解决方法:
WhatDoIDo是一个包装对象的包装类o.
它定义了一个内部接口X,它有一个方法y()来创建一个Object.可以将此接口视为创建对象的策略.当使用new创建WhatDoIDo的对象时,它的构造函数提供了一个X对象,用于创建对象.
它创建包装对象,并通过z()方法使其可用于客户端代码.它懒洋洋地创建对象.它使用布尔标志b来跟踪对象是否已创建.当客户端调用z()来获取包装对象时,如果设置了该标志,则返回对象o.如果未设置flag,则使用创建此WhatDoIDo对象时提供的策略X创建对象.存储对创建的对象的引用并将其返回给客户端.此外,z()是同步的,因为它创建了对象(如果尚未创建).如果它没有同步,则两个线程最终可能会创建一个对象,并且只会存储其中一个.
public class ObjectWrapper {
private CreationStrategy strategy;
private boolean objectCreated;
private Object wrappedObject;
public ObjectWrapper(CreationStrategy strategy) {
this.strategy = strategy;
}
synchronized Object getWrappedObject() {
if (!objectCreated) {
wrappedObject = strategy.createObject();
objectCreated = true;
}
return wrappedObject;
}
public interface CreationStrategy {
Object createObject();
}
}
内容总结
以上是互联网集市为您收集整理的Java:指令流程不清楚全部内容,希望文章能够帮你解决Java:指令流程不清楚所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。