java web数据库 面试题

第二阶段面试题

一、Web前端阶段

1. HTML是什么意思?

答案:

  1. 超文本标记语言

2. 什么是HTML5?

答案:

  1. HTML5是最新的HTML标准。
  2. HTML5 文档定义为: <!DOCTYPE html>
  3. 新增多媒体标签: video audio
  4. 新标签 canvas header nav footer 等

3. 前端页面有哪三层构成,分别是什么?作用是什么?

答案:

  1. 结构层 Html 用于定义网页布局和显示内容
  2. 表示层 CSS 对html进行美化和修饰
  3. 行为层 js 对html和css动态交互和控制

4. CSS引入的方式有哪些?

答案:

  1. 内联 内部 外链

5. $(this)this 关键字在 jQuery 中有何不同?

答案:

  1. $(this) 返回值为当前 jQuery 对象,可以利用这个特点,实现连续的调用方法。
  2. this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的执行方法的当前对象,this不能调用 jQuery 方法

6. jQuery中 append() 和 appendTo() 方法的区别是什么?

答案:

  1. 都被用来向元素内部追加内容。
  2. append():向每个匹配的元素内部追加内容。
  3. appendTo():把所有匹配的元素追加到另一个指定的元素元素集合中。

7. 请描述$("#p"),$(".p"),("p")分别选择到什么对象集合?

答案:

  1. $("#p")————#id id选择器, 选择idp唯一的元素
  2. $(".p")————.class 类选择器, 选择class包含 p 的一组元素
  3. $("p")————elelment 元素选择器, 选择全部的 <p> 元素, 是一组元素

8. JavaScript window.onload 事件和 jQuery ready 函数有何不同?

答案:

  1. window.onload要等待 DOM 被创建,还要等到包括大型图片、音频、视频在内的所有外部资源都完全加载。
  2. jQuery $(document).ready() 函数只需对 DOM 树的等待,而无需对图像或外部资源加载的等待,从而执行起来更快。
  3. 使用 jQuery $(document).ready() 的另一个优势是你可以在网页里多次使用它,浏览器会按它们在 HTML 页面里出现的顺序执行它们

9. jQuery 里的 each() 是什么函数?你是如何使用它的?

答案:

  1. each() 函数就像是 Java 里的一个 Iterator,它允许你遍历一个元素集合。
  2. 可以遍历数组或者一组jquery选择的 dom 对象。

二、数据库阶段

1. 怎么优化数据库的查询?

答案:

  1. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
  2. 应尽量避免在 where 子句中使用!=或<>操作符。
  3. 应尽量避免在 where 子句中对字段进行 null 值判断。
  4. 应尽量避免在 where 子句中使用 or 来连接条件。
  5. 下面的查询也将导致全表扫描:“select id from t where name like '%abc%'” 若要提高效率,可以考虑全文检索。
  6. in 和 not in 也要慎用,否则会导致全表扫描,很多时候用 exists 代替 in 是一个好的选择。
  7. 应尽量避免在 where 子句中对字段进行表达式操作。
  8. 应尽量避免在where子句中对字段进行函数操作。

2. 在数据库中条件查询速度很慢的时候,如何优化?

答案:

  1. 建索引
  2. 减少表之间的关联
  3. 优化sql,尽量让sql利用索引定位数据,不要让sql做全表查询
  4. 简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
  5. 利用分页查询减少返回的数据量

3. 数据库中事务是什么,有哪些特性?

答案:

  1. 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序单元(unit)。
  2. 事务通常由SQL语言或编程语言发起并控制
  3. 特性:
    1. 事务是恢复和并发控制的基本单位。
    2. 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

4. sql语句关键词的执行顺序。

答案:

  1. FROM 子句, 组装来自不同数据源的数据
  2. WHERE 子句, 基于指定的条件对记录进行筛选
  3. GROUP BY 子句, 将数据划分为多个分组
  4. 使用聚合函数进行计算
  5. 使用 HAVING 子句筛选分组
  6. 计算所有的表达式
  7. 使用 ORDER BY 对结果集进行排序

5. 数据库有哪几种约束类型?

答案:

  1. 五种
  2. 主键约束 PRIMARY KEY
  3. 外键约束 FOREIGN KEY
  4. 唯一约束 UNIQUE
  5. 检查约束 CHECK
  6. 非空约束 NOT NULL

6. 简述数据库执行计划?

答案:

  1. SQL语句发送到数据库后需要翻译为执行计划,SQL语句到功能是利用执行计划执行实现的。
  2. 数据库在执行完全一样的SQL语句时候会重用相同的执行计划。
  3. 有 ?参数的SQL语言会重用相同的执行计划。

7.数据库建立索引常用的原则是什么?什么情况下不适合建立索引?

答案:

  1. 在大数据量的表上建立索引才有意义
  2. 在where子句或是连接条件上经常引用的列上建立索引
  3. 很少或从不引用的字段和逻辑型的字段,如男或女(是或否)等不要建立索引

三、JDBC阶段

1. 数据连接池的工作机制是什么? 有什么优点?

答案:

  1.  J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。
  2.  客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。
  3.  如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。
  4.  当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
  5. 当链接数量达到连接池最大值时候,池驱动程序将不再创建新连接,只能等等连接空闲以后重用已有的连接。

优点:连接少的时候可以服用

2. 写出JDBC连接数据库的6个步骤?

答案:

  1. 注册驱动
  2. 获取连接
  3. 创建一个Statement语句对象
  4. 执行SQL语句
  5. 处理结果集
  6. 关闭资源

3. JDBC中的Statement 和PreparedStatement的区别?

答案:

  1. PreparedStatement 继承于 Statement
  2. Statement 一般用于执行固定的没有参数的SQL
  3. PreparedStatement 一般用于执行有?参数预编译的SQL语句。
  4. PreparedStatement支持?操作参数,相对于Statement更加灵活。
  5. PreparedStatement可以防止SQL注入,安全性高于Statement。

4. 表与表之间有哪些关联关系?

答案:

  1. 一对一(实际上是特殊的一对多)
  2. 一对多
  3. 多对多,需要中间关系表

5. JDBC中大数据量的分页解决方法?

答案:

  1. 利用sql语句进行分页,这样每次查询出的结果集中就只包含某页的数据内容。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值