软件测试工程师——新的征程

招银网络科技 测试

一面

1. 自我介绍+重点说项目+会的语言

2. Java的数据类型

  • 基本数据类型
    四种整数类型(byte、short、int、long)(8,16,32,64)
    两种浮点数类型(float、double)(32,64)
    一种字符类型(char)(16)
    一种布尔类型(boolean)

  • 引用数据类型(类、接口、数组)

类型转换:当把一个表数范围小的数值或者变量直接赋值给另一个表数范围大的变量时,系统将可以进行自动类型转换;否则就需要强制转换。
自动类型转换

char
int
byte
short
long
float
double

强制转换:(targetType)value
1)会损失精度,产生误差,小数点以后的数字全部舍弃;
2)233强制类型转换为byte类型的整数23,这就是典型的溢出

// Narrow Conversion(缩小转换)或称强制转换
//强制把一个int类型的值转换为byte类型的值
int value = 233;
byte bValue = (byte)iValue;
System.out.println(bValue);
//强制把double类型的值转换为int类型的值
double dValue = 3.98;
int tol = (int) dValue;
System.out.println(tol);

3. 索引原理,索引优缺点(数据库),什么情况下不建议使用索引

索引原理:

索引优点:
1)大大加快数据的检索速度;
2)创建唯一性索引,保证数据库表中每一行数据的唯一性;
3)加速表和表之间的连接;
4)在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排 序的时间。

索引缺点:
1)索引需要占物理空间;
2)当对表中的数据进行增加、删除和修改的时候,索引也要动态地维护,降低了数据的维护速度。

什么情况不建议使用索引
1)数据唯一性差(一个字段的取值只有几种时)的字段不要使用索引
比如性别,只有两种可能数据。意味着索引的二叉树级别少,多是平级。这样的二叉树查找无异于全表扫描。

2)频繁更新的字段不要使用索引
比如logincount登录次数,频繁变化导致索引也频繁变化,增大数据库工作量,降低效率。

3)字段不在where语句出现时不要添加索引,如果where后含IS NULL / IS NOT NULL/ like '%输入符’等条件,不建议使用索引
只有在where语句出现,mysql才会去使用索引

4)where子句里对索引列使用不等于(<>),使用索引效果一般。

很大一部分程序员仅了解“加索引能使查询变快”,但是,

  • 为什么要给表加上主键?
  • 为什么加索引后会使查询变快?
  • 为什么加索引后会使写入、修改、删除变慢?
  • 什么情况下要同时在两个字段上建索引?

想要理解索引原理必须清楚一种数据结构 「平衡树」(非二叉),也就是b tree或者b+ tree,主流的RDBMS都是把平衡树当作数据表默认的索引数据结构的。

4.在一列添加索引,什么情况下索引并没有生效?如何改进?

1)如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)
注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引。

2)对于多列索引,不是使用的第一部分,则不会使用索引

3)like查询是以%开头

4)如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引。

5)如果mysql估计使用全表扫描要比使用索引快,则不使用索引。

此外,查看索引的使用情况
show status like ‘Handler_read%’
注意:
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数
handler_read_rnd_next:这个值越高,说明查询低效。

5.存储过程

什么是存储过程:存储过程是一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序通过存储过程名字调用,也可以从另一个存储过程或触发器调用。
它的参数可以被传递和返回,与应用程序中的函数过程类似,存储过程可以通过名字来调用,具有输入参数和输出参数。
在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
(说白了:一堆SQL的合并,中间加了点逻辑控制)

存储过程是数据库中一个重要对象,任何一个良好的数据库应用程序都应该用到存储过程。

存储过程分类
1)返回记录集的存储过程——从数据库返回符合一个或几个条件的记录
2)返回数值的存储过程——在数据库执行一个有返回值的函数或命令
3)行为存储过程——在数据库中的更新和删除操作

存储过程优缺点
优点
1)执行速度快——存储过程只在创建时进行编译,以后每次执行存储过程都不需要重新编译,而一般SQL语句每执行一次就需要编译一次,所以使用存储过程可提高数据库的执行速度。
2)减少网络通信量——当对数据库进行复杂操作时(如对多个表进行insert、update、select、delete时)可将这些复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。这些操作如果用程序完成就是多条SQL语句,需要多次连接数据库,但存储过程只需一次连接。
3)更强的适用性和复用性
4)可维护性高
5)安全性高
6)分布式工作
7)更好的版本控制

缺点
1)开发调试差:无良好的IDE开发工具,存储过程的调试比一般SQL要复杂得多。
2)可移植性差:由于存储过程将应用程序绑定到数据库上,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。
3)重新编译问题:因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(也可以设成运行时刻自动编译)。
4)如果在一个程序系统中大量使用存储过程,到程序交付时随着用户需求的增加会导致数据结构的变化,随之而来的是系统的相关问题,维护很难。

https://blog.csdn.net/jokeylin/article/details/80283989
https://blog.csdn.net/weixin_39805338/article/details/80798706

5.百度搜索页面输入一个词搜索,对应7层模型过程?????

6.一元钱买一瓶水,2个盖子换一瓶水,20元可以买几瓶水?

20–>10–>5–>2–>1+(5中1)–>1
20+10+5+2+1+1=39瓶

20块买了20瓶汽水.然后又换回10瓶.,再喝10个瓶子换了5瓶汽水.5个瓶子再换2瓶汽水剩1个瓶子.3个瓶子再换1瓶汽水 剩下1个瓶子.然后2个瓶子再换瓶汽水剩下1个瓶子向别人借1个瓶子有2个瓶子再换瓶汽水然后把剩下的瓶子还给人.一共20+10+5+2+1+1+1=40瓶
神奇的操作!!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值