牛客java选择题每日打卡Day7
牛客java选择题每日打卡Day7
👩💻博客主页:京与旧铺的博客主页
✨欢迎关注🖱点赞🎀收藏⭐留言✒
🔮本文由京与旧铺原创,csdn首发!
😘系列专栏:java学习
👕参考网站:牛客网
💻首发时间:🎞2022年5月23日🎠
🎨你做三四月的事,八九月就会有答案,一起加油吧
🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦
🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲
图片
🛒导航小助手🎪
🥫选择题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 extends Enum<E>>,而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=150 Result=150
-
Result=100 Result=100
-
Result=100 Result=150
-
Result=150 Result=100
其实很简单,涉及转型的题目,分为向上或者向下转型。
关键的来了,不论向上或者向下转型,都是一句话,“编译看左边,运行看右边”。也就是编译时候,会看左边引用类型是否能正确编译通过,运行的时候是调用右边的对象的方法。
- 点赞
- 收藏
- 关注作者
评论(0)