关于java类的执行顺序

2025-01-05 12:00:05
推荐回答(5个)
回答1:

呵呵 跟放在前后没有关系的,
你写这部分代码叫做 源代码,计算机执行的其实不是源代码,而是字节码。
因此当你执行时,计算机要先做处理,把源代码转换为字节码。

“ 难道java代码的执行顺序不是自上而下吗? 初学,见笑了! ”
java代码执行的确是自上而下,呵呵 但是指的是函数内部代码,也就是从main函数的第一句开始执行 以此类推 到最后一句 当然了,有些代码是执行不到的因为有分支结构和循环结构
比如
if(true)
{
//A
}else
{
//B
}

这里B代码就执行不到

不是类代码也是自上而下运行的,嘿嘿

回答2:

你去看看编译后的.class文件就会明白很多,内部类经过javac编译后会生成一个新的.class文件,然后再由ClassLoader把与之相关的所有class都会加载到内存,而之后创建对象时自然就会找到相对应的资源了。这句语句Outer outer = new Outer(); 在程序内部实质做了三件事:第一 声明了一个Outer类型的变量outer; 第二 通过new关键字创建了一个Outer对象;第三 等于号是把创建出来的Outer对象的引用(内存地址)赋给了outer变量。所以说在分析代码时一定要有内存的栈空间和堆空间的概念。(打个比喻-new动作就好比一个新对象产生时在内存的指定地盘上划分了一亩三分地给这个新生命)

回答3:

先后顺序如下!
1.静态块
2.块
3.构造器
4.父类构造器

运行顺序为:

1. 静态块
2. 父类构造器
3. 本类中的块
4. 本类的构造器

回答4:

Java代码的执行不是按照代码的顺序的,而是用到的时候再去执行,一个类里面可能会有很多方法,但大多数方法可能都是为某一个方法服务,举例说明:
class test {
public static void main(String [] args) {
a();
f();
}
static a() {
b();
c();
d();
}
static b() {
}
static c() {
}
static d() {
}
static f() {
c();
}
}
在上面的程序中不是按照方法的顺序一次执行的,你可以考虑这样一个问题,程序都是从main()方法开始执行的,但是不是一定要将main()方法放到一个类的最前面?这个你试一下就明白了。

回答5:

Outer outer = new Outer();
outer.test();
实例化outer,就是说创建一个outer对象,然后调用了test方法,既然是调用了test方法,那么位置就没什么关系了,相当于指针,指向了test当然是使用test,就好比一碗面,我想先吃面下边的菜,我直接吃菜就行了,没必要按照顺序先把面吃完才吃菜。
但是内部执行,如楼上所说是按照顺序来的。