【Java笔试题面试题】
Java 是一种广泛使用的面向对象的编程语言,对于程序员来说,掌握Java的核心概念和技术是至关重要的。下面将详细讲解Java语言及其他相关的知识点。
1. Java 数据类型的取值范围:
- `short` 型的取值范围是 `-2^15`(即-32768)到 `2^15 - 1`(即32767)。在给定的选项中,正确答案是C. `-2^15--- 2^15-1`。
2. Java 标识符的规则:
- 合法的标识符不能以数字开头,也不能包含空格或特殊字符,如星号(*)。所以,选项C. `*point` 是非法的标识符。
3. Java 表达式求值:
- 表达式 `y+=z--/++x` 的计算涉及到操作符的优先级和结合性。先执行前缀`++x`,然后是后缀`z--`,最后进行除法和加法。因此,值是 `3.5`,选项A是正确答案。
4. Java 关键字的使用:
- `transient` 关键字用于修饰字段,表示该字段不应序列化。它既可用于局部变量,也可用于类变量,选项B正确。
5. Java 对象的创建:
- 当创建字符串`String S = new String("aaa")`时,会创建两个对象:一个是常量池中的"aaa",另一个是堆内存中的新String对象。所以,总共创建了2个对象,选项B正确。
6. Java 对象比较:
- `equals()`方法用于比较对象的内容,而`==`操作符比较的是对象的引用。选项A和B描述错误,选项C描述正确,但类File通常会重写`equals()`方法,而不是`equal()`。
7. Java 克隆:
- 如果一个对象实现了`Cloneable`接口,但没有声明`clone()`方法,外部仍然可以调用`clone()`,因为Java提供了一个默认的`clone()`实现。答案是A. 能。
8. 服务器处理请求模式:
- A选项描述了单线程模式的缺点,B选项描述了多线程模式的一个优点,C选项描述了线程池模式下的情况,这些都是正确的。D选项描述的线程池模式下服务器可能阻塞或拒绝请求处理也是正确的。
9. Swing 布局管理器:
- 若要让JButton的高度随JFrame改变,宽度不变,应使用`East and West of BorderLayout`布局管理器,选项D正确。
10. EJB (Enterprise JavaBeans) 状态:
- 钝化态(Passivated State)是SessionBean特有的状态,表示对象从内存移到持久存储,StatelessBean不涉及钝化状态,选项D正确。
11. 数据库范式:
- A选项是正确的,不满足第一范式意味着存在非原子性字段。B选项错误,满足范式不一定提高效率,但能减少数据冗余和异常。C和D选项描述正确。
12. 数据库设计:
- 要达到第二范式,至少需要设计3张表:学生表、课程表和选课表,选项A。
13. 数据库索引:
- A、B和C选项描述都是正确的。D选项错误,复合索引(age, address)不会改善`SELECT`语句的效率,因为查询条件仅涉及到address字段。
【软件工程】
1. 软件能力成熟度模型 (CMM):
- CMM分为5个成熟度等级,选项C正确。
2. 测试方法:
- 白盒测试关注代码结构,完全路径覆盖要求覆盖所有可能的执行路径。对于给定的PDL语句,至少需要两条路径来覆盖所有条件,选项A正确。
以上是Java笔试题和软件工程面试题的重点知识,涵盖数据类型、运算符优先级、对象创建、字符串操作、布局管理、数据库设计和软件工程实践等多个方面。掌握这些知识对于通过Java面试和笔试至关重要。