天天看点

牛客java选择题每日打卡Day26

牛客java选择题每日打卡Day26

👩‍💻博客主页:京与旧铺的博客主页

✨欢迎关注🖱点赞🎀收藏⭐留言✒

🔮本文由京与旧铺原创

😘系列专栏:java学习

👕参考网站:牛客网

💻首发时间:🎞2022年7月21日🎠

🎨你做三四月的事,八九月就会有答案,一起加油吧

🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲

💬推荐一款模拟面试、刷题神器👉​​点击进入网站​​

🛒导航小助手🎪

文章目录

  • ​​牛客java选择题每日打卡Day26​​
  • ​​🛒导航小助手🎪​​
  • ​​@[toc]​​
  • ​​🐱‍🚀选择题1​​
  • ​​正确答案: B 你的答案: C (错误)​​
  • ​​🐱‍🚀选择题2​​
  • ​​正确答案: C 你的答案: A (错误)​​
  • ​​🐱‍🚀选择题3​​
  • ​​正确答案: A 你的答案: D (错误)​​
  • ​​🐱‍🚀选择题4​​
  • ​​正确答案: A B C D 你的答案: A B (错误)​​
  • ​​🐱‍🚀选择题5​​
  • ​​正确答案: A B D 你的答案: B C (错误)​​
  • ​​🐱‍🚀选择题6​​
  • ​​正确答案: B C D 你的答案: B D (错误)​​
  • ​​🐱‍🚀选择题7​​
  • ​​正确答案: A C 你的答案: C D (错误)​​
牛客java选择题每日打卡Day26

🐱‍🚀选择题1

java中用()字指明继承关系,用()关键字指明对接口的实现。

正确答案: B 你的答案: C (错误)

implements extends
extends implements
extend implement
implement extend      
  • 答案:B

    extends表继承父类

    implements表是实现接口

🐱‍🚀选择题2

若有定义语句: int a=10 ; double b=3.14 ; 则表达式 ‘A’+a+b 值的类型是()

正确答案: C 你的答案: A (错误)

char
int
double
float      

C

\1. 在表达式中,char 和 short 类型的值,无论有符号还是无符号,都会自动转换成 int 或者 unsigned int(如果 short 的大小和 int 一样,unsigned short 的表示范围就大于 int,在这种情况下,unsigned short 被转换成 unsigned int)。因为它们被转换成表示范围更大的类型,故而把这种转换称为“升级(promotion)”。

\2. 按照从高到低的顺序给各种数据类型分等级,依次为:long double, double, float, unsigned long long, long long, unsigned long, long, unsigned int 和 int。这里有一个小小的例外,如果 long 和 int 大小相同,则 unsigned int 的等级应位于 long 之上。char 和 short 并没有出现于这个等级列表,是因为它们应该已经被升级成了 int 或者 unsigned int。

\3. 在任何涉及两种数据类型的操作中,它们之间等级较低的类型会被转换成等级较高的类型。

🐱‍🚀选择题3

阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()

package NowCoder;
class Test {
  public static void hello() {
      System.out.println("hello");
  }
}
public class MyApplication {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Test test=null;
    test.hello();
  }
}      

正确答案: A 你的答案: D (错误)

能编译通过,并正确运行
因为使用了未初始化的变量,所以不能编译通过
以错误的方式访问了静态方法
能编译通过,但因变量为null,不能正常运行      

答案是A吧

这题我认为答案错了

因为Test类的hello方法是静态的,所以是属于类的,当实例化该类的时候,静态会被优先加载而且只加载一次,所以不受实例化new Test();影响,只要是使用到了Test类,都会加载静态hello方法!

另外,在其他类的静态方法中也是可以调用公开的静态方法,此题hello方法是使用public修饰的所以在MyApplication中调用hello也是可以的。

总结:即使Test test=null;这里也会加载静态方法,所以test数据中包含Test类的初始化数据。(静态的,构造的,成员属性)

因此test.hello是会调用到hello方法的。

🐱‍🚀选择题4

