【面试宝典】软件测试工程师2021烫手精华版(第三章Mysql基础篇)
第三章 Mysql 基础
一、 基础知识
什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
什么是关系型数据库,主键,外键,索引分别是什么?
关系型数据库是由多张能互相联接的二维行列表格组成的数据库
主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录
外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构, 它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单
表的连接查询方式有哪些,有什么区别?
交叉连接即笛卡儿乘积,是指两个关系中所有元组的任意组合
使用内连接时,如果两个表的相关字段满足连接条件,就从这两个表中提取数据并组合成新的记录
自连接是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表
外连接是只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足连接条件的连接方式
SQL 的 select 语句完整的执行顺序?
1、from 子句组装来自不同数据源的数据;
2、where 子句基于指定的条件对记录行进行筛选;
3、group by 子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用 having 子句筛选分组;
6、计算所有的表达式;
7、select 的字段;
8、使用 order by 对结果集进行排序。
说一下 Mysql 数据库存储的原理?
储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有 SQL 语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。存储过程通常有以下优点:
1、存储过程能实现较快的执行速度
2、存储过程允许标准组件是编程。
3、存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
4、存储过程可被作为一种安全机制来充分利用。
5、存储过程能够减少网络流量
事务的特性?
1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。
2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。
3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。
4、持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障
数据库索引?
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用 B_TREE。B_TREE 索引加速了数据访问,因为存储引擎不会再去扫描整张表得到需要的数据;相反,它从根节点开始,根节点保存了子节点的指针,存储引擎会根据指针快速寻找数据。
数据库怎么优化查询效率?
1、储存引擎选择:如果数据表需要事务处理,应该考虑使用 InnoDB,因为它完全符合 ACID 特性。如果不需要事务处理,使用默认存储引擎 MyISAM 是比较明智的
2、分表分库,主从。
3、对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引
4、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫
描
5、应尽量避免在where 子句中使用!= 或<>操作符,否则将引擎放弃使用索引而进行全表扫描
6、应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导
致引擎放弃使用索引而进行全表扫描
7、Update 语句,如果只更改 1、2 个字段,不要Update 全部字段,否则频繁调用会引起明显的性能消耗,同时带来大量日志
8、对于多张大数据量(这里几百条就算大了)的表 JOIN,要先分页再 JOIN,否则逻辑读会很高,性能很差。
你用的 Mysql 是哪个引擎,各引擎之间有什么区别?
主要 MyISAM 与 InnoDB 两个引擎,其主要区别如下:InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM
就不可以了;
MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用; InnoDB 支持外键,MyISAM 不支持;
MyISAM 是默认引擎,InnoDB 需要指定; InnoDB 不支持FULLTEXT 类型的索引;
InnoDB 中不保存表的行数,如 select count() from table 时,InnoDB;需要扫描一遍整个表来计算有多少行,但是 MyISAM 只要简单的读出保存好的行数即可。注意的是,当 count()语句包含 where 条件时 MyISAM 也需要扫描整个表;
对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在MyISAM 表中可以和其他字
段一起建立联合索引;清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表; InnoDB 支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like ‘%lee%’
如何对查询命令进行优化?
- 应尽量避免全表扫描,首先应考虑在where 及 order by 涉及的列上建立索。
- 应尽量避免在where 子句中对字段进行null 值判断,避免使用!=或<>操作符,避免使用 or连接条件,或在where 子句中使用参数、对字段进行表达式或函数操作,否则会导致权标扫描
- 不要在where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
- 使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用。
- 很多时候可考虑用 exists 代替 in。
- 尽量使用数字型字段。
- 尽可能的使用 varchar/nvarchar 代替 char/nchar。
- 任何地方都不要使用 select from t ,用具体的字段列表代替“”,不要返回用不到的任何字段。
- 尽量使用表变量来代替临时表。
- 避免频繁创建和删除临时表,以减少系统表资源的消耗。
- 尽量避免使用游标,因为游标的效率较差。
- 在所有的存储过程和触发器的开始处设置 SET NOCOUNT ON ,在结束时设置 SETNOCOUNT OFF。
- 尽量避免大事务操作,提高系统并发能力。
- 尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。
数据库的优化?
1.优化索引、SQL 语句、分析慢查询;
2.设计表的时候严格根据数据库的设计范式来设计数据库;
3.使用缓存,把经常访问到的数据而且不需要经常变化的数据放在缓存中,能节约磁盘 IO
4.优化硬件;采用 SSD,使用磁盘队列技术(RAID0,RAID1,RDID5)等
5.采用 MySQL 内部自带的表分区技术,把数据分层不同的文件,能够提高磁盘的读取效率;
6.垂直分表;把一些不经常读的数据放在一张表里,节约磁盘 I/O;
7.主从分离读写;采用主从复制把数据库的读操作和写入操作分离开来;
8.分库分表分机器(数据量特别大),主要的原理就是数据路由;
9.选择合适的表引擎,参数上的优化
10.进行架构级别的缓存,静态化和分布式;
11.不采用全文索引;
12.采用更快的存储方式,例如NoSQL 存储经常访问的数据。
Sql 注入是如何产生的,如何防止?
程序开发过程中不注意规范书写 sql 语句和对特殊字符进行过滤,导致客户端可以通过全局变量 POST和 GET 提交一些 sql 语句正常执行。产生Sql 注入。下面是防止办法:
- 过滤掉一些常见的数据库操作关键字,或者通过系统函数来进行过滤。在 PHP 配置文件中将Register_globals=off;设置为关闭状态
- SQL 语句书写的时候尽量不要省略小引号(tab 键上面那个)和单引号
- 提高数据库命名技巧,对于一些重要的字段根据程序的特点命名,取不易被猜到的
- 对于常用的方法加以封装,避免直接暴漏SQL 语句
- 开启 PHP 安全模式:Safe_mode=on;
- 打开 magic_quotes_gpc 来防止SQL 注入
- 控制错误信息:关闭错误提示信息,将错误信息写到系统日志。
- 使用 mysqli 或 pdo 预处理。
NoSQL 和关系数据库的区别?
1.SQL 数据存在特定结构的表中;而 NoSQL 则更加灵活和可扩展,存储方式可以省是 JSON 文档、哈希表或者其他方式。
2.在 SQL 中,必须定义好表和字段结构后才能添加数据,例如定义表的主键(primary key),索引(index),触发器(trigger),存储过程(stored procedure)等。表结构可以在被定义之后更新,但是如果有比较大的结构变更的话就会变得比较复杂。在NoSQL 中,数据可以在任何时候任何地方添加,不需要先定义表。
3.SQL 中如果需要增加外部关联数据的话,规范化做法是在原表中增加一个外键,关联外部数据表。而在NoSQL 中除了这种规范化的外部数据表做法以外,我们还能用如下的非规范化方式把外部数据直接放到原数据集中,以提高查询效率。缺点也比较明显,更新审核人数据的时候将会比较麻烦。
4.SQL 中可以使用 JOIN 表链接方式将多个关系数据表中的数据用一条简单的查询语句查询出来。 NoSQL 暂未提供类似 JOIN 的查询方式对多个数据集中的数据做查询。所以大部分 NoSQL 使用非规范化的数据存储方式存储数据。
5.SQL 中不允许删除已经被使用的外部数据,而NoSQL 中则没有这种强耦合的概念,可以随时删除任何数据。
6.SQL 中如果多张表数据需要同批次被更新,即如果其中一张表更新失败的话其他表也不能更新成功。这种场景可以通过事务来控制,可以在所有命令完成后再统一提交事务。而NoSQL 中没有事务这个概念,每一个数据集的操作都是原子级的。
7.在相同水平的系统设计的前提下,因为 NoSQL 中省略了 JOIN 查询的消耗,故理论上性能上是优于 SQL 的。
MySQL 与 MongoDB 本质之间最基本的差别是什么
差别在多方面,例如:数据的表示、查询、关系、事务、模式的设计和定义、速度和性能。MongoDB 是由 C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点, 可以保证服务器性能。
MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON对象。字段值可以包含其他文档,数组及文档数组。
MongoDB 是一个面向文档的数据库,目前由 10gen 开发并维护,它的功能丰富齐全,所以完全可以替代 MySQL。
与 MySQL 等关系型数据库相比,MongoDB 的优点如下:
①弱一致性,更能保证用户的访问速度。
②文档结构的存储方式,能够更便捷的获取数据。
③内置 GridFS,支持大容量的存储。
④内置 Sharding。
⑤第三方支持丰富。(这是与其他的NoSQL 相比,MongoDB 也具有的优势)
⑥性能优越:
MongoDB 本身它还算比较年轻的一个产品,所以它的问题,就是成熟度肯定没有传统 MySQL 那么成熟稳定。所以在使用的时候:
尽量使用稳定版,不要在线上使用开发版,这是一个大原则;
另外一点,备份很重要,MongoDB 如果出现一些异常情况,备份一定是要能跟上。除了通过传统的复制的方式来做备份,离线备份也还是要有,不管你是用什么方式,都要有一个完整的离线备份。往往最后出现了特殊情况,它能帮助到你;
另外,MongoDB 性能的一个关键点就是索引,索引是不是能有比较好的使用效率,索引是不是能够放在内存中,这样能够提升随机读写的性能。如果你的索引不能完全放在内存中, 一旦出现随机读写比较高的时候,它就会频繁地进行磁盘交换,这个时候,MongoDB 的性能就会急剧下降, 会出现波动。
另外,MongoDB 还有一个最大的缺点,就是它占用的空间很大,因为它属于典型空间换时间原则的类型。那么它的磁盘空间比普通数据库会浪费一些,而且到目前为止它还没有实现在线压缩功能,在 MongoDB 中频繁的进行数据增删改时,如果记录变了,例如数据大小发生了变化,这时候容易产生一些数据碎片,出现碎片引发的结果,一个是索引会出现性能问题。
另外一个就是在一定的时间后,所占空间会莫名其妙地增大,所以要定期把数据库做修复,定期重新做索引,这样会提升MongoDB 的稳定性和效率。在最新的版本里,它已经在实现在线压缩,估计应该在 2.0 版左右,应该能够实现在线压缩,可以在后台执行现在 repair DataBase 的一些操作。
如果那样,就解决了目前困扰我们的大问题。
如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们
,群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!
Mysql 数据库中怎么实现分页?
select * from table limit (start-1)*limit,limit; 其中 start 是页码,limit 是每页显示的条数。
Mysql 数据库的操作?
修改表-修改字段,重命名版:
alter table 表名 change 原名新名类型及约束;
alter table students change birthday birth datetime not null;修改表-修改字段,不重名版本:
alter table 表名 modify 列名类型和约束;
alter table students modify birth date not null全列插入:insert into 表名 values(…)
insert into students values(0,“郭靖”, 1,“内蒙”,“2017-6”);部分插入:值的顺序与给出的列顺序对应:
insert into students(name, birthday) values(“黄蓉”,“2017-8”);修改:update 表名 set 列 1=值 1,列 2=值 2.。。where
update students set gender=0, homwtown=“古墓”, where id = 5;备份:mysqldump -uroot -p 数据库名>python.sql,
恢复:mysql -uroot -p 数据库名< python.sql
优化数据库?提高数据库的性能?
- 对语句的优化
①用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;
②能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用 SQL 时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;
③在查询时,不要过多地使用通配符如 SELECT * FROM T1 语句,要用到几列就选择几列如:SELECT COL1,COL2 FROM T1;
④在可能的情况下尽量限制尽量结果集行数如:SELECT TOP 300 COL1,COL2,COL3 FROMT1,因为某些情况下用户是不需要那么多的数据的。
⑤不要在应用中使用数据库游标,游标是非常有用的工具,但比使用常规的、面向集的 SQL 语句需要更大的开销;按照特定顺序提取数据的查找。
避免使用不兼容的数据类型
例如 float 和 int、char 和 varchar、binary 和 varbinary 是不兼容的。 数据类型的不兼容可能使优化器无法执行一些本来可以进行的优化操作。 例如:
SELECT name FROM employee WHERE salary > 60000
在这条语句中,如 salary 字段是 money 型的,则优化器很难对其进行优化,因为 60000 是个整型数。我们应当在编程时将整型转化成为钱币型,而不要等到运行时转化。若在查询时强制转换,查询速度会明显减慢。
- 避免在 WHERE 子句中对字段进行函数或表达式操作。
若进行函数或表达式操作,将导致引擎放弃使用索引而进行全表扫描。 - 避免使用!=或<>、IS NULL 或 IS NOT NULL、IN ,NOT IN 等这样的操作符
- 尽量使用数字型字段
- 合理使用EXISTS,NOT EXISTS 子句。
- 尽量避免在索引过的字符数据中,使用非打头字母搜索。
- 分利用连接条件
- 消除对大型表行数据的顺序存取
- 避免困难的正规表达式
- 使用视图加速查询
- 能够用BETWEEN 的就不要用 IN
- DISTINCT 的就不用GROUP BY
- 部分利用索引
- 能用UNION ALL 就不要用 UNION
- 不要写一些不做任何事的查询
- 尽量不要用SELECT INTO 语句
- 必要时强制查询优化器使用某个索引
- 虽然UPDATE、DELETE 语句的写法基本固定,但是还是对UPDATE 语句给点建议:
- 尽量不要修改主键字段。
- 当修改VARCHAR 型字段时,尽量使用相同长度内容的值代替。
- 尽量最小化对于含有UPDATE 触发器的表的UPDATE 操作。
- 避免 UPDATE 将要复制到其他数据库的列。
- 避免 UPDATE 建有很多索引的列。
- 避免 UPDATE 在 WHERE 子句条件中的列。
存储过程和函数的区别?
相同点:存储过程和函数都是为了可重复的执行操作数据库的 sql 语句的集合。
1)存储过程和函数都是一次编译,就会被缓存起来,下次使用就直接命中已经编译好的 sql 语句,不需要重复使用。减少网络交互,减少网络访问流量。
不同点:标识符不同,函数的标识符是 function,存储过程是 proceduce。
- 函数中有返回值,且必须有返回值,而过程没有返回值,但是可以通过设置参数类型(in,out)来实现多个参数或者返回值。
- 存储函数使用 select 调用,存储过程需要使用 call 调用。
- select 语句可以在存储过程中调用,但是除了 select…into 之外的 select 语句都不能在函数中使用。
- 通过 in out 参数,过程相关函数更加灵活,可以返回多个结果。
Mysql 开启 General-log 日志?
Show variables like ‘general%’; Set global general_log=1;
Set global general_log=0;
二、 查询练习
Student-Sourse-SC-Teacher 表关系如下:
• Student(sid,Sname,Sage,Ssex)学生表
• Course(cid,Cname,tid)课程表
• SC(sid,cid,score)成绩表
• Teacher(tid,Tname)教师表写出 sql 语句:
• 查询课程“001“课程比”002“课程成绩高的所有学生的学号
• 修改学号为 20131201 的语文成绩为 100‘
• 插入一条名为“李四”的教师记录
• 删除学习“叶平”老师课程的 sc 表记录
员工信息A-员工亲属信息表 B 表关系如下:
• 员工信息表A:员工标号(codecode,PK),员工姓名(codename),员工性别(codesex), 联系电话(codetel),备注(remarks)
• 员工亲属信息表B:员工编码(codecode),亲属编码(recodecode,PK),亲属姓名(recodename),联系电话(recodetel),备注(remarks)
写出 sql 语句:
• 向员工信息表中插入一条数据:(001,张三,男,010-62570007,北京市海淀区)
• 查询出亲属数量大于 1 的员工编码,员工姓名,员工亲属数量有部分员工亲属信息重复录入(亲属编码不同,其他相同),出现这种情况的员工编码,重复的亲属编码,亲属姓名查询出来。
部门表dept-雇员表emp 表关系如下:
• 部门表 dept:部门标号(DEPTNO),部门名称(DNAME),所在位置(LOC)
• 雇员表 emp:员工标号(Empno),员工名称(Emname),员工工位(Job),经理(Mgr), 雇佣日期(Hiredate),薪水(Sal),部门编号(Deptno)
写出 sql 语句:
• 找出部门名称为ACCOUNTING 的部门下的所有员工名称?
• 找出部门名称为SALES 的部门下每月需要发出的薪水总额?
• 找出部门名称为SALES 的部门的部门经理?
• 找出部门名称为RESEARCH 的部门下雇佣日期为 1980-12-17 的员工?
Student-coures-Studentcourse 表关系如下:
• student(sno,sname,age,sdept) 学生表
• course(cno,cname,teacher) 课程表
• Studentcourse(sno,cno,grade)选课表写出 sql 语句:
• 查询所有课程都及格的学生号和姓名
• 查询平均分不及格的课程号和平均成绩
• 找出各门课程的平均成绩,输出课程号和平均成绩
• 找出没有选择 c2 课程的学生信息
看下图回答问题
1〉请用一条SQL 语句查询出发帖数大于 5 点击数由高到低排序?
2〉用一条SQL 语句将“日期”为 21 日的记录帖子数全部设置为 0?
3〉用一条SQL 筛选出 2014 年的记录且post 大约 500 的数据,将其hits 减少 50?
SQL 操作,有两张表,如下图所示
问题 1:用 SQL 查询购买过 goods_id 为 1001 的用户的 user_id
问题 2:用 SQL 查询 2017 年 7 月 1 号后(含 7 月 1 号)购买过 1001 这个商品的 user_id 和 oeder_id, goods_id 和 price
问题 3:用 SQL 查询出订单所含商品明细总金额〉=50 的 order_id 和 user_id
题目
下面是学生成绩表(score)结构说明
下面是课程表(course)说明
a. 请说明主键,外键的作用,以及建立索引的好处及坏处。
b. 请写出课程表中建表SQL 语句。
c. 如果学号的前两位表示年级,要查找 98 级女生的姓名,请写出相应的 SQL 语句。
d. 要查找所需要补考(小于 60 分)的学生姓名和这门课程的名称和成绩,请写出相应的 SQL 语句。
e. 查询每个学生需要补考(小于 60 分)的课程的平均分,并以平均分排序。
6)(非必答题,请量力选做)请分析这两个表的设计,并谈谈这两个表设计中存在的问题,并根据你的理解给出优化的方案。
7)(非必答题,请量力选做)针对学生考试管理系统,如果要实现学生管理,课程管理,考试成绩管理的基本需求,请根据你对需求的理解,使用UML 或者E-R 图的方式给出一个简洁明了的数据库设计方案。
懒投资首页的懒人播报,统计了在懒投资平台的投资富豪榜,对应的库表简化如下:
富豪榜统计需求:
- 请给出,所有投资用户中,投资总额排名前 10 位的用户,按投资总额倒序排列,输出项如下,例如:
用户名,投资总额张 三 ,9000000 李四,8000000
…… - 给出富豪榜第一名的用户的单笔平均投资额
如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们
,群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!
测试新手
如果你立志成为一名测试工程师,但却没有任何的知识储备。这时候,你应该抓紧时间学习计算机基础知识,同时,还需要了解编程体验、产品设计、用户体验和研发流程等知识。
测试工程师
从知识体系上看,你需要有更全面的计算机基础知识,还需要了解互联网的基础架构、安全攻击、软件性能、用户体验和常见缺陷等知识。从测试技术上看,你需要能够使用常见的测试框架或者工具,需要具有一定的自动化测试脚本的开发能力,
高级测试工程师
合格的测试工程师关注的是纯粹的测试,而优秀的测试工程师关注更多的是软件整体的质量,需要根据业务风险以及影响来制定测试策略。另外,优秀的测试工程师不仅可以娴熟地运用各类测试工具,还非常清楚这些测试工具背后的实现原理。
测试架构
测试架构师不仅仅应该有技术的深度,还应该有全局观。比如,面对大量测试用例的执行,无论是 GUI 还是 API,都需要一套高效的能够支持高并发的测试执行基础架构;再比如,面对测试过程中的大量差异性数据要求,需要统一的测试数据准备平台。同时,测试架构师还必须对一些前沿的测试方法和技术有自己的理解。
【面试宝典】软件测试工程师2021烫手精华版(第三章Mysql基础篇)相关推荐
- 【面试宝典】软件测试工程师2021烫手精华版(第一章测试理论篇)
前言: 翻了很多论坛博客关于面试的文章,很多都是不完整的,还都是比较常见规规矩矩的,那大家刷过的基本都不拿出来了,都是一些大家平时见得不多,但是面试官很看中的一些题. 第一章 测试理论 一. 软件工程 ...
- 【面试宝典】软件测试工程师2021烫手精华版(第八章Python基础篇)
第八章 Python 基础 斐波那契数列求 N? 字符串反序输出? print(a_str[::-1]) 判断回文? astr[::-1] == a_str 统计python 源代码文件中代码行数,去 ...
- 【面试宝典】软件测试工程师2021烫手精华版(第四章web测试篇)
第四章 Web 测试 描述用浏览器访问 www.baidu.com的过程? 先要解析出 baidu.com 对应的ip 地址: • 要先使用 arp 获取默认网关的 mac 地址 • 组织数据发送给默 ...
- OpenGL超级宝典(第7版)笔记13 前三章实例 下个五子棋 (上)
OpenGL超级宝典(第7版)笔记13 前三章实例 下个五子棋 (上) 文章目录 OpenGL超级宝典(第7版)笔记13 前三章实例 下个五子棋 (上) 前言 1 初构建 2 构建数据结构 3 绘制 ...
- 00后面试华为软件测试工程师,竭尽全力拿到15K。。。。。
不废话,直接重点 一般软件测试的面试分为三轮:笔试,HR面试,技术面试. 前两轮,根据不同企业,或有或无,但最后一个技术面试是企业了解你"行不行"的关键环节,每个企业都会有的. ...
- 【转行跳槽面试】软件测试工程师都必须知道的这几种面试技巧...
在面试的过程中好多人会有这种的感觉.我在面试的时候面试官会问的特别详细,你们的公司之前是做什么的,还有相关的一些人员构成比例,开发和测试大概有多少人,你们公司有没有运维,有没有产品,以及呢一些详细的软 ...
- ios 与web服务器传值_中高级iOS大厂面试宝典,拿到offer率80%,金三银四将是你的新起点...
引言 过年之后相信有一部分的人,早已磨刀霍霍向大厂.势必要大展拳脚,必将在大厂内创出一片天地.但是,想必大家都知道:最近几年的最严重的互联网寒冬来临,各位兄弟都会说"江湖再见".耳 ...
- JavaScript核心原理精讲第三章 数组原理和排序
07-数组原理(上):帮你梳理眼花缭乱的数组 API 我在上一讲为你剖析了闭包这个难点,带你了解了作用域.闭包产生的原因及表现形式.那么这一讲,我们一起来手工实现一个 JSON.stringify 的 ...
- 从零开始手写VIO第三章作业(含关键点细节及思维过程)
文章目录 前言·与同主题博文的不同 1.代码修改 1.1阻尼因子 µ 随着迭代变化的曲线图 1.2完成曲线y = ax^2^ + bx + c的参数估计 1.3实现其他更优秀的阻尼因子策略 2.公式推 ...
最新文章
- vue-cli项目模板的一些思考
- Java的for-each循环
- 认识Linux系统中的inode,硬链接和软链接
- 用Html5制作的一款数学教学程序Function Graphics(绘制函数图的程序)
- c语言实验报告1华科,华科操作系统实验报告
- 用计算机进行实时自动采集,动态数据采集
- Highcharts exporting属性实现图表导出为图片、PDF
- 产品经理技术脑:怎么看懂接口文档
- idea修改代码仓库地址和用户密码
- 程序员参加年会,CTO 要求技术部门穿成这样
- 2020年计算机网络王道_2020年8种最大的网络安全威胁
- openstack 本地导入镜像.
- 用js实现数组去除重复的元素方法
- js原生、jquery单选框radio总结(获取值、设置默认选中值、样式)
- 【git系列】重命名文件后为何就是untracked状态了 以及 应该如何正规地修改文件呢
- 视图和表之间的区别和联系
- python django项目进度管理平台
- Java多线程面试题之如何让主线程等子线程执行完之后再执行
- 转:程序员风格的修真小说
- 技术派-磁盘出现坏道的处理
热门文章
- 机器学习读书笔记之10 - PCA
- 【怎么用系列】怎样正确使用百度及其他搜索引擎
- 理解UNDO-4 总结
- zookeeper面试专题
- 初级经济师报考条件,报考时间全攻略
- 通告(公告),消息(站内短信),提醒的设计
- Unsatisfied dependency expressed through bean property ‘sqlSessionFactory‘报错解决
- iPhone/iPad被停用怎么办 3招轻松解锁
- 简单的Html编码转换工具
- 2022/9/9~9/10背单词