亿迅笔试题解析:Java基础与OO设计原则

4星 · 超过85%的资源 需积分: 30 24 下载量 124 浏览量 更新于2024-09-11 2 收藏 163KB DOC 举报
"亿迅公司的笔试题目涉及到Java编程基础、面向对象设计原则、集合框架以及接口继承等多个知识点。" 在亿迅公司的笔试题中,我们可以看到一些关键的IT知识点: 1. **字符类型(char)**: 在Java中,`char`变量占用一个字节,通常用来存储单个Unicode字符,如英文字母或数字。由于一个汉字通常由两个字节表示,`char`变量无法直接存储中文字符。如果要存储中文字符,可以使用`String`类型或者`char`数组。 2. **集合框架(List, Set, Map)**: - **List**: 是有序的集合,允许有重复元素,可以通过索引访问。例如:ArrayList和LinkedList。 - **Set**: 是无序且不允许重复元素的集合,如HashSet和TreeSet。 - **Map**: 存储键值对,键是唯一的,如HashMap和TreeMap。List与Set的主要区别在于Set不允许有重复元素,且不保证元素顺序。 3. **面向对象设计原则**: - **单一职责原则(SRP)**: 一个类应该只有一个引起它变化的原因。 - **开放封闭原则(OCP)**: 类应该对扩展开放,对修改关闭。 - **里氏替换原则(LSP)**: 子类必须能够替换掉它们的基类。 - **依赖倒置原则(DIP)**: 应该依赖于抽象而不是具体实现。 - **接口隔离原则(ISP)**: 不应强迫客户端依赖于它们不用的方法。 - **迪米特法则(LSP)**: 降低类之间的耦合度,一个对象应当对其他对象有最少的了解。 4. **字符串对象创建**: `String x = new String("a") + new String("b");` 这行代码会创建至少3个对象:两个临时的`String`对象("a"和"b"),以及一个新的`String`对象,它包含连接后的结果"ab"。这是因为`+`操作符在字符串上会创建新的`String`对象。 5. **接口与继承**: - 接口(如`Playable`, `Bounceable`)可以被一个类实现,也可以被其他接口继承。在Java中,一个类可以实现多个接口,但只能继承一个父类。 - 接口中的变量默认是`public static final`的,这意味着它们是静态常量,可以直接通过接口名访问,如`A.x`。 在给定的错误示例中,展示了接口属性和类成员冲突的问题,以及接口继承和多态的运用。在类`C`中,`pX()`方法试图访问`x`,但由于`B`类和接口`A`都有`x`成员,导致编译错误。解决方法是使用`super.x`或`A.x`来明确指定访问哪一个`x`。在另一个例子中,接口`Rollable`错误地创建了`Ball`实例,这违反了接口不应该包含实例化代码的原则。正确的做法是将实例化移至实现接口的类中。