5.31 19:30参加乐云付的面试,现在还是在职状态,其实面试经过并非很理想,基本属于一问三不知状态。。。但也不算特别不尽如人意吧,其实题目都是些应用比较少的场景,和面试官聊的还算投机,看看有没有复试吧,等电话中。。。
1.数据库删除重复的数据
实际工作中,用的最多的也就是多表查询了,分组再筛选的使用概率基本为零,所以这个题目是没做出来,但思路其实有了。重复数据,就是统计数量大于1的数据
SELECT * FROM `nf_mcht_info` m GROUP BY m.`mcht_no` HAVING COUNT(m.`mcht_no`)>1;
我当时写成了
SELECT * FROM `nf_mcht_info` m where COUNT(m.`mcht_no`)>1 GROUP BY m.`mcht_no`;
DELETE
FROM
`nf_mcht_info`
WHERE mcht_no IN
(SELECT
*
FROM
`nf_mcht_info` m
GROUP BY m.`mcht_no`
HAVING COUNT(m.`mcht_no`) > 1)
AND id NOT IN
(SELECT
MIN(m.`id`)
FROM
`nf_mcht_info` m
GROUP BY m.`mcht_no`
HAVING COUNT(m.`mcht_no`) > 1) ;
2.0.8-0.7==0.6-0.5
答案是False
首先是优先级,判断的优先级是最低的,这个得了解,当然不知道你写代码的时候也可以写成(0.8-0.7)==(0.6-0.5)
然后,这个问题的重点考察的是,计算机在存储数据的时候,很可能是一种失真存储,0.8,他很可能存的是0.80000000000000004或者0.79999999999999999996这种,而非0.8。所以遇到这种题目,可以直接答false或者说未知,点名原因即可
解决方案:(8-7)/10==(6-5)/10
这种面试题对于金融行业的企业估计是必考题,一定要注意
3.一个数据列表,查出最大的三个数
my_list.sort()
print(my_list[0:3])
4.数据库别人在操作,导致表被锁死,指令查出谁在操作。另外有解锁指令
## 1.查看当前数据库锁表的情况
SELECT * FROM information_schema.INNODB_TRX;
## 2.杀掉查询结果中锁表的trx_mysql_thread_id
kill trx_mysql_thread_id
上面这个其实你背下来回答也没啥太大的价值,测试环境数据库你能去操作?!大部分公司你是没有权限的吧,你记住这个还不是得去找DBA,然后把指令发给他,和他说,麻烦帮我执行一下。相信他会给你翻白眼,不信自己可以尝试一下
## 1、查询是否锁表
show OPEN TABLES where In_use > 0;
## 2、查询进程
show processlist;
然后吼一声,某某某,操作完了嘛。。。
5.异步接口和同步接口的区别
这个就简单了吧,我们正常使用的接口都是同步接口,调用就有返回,异步接口调用是没有返回数据的,只是一个,嗨兄弟,你的请求我接收到了。
6.linux里面切换目录权限组
不得不吐槽这种题目,实际工作中,最多也就是,这个文件怎么没有操作权限呀。。。然后切换到root,加一下操作权限,这个指令应该都会
chmod +x filename
但这种切换用户组。。。工作这么多年,没遇到过
chown -R user1:group1 filename
7.冒泡排序
def bubbleSort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# Last i elements are already in place
for j in range(0, n-i-1):
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
8.python中的修饰器
装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。
这个概念我还没怎么接触过,面试被问,如实回答吧。
参加完复试,补充一下:
复试主要问了一些虚无缥缈的问题,什么安全什么性能。
print_r('点个赞吧');
var_dump('点个赞吧');
NSLog(@"点个赞吧!")
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!")
Response.Write("点个赞吧");
alert(’点个赞吧’)