下面有关servlet的层级结构和常用的类,说法正确的有?

正确答案: A B C D 你的答案: A B (错误)

GenericServlet类:抽象类,定义一个通用的、独立于底层协议的Servlet。
大多数Servlet通过从GenericServlet或HttpServlet类进行扩展来实现
ServletConfig接口定义了在Servlet初始化的过程中由Servlet容器传递给Servlet得配置信息对象
HttpServletRequest接口扩展ServletRequest接口,为HTTP Servlet提供HTTP请求信息      
  • HttpServlet是GenericServlet的子类。

    GenericServlet是个抽象类,必须给出子类才能实例化。它给 出了设计servlet的一些骨架,定义了servlet生命周期,还有一些得到名字、配置、初始化参数的方法,其设计的是和应用层协议无关的,也就是说 你有可能用非http协议实现它。

    HttpServlet是子类,当然就具有GenericServlet的一切特性,还添加了doGet, doPost, doDelete, doPut, doTrace等方法对应处理http协议里的命令的请求响应过程。

    一般没有特殊需要,自己写的Servlet都扩展HttpServlet 。

🐱‍🚀选择题5

下列哪些方法是针对循环优化进行的

正确答案: A B D 你的答案: B C (错误)

强度削弱
删除归纳变量
删除多余运算
代码外提      

代码优化也可分为局部优化、 循环优化和全局优化:

局部优化指的是在只有一个入口、 一个出口的基本程序块上进行的优化。

循环优化是对循环中的代码进行的优化,在一个程序运行时,相当多的一部分时间会花在循环上,因此,基于循环的优化非常重要。

全局优化是在整个程序范围内进行的优化。**

删除多余运算**

使生成的目标代码减少而执行速度较快

也叫删除公共子表达式

循环优化:对循环中的代码段,可以进行代码外提、强度削弱和删除归纳变量等优化。

删除多余运算应该不是专门针对循环优化的。

🐱‍🚀选择题6

在使用super和this关键字时,以下描述错误的是()

正确答案: B C D 你的答案: B D (错误)

在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
super()和this()不一定要放在构造方法内第一行
this()和super()可以同时出现在一个构造函数中
this()和super()可以在static环境中使用,包括static方法和static语句块      

A选项正确,B选项,super()必须在第一行的原因是: 子类是有可能访问父类对象的, 比如在构造函数中使用父类对象的成员函数和变量, 在成员初始化使用了父类, 在代码块中使用了父类等等, 所以为保证在子类可以访问父类对象之前,一定要完成对父类对象的初始化。   关于this()必须在第一行的原因,我们假设这样一种情况,,类B是类A的子类, 如果this()可以在构造函数的任意行使用, 那么当程序运行到构造函数B()的第一行,发现没有调用this()和super(),那么就会自动在第一行补齐super() 来完成对父类对象的初始化, 然后返回子类的构造函数继续执行, 当运行到构造函数B()的"this() ;"时, 调用B类对象的构造函数, 还会对父类对象再次初始化!,这就造成了资源的浪费,以及某些意想不到的错误。也正因如此C选项错误。

D选项,无论是this()还是super()指的都是对象,而static环境中是无法使用非静态变量的。因此D选项错误。

🐱‍🚀选择题7

正确答案: A C 你的答案: C D (错误)

LinkedBlockingQueue是一个可选有界队列,不允许null值
PriorityQueue,LinkedBlockingQueue都是线程不安全的
PriorityQueue是一个无界队列,不允许null值,入队和出队的时间复杂度是O(log(n))
PriorityQueue,ConcurrentLinkedQueue都遵循FIFO原则      
  • A、LinkedBlockingQueue是一个基于节点链接的可选是否有界的阻塞队列,不允许null值。

    B、LinkedBlockingQueue是一个线程安全的阻塞队列,实现了先进先出等特性。

    C、PriorityQueue是一个***队列,不允许null值,入队和出队的时间复杂度是O(log(n))。

    循FIFO原则

    ``