Java类的执行顺序、final的用法

类的初始化顺序

1、静态变量 
2、静态代码块 
3、main方法 
4、类的属性 
5、代码块 
6、构造方法

如果有父类则是

1、父类–静态变量 
2、父类–静态代码块 
3、子类–静态变量 
4、子类–静态代码块 
5、父类–属性 
6、父类–代码块 
7、父类–构造方法 
8、子类–属性 
9、子类–代码块 
10、子类–构造方法

注意:

1、如果Test类有静态代码块或静态属性,只有Test类所有静态变量与静态代码块都已经装载结束,才开始执行main()方法体 
2、静态代码段只在类第一次加载时才执行

final:最终
1、用final修饰的变量是常量 
2、用final修饰的引用类型(如对象)的值可变,但不可再new 
3、用final修饰的方法不可再重写 
4、用final修饰的类不可被继承

时间: 2024-10-03 13:19:52

Java类的执行顺序、final的用法的相关文章

java类的执行顺序

1. static静态代码块 2.{} 3.构造方法 4. 子类main方法运行时: static静态代码块 5.子类构造方法调用时: static静态代码块 {} 构造方法 6.子类new两次对象 父类: package com.xuzhiwen.protect; public class FatherTest { static{ System.out.println("FatherTest ....static"); } public FatherTest(){ System.ou

java类的初始化顺序

java类的初始化顺序 (2008-10-21 13:30:15) 转载▼ 标签: java 初始化 继承初始化 it 分类: Java 对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器.我们也可以通过下面的测试代码来验证这一点: public class InitialOrderTest { // 静态变量 public static String staticField = "静态变量";

一个继承了抽象类的普通类的执行顺序

今天看<java编程思想>抽象类那节的时候,做了一个练习题3(p171页),发现了一个很有意思的东西,一个继承了抽象类的普通类的执行顺序是怎样的呢? package JavaChoiceQuestion; /** * @Auther: 李景然 * @Date: 2018/4/13 19:45 * @Description: */ //抽象类 public abstract class AbstractClass { public static void main(String[] args){

java 类 及其 执行过程

java 类 命名 java类文件中  只能有一个公开类  且 公开类类名与当前类文件的文件名一致 方法如果使用了static修饰,那么此方法是类方法,可以 类名.方法名 使用. 你的main方法在同一个类中,那么不需要写类名,直接写方法名就可以调用. 而没有使用static修饰的方法属于实例方法,必须创建此类的对象,通过对象调用此方法.如: Func2 f = new Func2(); f.shuchu(4,4); public class HelloWorld{ /** * main方法作为

java类内容初始化顺序

在java类中一般有:成员变量.静态变量.成员方法.静态方法.构造方法.那么这几个的初始化顺序是什么呢? 初始化的先后顺序是:静态变量(类load进内存就初始化)------静态代码块(类load进内存就初始化)--------成员变量(对象初始化时)------------初始化块------------构造函数 测试程序如下: package com.evan; /* * 初始化顺序测试 */ public class InitialOrderTest { public static Str

java中代码执行顺序

之前面试的时候有一道题,是考java的代码执行顺序的. 在大三的时候学习java语言的时候有说,但是在实际工作中用的比较少,所以在这里重新记录复习一下. 比如下面这段代码: class helloA{ public helloA(){ System.out.println("helloA"); } { System.out.println("I'm A"); } static { System.out.println("Static A"); }

java初始化的执行顺序

Java初始化(initialization)其实包含两部分: 1.类的初始化(initialization class & interface)2.对象的创建(creation of new class instances).因为类的初始化其实是类加载(loading of classes)的最后一步,所以很多书中把它归结为“对象的创建”的第一步.其实只是看问题的角度不同而已.为了更清楚的理解,这里还是分开来. 顺序:应为类的加载肯定是第一步的,所以类的初始化在前.大体的初始化顺序是:类初始化

java代码块执行顺序

1.测试类 public class Demo extends SuperDemo { //静态代码块 static{ System.out.println("this is static block"); } //普通代码块 { System.out.println("this is normal block"); } //默认构造函数 public Demo(){ System.out.println("this is demo constructor

Java代码的执行顺序

引言 对于Java的初学者而言,很多时候我们只知道如何写一些基础的代码,但是却不知道为什么,对于一些概念而言,更是停留在一个很模糊的概念上,其实这样是不好的一种学习习惯.所以对于不太清楚的一些概念,自己多敲一敲,或许能更好的掌握. [TOC] 问题 今天要说的问题是,Java中代码的执行顺序,不知道叫这个题目合适不.这里先定义几个类别: 构造方法(如:public className(){--}) 静态代码块(如:static {--}) 类的属性变量(如:ClassA a = new Clas