2021年10月13日 java1
考点1:变量初始化话
下列程序test 类中的变量c 的最后结果为
1 | public class Test { |
- A 10
- B 0
- C 19
- D 编译出错
显示答案/隐藏答案
正确答案: D方法中定义的变量一定要初始化,类中定义的变量可不用初始化,会有默认值
报错如下:
1 | The local variable b may not have been initialized |
考点2:快速排序
下面程序的输出结果是什么。
1 | public class A2{ |
- A 找到最大值
- B 找到最小值
- C 从大到小的排序
- D 从小到大的排序
显示答案/隐藏答案
正确答案: C考点3:maven和ant
下面有关maven和ant的描述,描述错误的是?
- A Ant 没有正式的约定如一个一般项目的目录结构,你必须明确的告诉 Ant 哪里去找源代码
- B Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里
- C maven和ant都有“生命周期”的概念,当你输入一个命令后,maven或者ant会执行一系列的有序的步骤,直到到达你指定的生命周期
- D Ant构建文件默认命名为build.xml,Maven默认构建文件为pom.xml
显示答案/隐藏答案
正确答案: CAnt的作用:是一种基于Java的build工具
- 能够用ant编译java类。生成class文件
- ant能够自己定义标签、配置文件,用于构建。
- ant能够把相关层构建成jar包 。
- ant把整个项目生成web包。并公布到Tomcat
Ant的长处:
- 跨平台性:Ant是纯Java语言编写的,因此具有非常好的跨平台性。
- 操作简单:Ant是由一个内置任务和可选任务组成的。Ant执行时须要一个XML文件(构建文件)。
- Ant通过调用target树,就能够运行各种task:每一个task实现了特定接口对象。因为Ant构建文件时XML格式的文件。所以非常easy维护和书写,并且结构非常清晰。
- Ant能够集成到开发环境中:因为Ant的跨平台性和操作简单的特点。它非常easy集成到一些开发环境中去。
Maven的作用: 除了以程序构建能力为特色之外,还提供高级项目管理工具。
Maven除了具备Ant的功能外。还添加了下面基本的功能:
- 使用Project Object Model来对软件项目管理。
- 内置了很多其它的隐式规则,使得构建文件更加简单。
- 内置依赖管理和Repository来实现依赖的管理和统一存储;
- 内置了软件构建的生命周期;
Maven的长处:
- 拥有约定,知道你的代码在哪里,放到哪里去
- 拥有一个生命周期,比如运行 mvn install就能够自己主动运行编译,測试。打包等构建过程
- 仅仅须要定义一个pom.xml,然后把源代码放到默认的文件夹,Maven帮你处理其它事情
- 拥有依赖管理。仓库管理
总体的比較:
- Ant将提供了非常多能够重用的task,比如copy, move, delete以及junit单元测试
- Maven则提供了非常多能够重用的过程。
考点4:java8中使用开放地址法的类
java8中,下面哪个类用到了解决哈希冲突的开放定址法
- A LinkedHashSet
- B HashMap
- C ThreadLocal
- D TreeMap
显示答案/隐藏答案
正确答案: CHashMap采用了链地址法,ThreadLocalMap则是开放地址法。
- 开放定址法:当冲突发生时,使用某种探查(亦称探测)技术在散列表中形成一个探查(测)序列。沿此序列逐个单元地查找,直到找到给定
的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开放的地址,则可将待插入的新结点存人该地址单元)。查找时探查到开放的 地址则表明表中无待查的关键字,即查找失败。 - 链地址法:将所有关键字为同义词的结点链接在同一个单链表中。若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数 组T[0..m-1]。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针。
考点5:
下列关于while循环、do-while循环和for循环说法错误的是
- A while循环先执行条件判断,do-while循环执行循环体
- B do-while循环结束的条件是关键字while后的条件表达式成立
- C for循环结构中的3个表达式缺一不可
- D while循环能够实现的操作,for循环也能实现
显示答案/隐藏答案
正确答案: BC考点6:
以下类型为Final类型的为()
- A HashMap
- B StringBuffer
- C String
- D Hashtable
显示答案/隐藏答案
正确答案: BCClass HashMap<K,V>
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html
1
2
3 public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, SerializableDirect Known Subclasses:
LinkedHashMap, PrinterStateReasons
Class Hashtable<K,V>
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Hashtable.html
All Implemented Interfaces:
Serializable, Cloneable, Map<K,V>
Direct Known Subclasses:
Properties, UIDefaults
1
2
3 public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, Serializable
String StringBuffer StringBuilder都是final类
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html
1
2
3 public final class String
extends Object
implements Serializable, Comparable<String>, CharSequencehttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StringBuffer.html
1
2
3 public final class StringBuffer
extends Object
implements Serializable, Comparable<StringBuffer>, CharSequencehttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StringBuilder.html
1
2
3 public final class StringBuilder
extends Object
implements Serializable, Comparable<StringBuilder>, CharSequence
通过阅读源码可以知道,string与stringbuffer都是通过字符数组实现的。
其中string的字符数组是final修饰的,所以字符数组不可以修改。
stringbuffer的字符数组没有final修饰,所以字符数组可以修改。
string与stringbuffer都是final修饰,只是限制他们所存储的引用地址不可修改。
至于地址所指内容能不能修改,则需要看字符数组可不可以修改。
1 | public final class String |
1 | public final class StringBuilder |
1 | public final class StringBuffer |
1 | abstract class AbstractStringBuilder implements Appendable, CharSequence { |
考点7:
在使用super和this关键字时,以下描述错误的是()
- A 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
- B super()和this()不一定要放在构造方法内第一行
- C this()和super()可以同时出现在一个构造函数中
- D this()和super()可以在static环境中使用,包括static方法和static语句块