之所以把这个文档叫做小抄的原因,是因为这个文档很杂碎,很小的知识点。

    1. #今天看到个东西,🤦‍♂️
    2. System.cout.println();
    3. #注意这是cout。报错没有这个方法
    4. String st = " world";
    5. st.concat("hello");
    6. #注意这个方法返回的是concat会创建一个新的对象,新对象的内容是"hello world";
    7. System.out.println(st);
    8. #结果是 world

    做题做到了这个题,虽然自己知道结果是什么但是忽然想到{}代码块的时候输出顺序是什么!

    1. @Test
    2. public void test1(){
    3. A a = new B();
    4. a=new B();
    5. class A{
    6. static {
    7. System.out.println("1");
    8. }
    9. public A(){
    10. System.out.println("A");
    11. }
    12. {
    13. System.out.println("a");
    14. }
    15. }
    16. class B extends A{
    17. static {//静态语块
    18. System.out.println("2");
    19. }
    20. public B(){//构造函数
    21. System.out.println("B");
    22. }
    23. {//构造语块
    24. System.out.println("b");
    25. }
    26. }

    虽然这个题很无聊,但是自己还是做的含糊不清。尤其是第二次 a = new B()的时候;发现自己对于这里掌握不是很好。查了一下需要有很多改进的地方。第一静态变量只会加载一次 仅仅是静态加载一次。
    class B extends A 优先加载两个方法中的静态方法,然后加载静态代码块。
    总结是优先级 1.静态语块(从父到子)。2.构造语块。3.构造函数