DAY01
选择题
- HashMap的数据结构是怎样的?
A:数组 B:链表 C:数组+链表 D:二叉树 答:C,数组+链表 解析: 在Java中,数组和引用是最基本的两种结构,它们可以构造所有的数据结构,HashMap实际上是一个链表的数组,是数组和链表的结合体。HashMap底层就是一个数组结构,数组中的每一项又是一个链表。 - 以下关于构造方法的描述错误的是?
A:构造方法的返回类型只能是void型 B: 构造方法是类的一种特殊方法,它的方法名必须与类名相同。 C:构造方法的主要作用是完成对类的对象的初始化工作。 D:一个类可以定义多个构造方法 答:A 解析: ·Java中构造方法的特点有:构造方法名与类名相同;构造方法没有返回值类型,不写void;构造方法可以重载。 ·Java中构造方法的作用:在创建对象时,给属性赋初值,构造方法在创建对象时被调用。 ·Java中构造方法的分类:分为显示构造方法和隐式构造方法;当声明了构造方法时,系统不会提供隐式的默认的无参构造方法。 - 下列叙述错误的是?
A:在接口中定义的方法除了 default 和 static 关键字修饰的方法拥有方法体,其他方法都应是没有方法体的抽象方法(JDK1.8以后) B:一个Java类只能有一个父类,但可以实现多个接口 C:在类声明中,用 implements 关键字声明该类实现的接口 D:定义接口时使用 implements 关键字 答:D 解析: JDK8开始,接口中可以定义有方法体的方法,方法必须被 default 和 static 修饰;Java是单继承,继承可以传递;在类的生命中用 implements 关键字实现接口,用 extends 关键字继承父类,先继承后实现;定义类时使用 class 关键字,定义接口时使用 interface 关键字。 - 下列哪种异常是检查型异常,需要在编写程序时声明?
A:NullPointerException B:ClassCastException C:FileNotFoundException D:IndexOutOfBoundsException 答:C 解析: Java中异常通常分为编译时异常和运行时异常。编译时异常需要我们手动进行处理;运行时异常在运行时才会出现。C为检查型异常。 - 非抽象类实现接口后,必须实现接口中的所有抽象方法,除了 abstract 外,方法头必须完全一致。
答案:错误 解析: 两同两小一大原则:方法名、参数类型相同(两同);子类返回类型小于等于父类返回类型、子类抛出异常大小小于等于父类抛出异常(两小);子类访问权限大于等于父类访问权限(一大)。 - 在一个基于分布式的游戏服务器系统中,不同的服务器之间,哪种通信方式是不可行的?
A:管道 B:消息队列 C:高速缓存数据库 D:套接字 答:A 解析: 暂无 - ResultSet 中记录行的第一列索引为?
A:-1 B:0 C:1 D:以上都不是 答:C 解析: ResultSet 不同于普通数组,其索引从1开始而不是0 - 以下代码将打印出
A:com. jd B:com/jd/MyClass.class C:///MyClass.class D:com.jd.MyClass
public static void main (String[] args) {
String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";
System.out.println(classFile);
}
答:C 解析: 这个题目的坑在于 replaceAll 方法的第一个参数是一个正则表达式,"." 在正则表达式中表示任意字符,所以把前面字符串的所有字符全部替换为 “/”,若只想替换 “.”,可将第一个参数写为 “\.”
- Java关于异常处理机制的叙述哪些正确
A:catch部分捕捉到异常情况时,才会执行finally部分 B:当try区段的程序发生异常时,才会执行catch区段的程序 C:在try区段不论程序是否发生异常及捕获到异常,都会执行finally部分 D: 以上都是 答:BC 解析: 将需要处理的代码放在 try 中,创建相应的 catch 块列表(try 后可能存在多个 catch 块,每个处理不同的异常),如果产生的异常与 catch 中的相匹配,那么 catch 中的块语句就会被执行。而 finally 语句是定义一个总是执行的代码,并不考虑异常是否被捕获。 - 已知 boolean result = false 则下面哪个选项是合法的?
A:result=1 B:result=true; C:if(result!=0) {//so something…} D:if(result) {//do something…} 答:BD 解析: boolean类型只有两个直接量值:true 和 false;除了成员变量会有默认初始值之外,其他变量必须在第一次使用之前初始化。注:String 默认初始为 null
数据类型 | 默认初始值 |
---|
byte | (byte) 0 | short | (short) 0 | int | 0 | long | 0L | float | 0.0f | double | 0.0d | char | \u0000 | boolean | false |
编程题
leetcode 1816 句子是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。例如,“Hello World”、“HELLO” 和 “hello world hello world” 都是句子。给你一个句子 s?????? 和一个整数 k?????? ,请你将 s?? 截断 ?,???使截断后的句子仅含前 k?????? 个单词。返回 截断 s?????? 后得到的句子。
示例:
class Solution {
public String truncateSentence(String s, int k) {
int n = s.length();
int count = 0, end = 0;
for (int i = 0; i <= n; i++) {
if (i == n || s.charAt(i) == ' ') {
count++;
if (count == k) {
end = i;
break;
}
}
}
return s.substring(0, end);
}
}
|