京东面试测试开发工程师

编程

1、上台阶编程  10个台阶,一次只能上1个或者2个台阶,10个台阶一共有多少中上法

解:使用的迭代

当n=1时,  f(1)=1

当n=2时, f(2)=2

当n=3时,f(3) =f(1)+f(2) = 3 #当上到第三个台阶时,要不从第一个台阶直接上去,要不就是从第二个台阶上去,所以他的方法时前2项的和

def step(n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    if n > 2:
        return step(n-1) + step(n-2)

2、atoi函数的实现



数据库

1、表连接有几种方法:join、inner join、left join、right join 、full  join(当时回答了只有中间三种、糗)

他们的区别是什么

join 等价与inner join

left join 返回左表中所有的行,右表中不存在的行加null

right join 与leftjoin相反,返回右表中所有的行,左表中不存在的加null

full join 返回2张表所有的行(用mysql不支持full join命令

语法:select  * 

         from 表1

        (inner/left/right/full)join 表2

          on  表1.id = 表2.id     #(两张表关联,注意使用关键词是on)  

2、view视图:

视图:通俗的说,视图就是一条select 查询表的结果集,是虚拟表,在数据库中只有视图定义,不存储数据

作用:方便查询,避免复查的sql查询,增强可读性

         更安全,可以合理使用视图限定到行和列

特性:可以跟基本表一样,进行增删改查

create view view_name as

select  列名

from 表名

where 条件=条件

3、索引:索引是一种特殊的查询表,可以被被数据库引擎加速检索的查询,简单的说索引就是指向表中数据的指针地址。

语法: create index  index_name  on tablename

索引的建立可以加快查询速度,修改数据,会增加时间开销,一下几点是避免使用索引

    a、小数据量的表

    b、需要频繁大批量的更新操作或者插入数据

    c、如果列中有大量null

    d、频繁操作的列不宜做索引


4、事务:

   属性:原子性、一致性、隔离性、持久性

5、join 和in 哪个查询更快

同样表大小

in<=join


6、having和where有什么区别

where:约束声明,在返回结果前起作用,不能与聚合函数一起使用(统计前过滤,参加统计的数据变少)

having:过滤声明,在查询返回结果以后对查询结果进行过滤,其可以和聚合函数一起使用(统计后过滤,参加统计的数据无变化)


7、git命令

推荐使用廖雪峰的git介绍,简单明了,对于初学者和测试开发者基本使用已经足矣

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

8、jenkins配置






你可能感兴趣的:(京东面试测试开发工程师)