> 文档中心 > 牛客java选择题每日打卡Day7

牛客java选择题每日打卡Day7


牛客java选择题每日打卡Day7

在这里插入图片描述

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

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

🔮本文由京与旧铺原创,csdn首发!

😘系列专栏:java学习

👕参考网站:牛客网

💻首发时间:🎞2022年5月23日🎠

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

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

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


牛客java选择题每日打卡Day7


🛒导航小助手🎪

文章目录

  • 牛客java选择题每日打卡Day7
  • 🛒导航小助手🎪
    • @[toc]
  • 🥫选择题1
  • 🥠选择题2
  • 🥩选择题3
  • 🥼选择题4
  • 🥙选择题5
  • 🍚选择题6
  • 🥡选择题7

🥫选择题1

下列说法正确的有( )

  • 构造方法的方法名必须与类名相同
  • 构造方法也没有返回值,但可以定义为void
  • 在子类构造方法中调用父类的构造方法,super() 必须写在子类构造方法的第一行,否则编译不通过
  • 一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个默认的构造方法,这个构造方法不执行任何代码

关于B选项:Java:语法要求的构造函数只能那么写。如果写成public void 类名(){} 这种格式的话。此时就相当与你重新定义了一个函数,不能起到构造函数的作用,调用这个类的时候不能自动执行构造函数里的代码。

构造函数是无类型的,不能定义void、int等类型。

🥠选择题2

在Java中,关于HashMap类的描述,以下正确的是 ()

  • HashMap使用键/值得形式保存数据
  • HashMap 能够保证其中元素的顺序
  • HashMap允许将null用作键
  • HashMap允许将null用作值
Map集合类 key value
HashMap 允许为null 允许为null
TreeMap 不允许为null 允许为null
ConcurrentMap 不允许为null 不允许为null
HashTable 不允许为null 不允许为null

HashMap 不按插入顺序排序,按照哈希值排序。所以无序。

但是不增删改键的情况下,输出是按照一定顺序不变的

🥩选择题3

下面代码输出是?

enum AccountType{    SAVING, FIXED, CURRENT;    private AccountType()    { System.out.println("It is a account type");    }}class EnumOne{    public static void main(String[]args)    { System.out.println(AccountType.FIXED);    }}
  • 编译正确,输出”It is a account type”once followed by”FIXED”
  • 编译正确,输出”It is a account type”twice followed by”FIXED”
  • 编译正确,输出”It is a account type”thrice followed by”FIXED”
  • 编译正确,输出”It is a account type”four times followed by”FIXED”
  • 编译错误

创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式Class Enum,而E表示枚举类型的名称。 枚举类型的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中
简单来说就是枚举类型中的枚举值都会对应调用一次构造函数
本题中三个枚举值,
这里还要特别强调一下,枚举中的构造函数是私有类,也就是无法再外面创建enum
枚举值默认static ,AccountType.FIXED使用的是枚举值,没有创建。所以一共就3次。

🥼选择题4

关于异常的编程,以下描述错误的是:( )

  • 在有除法存在的代码处,为了防止分母为零,必须抛出并捕获异常
  • int i=Integer.parseInt(”123a”);将产生NumberFormatException
  • int a[]=null; a[0]=1; 将产生NullPointerException
  • 输入输出流编程中,读和写时都要抛出IOException

正确答案:A

异常分为运行时异常,非运行时异常和error,其中error是系统异常,只能重启系统解决。非运行时异常需要我们自己补获,而运行异常是程序运行时由虚拟机帮助我们补获,运行时异常包括数组的溢出,内存的溢出空指针,分母为0等!

🥙选择题5

关于java编译和运行命令叙述不正确的是? ( )

  • 运行“java Scut.class”
  • 运行“java Scut”
  • 编译 Scut.java文件,使用“javac Scut.java”命令的输出文件是Scut.class
  • java这个命令的运行对象是Scut.class

A 错误 运行命令是 ***j*ava + 你的 Java 程序的名字但是不加后缀 所以这道题错在多了 .class这个后缀

B 正确

C javac 是编译命令,后跟 你的 Java 程序名字加后缀,也就是 YourClassName.java 所以答案正确

D JVM (Java 虚拟机)运行的是编译后的字节码文件(以.class为后缀的文件),也就是 YourClassName.class 所以答案正确

🍚选择题6

下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的( )

  • public
  • private
  • static
  • final

static修饰某个字段时,肯定会改变字段创建的方式(每个被static修饰的字段对于每一个类来说只有一份存储空间,而非static修饰的字段对于每一个对象来说都有一个存储空间)

static属性是属于类的,所以对象共同拥有,所以既可以通过类名.变量名进行操作,又可以通过对象名.变量名进行操作

🥡选择题7

 class A {     public int func1(int a, int b) {  return a - b;     } } class B extends A {     public int func1(int a, int b) {  return a + b;     } } public class ChildClass {     public static void main(String[] args) {     A a = new B();     B b = new B();     System.out.println("Result=" + a.func1(100, 50));     System.out.println("Result=" + b.func1(100, 50));     } }
  • Result=150Result=150
  • Result=100Result=100
  • Result=100Result=150
  • Result=150Result=100

其实很简单,涉及转型的题目,分为向上或者向下转型。

关键的来了,不论向上或者向下转型,都是一句话,“编译看左边,运行看右边”。也就是编译时候,会看左边引用类型是否能正确编译通过,运行的时候是调用右边的对象的方法。

就本题来说,编译时候会发现左边满足条件所以编译通过,运行时候又会调用右边也就是 class B 的方法,所以答案都是150。
在这里插入图片描述