牛客网Java错题总结(7)

目录

一、依赖注入

二、方法的进栈与出栈顺序

三、抽象类与接口

四、JavaWeb会话绑定监听

五、字符串


一、依赖注入

解析:

依赖注入(Dependency Injection,简称DI)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。

依赖注入应用比较广泛。可以使应用程序的配置和依赖性规范与实际的应用程序代码分开。

其中一个特点就是通过文本的配置文件进行应用程序组件间相互关系的配置,而不用重新修改并编译具体的代码。

因此依赖注入降低了组件之间的耦合性,而不是使组件之间相互依赖。

参考地址:https://blog.csdn.net/sinat_21843047/article/details/80297951

二、方法的进栈与出栈顺序

解析:

本题使用了递归调用的方法,方法首先会按照递归调用的顺序进栈,

出栈的时候,执行的是return语句,如果没有return语句则直接出栈,从而销毁。

还有个坑点就是第七行if语句后面跟的是分号;所以第八行的打印语句无论是否满足条件都会执行

if (number % 2 != 0) System.out.print(split((number + 1) / 2));
    System.out.print(split(number / 2));

所以当number=2的时候虽然不满足条件number % 2 != 0,但是会执行System.out.print(split(number / 2));,所以打印出来的是1

三、抽象类与接口

解析:

  • A:抽象类可以声明并定义构造函数,但是不可以创建实例对象,只能用来初始化内部变量,并提供子类实现使用
    • ​​​​​​​即使没有定义构造函数,系统会默认添加无参构造,子类继承时子类的构造函数会隐式调用super()方法调用抽象类的构造方法
  • B:接口是不允许实例化,所以根本就没有构造函数

  • C:抽象类不允许多继承
  • D:jdk1.8后接口中用static或default修饰的方法可以有方法体,1.8之前不可以

四、JavaWeb会话绑定监听

解析:

  • HttpSessionAttributeListener:可以实现此侦听器接口获取此web应用程序中会话属性列表更改的通知;
  • HttpSessionBindingListener:当该对象从一个会话中被绑定或者解绑时通知该对象,这个对象由HttpSessionBindingEvent对象通知。这可能是servlet程序显式地从会话中解绑定属性的结果,可能是由于会话无效,也可能是由于会话超时;
  • HttpSessionObjectListener:没有该接口API;
  • HttpSessionListener:当web应用程序中的活动会话列表发生更改时通知该接口的实现类,为了接收该通知事件,必须在web应用程序的部署描述符中配置实现类;
  • HttpSessionActivationListener:绑定到会话的对象可以侦听容器事件,通知它们会话将被钝化,会话将被激活。需要一个在虚拟机之间迁移会话或持久会话的容器来通知所有绑定到实现该接口会话的属性。

五、字符串

解析:

  • A:'a'是字符,'      a'这个是空格和a,必须要用"     a"才可以;
  • B:String有length()方法
  • C:int无法直接转成String类型
  • D:尾部添加字符串”100“(其他类型数据和字符串类型数据运算时,自动转为字符串类型

猜你喜欢

转载自blog.csdn.net/weixin_39478524/article/details/115102205