第二阶段面试题
一、Web前端阶段
- HTML是什么意思?
- 超文本标记语言
- 什么是HTML5?
- HTML5是最新的HTML标准。
- HTML5 文档定义为:
- 新增多媒体标签: video audio
- 新标签 canvas header nav footer 等
- 前端页面有哪三层构成,分别是什么?作用是什么?
- 结构层 Html 用于定义网页布局和显示内容
- 表示层 CSS 对html进行美化和修饰
- 行为层 js 对html和css动态交互和控制
- CSS引入的方式有哪些?
- 内联 内部 外链
- $(this) 和 this 关键字在 jQuery 中有何不同?
- $(this) 返回值为当前 jQuery 对象,可以利用这个特点,实现连续的调用方法。
- this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的执行方法的当前对象,this不能调用 jQuery 方法
- jQuery中 append() 和 appendTo() 方法的区别是什么?
- 都被用来向元素内部追加内容。
- append():向每个匹配的元素内部追加内容。
- appendTo():把所有匹配的元素追加到另一个指定的元素元素集合中。
- 请描述KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲p"),(".p"),(“p”)分别选择到什么对象集合?
- $("#p")————#id id选择器, 选择id为p唯一的元素
- $(".p")————.class 类选择器, 选择class包含 p 的一组元素
- $(“p”)————elelment 元素选择器, 选择全部的
元素, 是一组元素
- JavaScript window.onload 事件和 jQuery ready 函数有何不同?
- window.onload要等待 DOM 被创建,还要等到包括大型图片、音频、视频在内的所有外部资源都完全加载。
- jQuery $(document).ready() 函数只需对 DOM 树的等待,而无需对图像或外部资源加载的等待,从而执行起来更快。
- 使用 jQuery $(document).ready() 的另一个优势是你可以在网页里多次使用它,浏览器会按它们在 HTML 页面里出现的顺序执行它们
- jQuery 里的 each() 是什么函数?你是如何使用它的?
- each() 函数就像是 Java 里的一个 Iterator,它允许你遍历一个元素集合。
- 可以遍历数组或者一组jquery选择的 dom 对象。
二、数据库阶段 - 怎么优化数据库的查询?
- 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
- 应尽量避免在 where 子句中使用!=或<>操作符。
- 应尽量避免在 where 子句中对字段进行 null 值判断。
- 应尽量避免在 where 子句中使用 or 来连接条件。
- 下面的查询也将导致全表扫描:“select id from t where name like ‘%abc%’” 若要提高效率,可以考虑全文检索。
- in 和 not in 也要慎用,否则会导致全表扫描,很多时候用 exists 代替 in 是一个好的选择。
- 应尽量避免在 where 子句中对字段进行表达式操作。
- 应尽量避免在where子句中对字段进行函数操作。
- 在数据库中条件查询速度很慢的时候,如何优化?
- 建索引
- 减少表之间的关联
- 优化sql,尽量让sql利用索引定位数据,不要让sql做全表查询
- 简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
- 利用分页查询减少返回的数据量
- 数据库中事务是什么,有哪些特性?
- 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序单元(unit)。
- 事务通常由SQL语言或编程语言发起并控制
- 特性:
- 事务是恢复和并发控制的基本单位。
- 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
- sql语句关键词的执行顺序。
- FROM 子句, 组装来自不同数据源的数据
- WHERE 子句, 基于指定的条件对记录进行筛选
- GROUP BY 子句, 将数据划分为多个分组
- 使用聚合函数进行计算
- 使用 HAVING 子句筛选分组
- 计算所有的表达式
- 使用 ORDER BY 对结果集进行排序
- 数据库有哪几种约束类型?
- 五种
- 主键约束 PRIMARY KEY
- 外键约束 FOREIGN KEY
- 唯一约束 UNIQUE
- 检查约束 CHECK]m
- 非空约束 NOT NULL
- 简述数据库执行计划?
- SQL语句发送到数据库后需要翻译为执行计划,SQL语句到功能是利用执行计划执行实现的。
- 数据库在执行完全一样的SQL语句时候会重用相同的执行计划。
- 有 ?参数的SQL语言会重用相同的执行计划。
7.数据库建立索引常用的原则是什么?什么情况下不适合建立索引? - 在大数据量的表上建立索引才有意义
- 在where子句或是连接条件上经常引用的列上建立索引
- 很少或从不引用的字段和逻辑型的字段,如男或女(是或否)等不要建立索引
三、JDBC阶段 - 数据连接池的工作机制是什么? 有什么优点?
- J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。
- 客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。
- 如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。
- 当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
- 当链接数量达到连接池最大值时候,池驱动程序将不再创建新连接,只能等等连接空闲以后重用已有的连接。
优点:连接少的时候可以服用 - 写出JDBC连接数据库的6个步骤?
- 注册驱动
- 获取连接
- 创建一个Statement语句对象
- 执行SQL语句
- 处理结果集
- 关闭资源
- JDBC中的Statement 和PreparedStatement的区别?
- PreparedStatement 继承于 Statement
- Statement 一般用于执行固定的没有参数的SQL
- PreparedStatement 一般用于执行有?参数预编译的SQL语句。
- PreparedStatement支持?操作参数,相对于Statement更加灵活。
- PreparedStatement可以防止SQL注入,安全性高于Statement。
- 表与表之间有哪些关联关系?
- 一对一(实际上是特殊的一对多)
- 一对多
- 多对多,需要中间关系表
- JDBC中大数据量的分页解决方法?
- 利用sql语句进行分页,这样每次查询出的结果集中就只包含某页的数据内容。