sti*_*ows 3 java oop execution
假设你有以下方法 MyClass
public class MyClas{
public void startWork(){
YourClass.doSomeWork();
//more things to do in this method
}
}
Run Code Online (Sandbox Code Playgroud)
和YourClass看起来像这样:
public class YourClass{
public static void doSomeWork(){
// a lot of work to do here
// maybe even invoke other methods in some other classes
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想知道是在代码YourClass.doSomeWork();中执行的startWork()方法,将脚本继续下一行相同的方法,或者等到doSomeWork()在YourClass完成它的执行?
请注意,doSomeWork()不会返回任何内容.
大多数语言中的默认语义,特别是Java中的默认语义当然是代码按顺序执行.
含义:除非您执行其他操作,例如将任务提交到ExecutorService(或创建Thread对象并调用其start()方法),当然外部方法将按顺序执行所有调用,并且每个内部调用都需要在下一个被执行.
换句话说:除非您在源代码中使用特定的构造,否则事情将由您放入代码的确切顺序由单个线程执行.是的,事情会变得更复杂,因为指令可以在不同级别重新排序,但Java内存模型的这些方面与此处提出的基本问题无关).