Java面试必知:面向对象与接口试题解析

版权申诉
0 下载量 122 浏览量 更新于2024-07-08 收藏 59KB DOC 举报
"这份文档是关于Java编程的笔试题目,涵盖了面向对象特性、集合框架、访问修饰符、SQL操作、页面间数据传递、以及类与方法的使用等多个知识点。" 1. 面向对象的语言如Java具有封装性、继承性和多态性。封装性使得数据和方法可以被保护,防止外部随意访问;继承性允许子类继承父类的属性和方法,实现代码重用;多态性则允许不同对象对同一消息作出不同的响应,增强了程序的灵活性。 2. Java中的foreach循环(增强for循环)适用于实现了Iterable接口的对象,或者声明了`iterator()`方法的类型,例如List、Set、Map等集合。 3. Java集合框架中的五大主要对象包括ArrayList、LinkedList、HashMap、HashSet和TreeSet,它们分别代表了动态数组、链表、哈希映射、无序集合和有序集合。 4. 接口在Java中是完全抽象的,不能包含虚方法(即非抽象方法),选项A错误;一个类可以实现多个接口,选项B正确;接口不能被实例化,只能被类实现,选项C正确;接口中可以包含默认方法,但不能包含已实现的非默认方法,选项D错误。因此,正确的叙述是B和C。 5. 从数据库读取记录,通常会用到的方法有ExecuteReader(用于获取数据集)、ExecuteScalar(用于获取单个值)和Fill(用于填充DataTable)等。ExecuteNonQuery通常用于执行不返回结果集的SQL命令,如INSERT、UPDATE、DELETE等。 6. Java访问修饰符private、protected、public和internal(在C#中,Java中对应的是包访问权限)的访问权限分别是:private限制在同一类内访问,protected允许同一包内及子类访问,public可在任何地方访问,internal(在Java中是包访问权限)允许同一包内的类访问。 7. SQL语句取出表A中第31到第40记录(假设ID为主键且自动增长)可以写为:`SELECT * FROM A WHERE ID BETWEEN 31 AND 40`。 8. 页面间传递值的方式有URL参数传递、Session存储、Cookie存储、ViewState、QueryStrings、HiddenField以及服务器控件的ViewState等。 9. 下面的Java程序输出结果分析: - Add方法是静态的,不会影响类的实例变量,所以i1和i2的值不变,输出依然是10和20。 - StringConvert方法改变了str引用的对象,而非str变量本身,所以输出的str仍为空。 - 类的构造函数不直接影响静态成员,因此'A'只打印一次。 - 类A的`public virtual void SayHello()`方法因为是抽象的,没有具体实现,所以无法直接调用。 由于题目中未提供完整代码,程序的最后部分(第7题)的输出结果无法确定。如果`SayHello`是抽象方法,那么在`Main`方法中调用它会导致编译错误。如果提供了具体实现,那么输出将取决于`SayHello`方法的实现。