Java编程基础与面试题解析

需积分: 9 1 下载量 129 浏览量 更新于2024-09-16 收藏 18KB DOC 举报
"这些题目涵盖了Java编程语言的基础知识,包括面向对象特性、字符串操作、数据类型转换、JavaScript与Java的关系、JSP内置对象、HTTP请求方法、Servlet生命周期、设计模式应用、SQL查询以及Web开发中的编码处理。此外,还涉及到了排序算法(冒泡排序)和Java类继承的概念及其实现。" 以下是各知识点的详细说明: 1. 面向对象的特征:封装、继承、多态。 2. Strings = new String(xyz):创建了两个String对象,一个是在常量池中的xyz,另一个是新创建的对象引用Strings。 3. short s1 = 1; s1 = s1 + 1; 错误在于整型提升,s1+1的结果是int类型,不能直接赋值给short。而s1 += 1会自动处理类型转换。 4. javascript和java的关系:JavaScript是一种客户端脚本语言,通常用于网页交互,而Java是一种通用的服务器端编程语言,两者语法有相似之处,但作用和环境不同。 5. JSP内置对象:page、request、response、session、application、out、config、pageContext、exception。常用方法如response.sendRedirect()、request.getParameter()等。 6. GET和POST的区别:GET提交数据在URL中可见,数据有限制,适用于获取数据;POST可提交大量数据,数据在请求体中,对数据安全性要求较高的场景。 7. 何时调用doGet()和doPost():HTTP请求为GET时调用doGet(),POST请求时调用doPost()。 8. Servlet主要方法:init()初始化,service()处理请求,destroy()销毁。init()用于初始化Servlet,service()根据请求类型调用doGet()或doPost(),destroy()在Servlet生命周期结束时调用。 9. 设计模式:工厂模式、单例模式、建造者模式、适配器模式等。例如,工厂模式用于创建对象,单例模式保证类只有一个实例,建造者模式用于复杂对象构建,适配器模式让不兼容的接口协同工作。 10. SQL查询问题:使用CASE WHEN语句实现,如`SELECT CASE WHEN A > B THEN A ELSE B END AS C FROM table WHERE ...`。 11. 日期判断SQL语句:`SELECT * FROM tb_send WHERE DATE(SendTime) = CURDATE()`。 12. SQL常用函数:COUNT、SUM、AVG、MAX、MIN、CONCAT、UPPER、LOWER、SUBSTRING等。 13. 三张表相关查询: - 建表语句:根据S(学生)、C(课程)、SC(学生课程表)的字段定义创建。 - 查询选修了所有选修课程的学生:需要具体表结构,通常涉及全连接。 - 查询选修了至少5门以上课程的学生:`SELECT s.* FROM S s JOIN SC sc ON s.id = sc.student_id GROUP BY s.id HAVING COUNT(sc.course_id) >= 5`。 14. 输出特定编码字符串:使用OutputStreamWriter或PrintWriter指定编码,如`new PrintWriter(response.getWriter(), true, "ISO-8859-1")`。 15. 冒泡排序法:遍历数组,相邻元素比较并交换位置,多次循环直到没有交换发生。 16. 类A和类B的继承问题: - (1) 输出结果为:`ClassA:a=1 d=2.0` - (2) 输出结果为:`ClassA:a=1 d=2.0` 和 `ClassB:a=3.0 d=Javaprogram.`。调用`super.show()`会先执行父类的show方法。 这些知识点覆盖了Java编程、Web开发和数据库操作的基础,对于理解Java技术栈至关重要。