2021-11-13学习记录:java错题&Spring错题

考察方法进栈与出栈的顺序。先进后出

有个知识点,方法在出栈的时候,执行的是return语句。因为出栈就意味着方法结束并消费,如果没有return语句,那么方法出栈的时候什么都不执行,就直接销毁。

1.执行split(12)时,执行代码System.out.print(split(number / 2))

    split(12/2)进栈,此时number=6;

2.执行split(6)时,执行代码System.out.print(split(number / 2))

    split(6/2)进栈,此时number=3;

3.执行split(3)时,

1

2

3

1行 if (number % 2 != 0)

2行          System.out.print(split((number + 1) / 2));

3行    System.out.print(split(number / 2));

 按照顺序执行   

 先执行第2行

            首先split((3+1)/2)进栈,此时number=2,

            再执行split(2),那么split(2/2)进栈,此时number=1, 最后return 1,

            注意此时第2行代码还没有结束

            此时

            split(2/2)出栈,输出1;

            split((3+1)/2)出栈,输出2;

   第二行代码结束,再执行第三行,此时number=3,执行System.out.print(split(number / 2))

           split(3/2)进栈,number=1,return,那么就需要出栈了

split(3/2)出栈,输出1

split(6/2)出栈,输出3

split(12/2)出栈,输出6;

最终结果12136;

split(number)方法,最终返回的是number这个值,所以split(n)出栈的输出结果就是n

整理:

split(12/2)进栈

split(6/2)进栈

split((3+1)/2)进栈

split(2/2)进栈

       split(2/2)出栈,输出1

        split((3+1)/2)出栈,输出2

split(2/2)进栈

        split(2/2)出栈,输出1

split(6/2)出栈,输出3

split(12/2)出栈,输出6

  

看了大佬的解析感觉还是有点迷糊,有空再好好看看。

三.finalize

方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。注意:finalize不一定被jvm调用,只有当垃圾回收器要清除垃圾时才被调用。

D:final修饰的引用变量地址不再改变,但值可以变

 

这题记得之前错过一次,还是没有记住。> <

 

 

@Primary:优先注入

@Qualifier可以与@Autowired结合使用,同时根据类型和名称进行注入。

 

 对于接口,采用JDK动态代理,没有接口时,采用CGLib动态代理

@Qualify根据名称注入bean

 @AutoWired注解还可以写在set方法、构造器上;@Qualifier注解也可以引用默认名称;@Bean注解可以用于装配任何Bean。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值