类中代码执行顺序

在这里插入图片描述

1 static

!静态(属性和代码块)的,只加载一次。

在这里插入图片描述

!静态先:父类静态(属性+代码块)---->子类静态

!如果创建子对象了,一定先构造,相应父对象。(先初始父类(属性+动态代码块)+父构造 )

而且子构造调用前,子类也要初始化(子属性+动态代码块)

package com.sxt;

/**
 * <h3>solr-code</h3>
 * <p></p>
 *
 * @author : Mr.Gao
 * @date : 2021-01-01 22:46
 **/
public class test {
    public static void main(String args[]) {
        Father f = new Son();
    }
}

class Father {
    public Father() {
        System.out.println("Father Construct");
    }

    static int a=printFahter();

    static int printFahter() {
        System.out.println("print in father");
        return 1;
    }
}

class Son extends Father {
    public Son() {
        System.out.println("Son Construct");
    }

    static int b=printSon();

    static int printSon() {
        System.out.println("print in son");
        return 2;
    }
}
"C:\Program Files\Java\jdk1.8.0_101\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=55930:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_101\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\rt.jar;D:\IdeaProjects\solr-java\target\classes;D:\maven\maven_local_repository\org\apache\solr\solr-solrj\7.7.2\solr-solrj-7.7.2.jar;D:\maven\maven_local_repository\commons-io\commons-io\2.5\commons-io-2.5.jar;D:\maven\maven_local_repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;D:\maven\maven_local_repository\org\apache\httpcomponents\httpclient\4.5.6\httpclient-4.5.6.jar;D:\maven\maven_local_repository\org\apache\httpcomponents\httpcore\4.4.10\httpcore-4.4.10.jar;D:\maven\maven_local_repository\org\apache\httpcomponents\httpmime\4.5.6\httpmime-4.5.6.jar;D:\maven\maven_local_repository\org\apache\zookeeper\zookeeper\3.4.14\zookeeper-3.4.14.jar;D:\maven\maven_local_repository\org\codehaus\woodstox\stax2-api\3.1.4\stax2-api-3.1.4.jar;D:\maven\maven_local_repository\org\codehaus\woodstox\woodstox-core-asl\4.4.1\woodstox-core-asl-4.4.1.jar;D:\maven\maven_local_repository\org\noggit\noggit\0.8\noggit-0.8.jar;D:\maven\maven_local_repository\org\slf4j\jcl-over-slf4j\1.7.24\jcl-over-slf4j-1.7.24.jar;D:\maven\maven_local_repository\org\slf4j\slf4j-api\1.7.24\slf4j-api-1.7.24.jar" com.sxt.test
print in father
print in son
Father Construct
Son Construct

Process finished with exit code 0

这个new实例的方法,具体怎么执行了的?

例二:

package com.sxt;

import org.apache.solr.client.solrj.impl.HttpSolrClient;


/**
 * <h3>solr-code</h3>
 * <p>测试</p>
 *
 * @author : Mr.Gao
 * @date : 2020-12-31 23:29
 **/
public class TestSolrApp {

    public static final String SOLR_URL_SXT_CAR="http://192.168.91.174:8983/solr/sxt-car";

    private static  HttpSolrClient solrClient = null;

    static {
        solrClient= new HttpSolrClient.Builder(SOLR_URL_SXT_CAR).build();
    }

    public static void main(String[] args) {
        System.out.println(solrClient);
    }
}

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
org.apache.solr.client.solrj.impl.HttpSolrClient@4411d970

Process finished with exit code 0

先 private static ---->static{ }

2 abstract

abstract class 抽象类 不能new出来。可作为父类引用
abstract method 抽象方法 ,没有方法体。
子类继承父抽象类后,必须重写抽象方法。除非,子类也是抽象的

3 final

最终的(类,方法,变量)
final修饰的类不能被继承:如常用的 String / Math /System
final修饰的方法不能被 重写
final修饰的变量不能被 修改 :只能赋值一次
(final修饰基本类型,值 不可变,修饰引用类型,引用地址不可变)

public class Test {

    public static void main(String[] args) {
        new Student();
    }

}

class Student{
      /* final String name;

    {
        name="tom";
    }*/
   final String name="tom";  //与上面等效,!!声明必须赋值。

    public Student(){
        System.out.println("Student构造执行");
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值