各大厂面试题总结

新浪:java/python
1、安卓怎么测试、专项测试关注那些、
2、app安全怎么测试
3、jmeter怎么自定义协议,分布式怎么部署
4、jvm原理、算法、垃圾算法有几种,怎么在tomcat中修改参数
5、HashMap有几种遍历、java集合分几种,有什么不同
6、性能测试中怎么定位问题、怎么解决问题、如果有内存泄漏怎么定位、java线程堆栈怎么分析;
7、性能测试流程是什么?如何开展性能测试
性能报告怎么写,包含什么
旷视:(python)
1、一个文件夹中有100万图片、文件夹、其他文件类型。通过python多线程实现过滤图片。
2、一个文本框中有好几文本框有坐标与另类似的文本框做对比,请写出算法
ETCP
1、python链表增删改查
2、SQL语句
3、s="1234"不通过内置函数实现倒序
4、业务测试
5、{[1,2,3]:{1:22}}写一个配置文件,告诉黑盒同事那个是字典里面的k--v
6、python有几种数据类型。set只有用在什么地方
7、什么是装饰器/生成器/迭代器


每日优鲜:(主要是java)
stringbuffer和stringbuilder的区别
int 转换为string
字典{[()]} 写一个算法判断括号:如果{{[}]}这是不则是false
一个字符串”pweowmfossssds,sdwesa,sds“统计每个字符出现的次数,在去取最大的3个字符。
工程框架结构是什么,怎么分层。
单例模式有几种,怎么写
写一个前端怎么修改html字体颜色
以后的发展什么,如果你来了,能带来什么
4.说一个自己优点与缺点
5.这边经常加班,每天十点下班是否接受。


陌陌:
1、springMVC/spring-boot/底层原理是什么,又什么不同
2、二叉树遍历
3、jmeter在linux怎么运行、日志怎么输出
4、GT怎么使用
5、单利模式
6、java多线程实现方式,怎么同时开启100个线程怎么写
7、jmeter怎么自定义协议。
8、jvm原理/怎么判断内存溢出与泄露,通过什么命令看
9、tomcat/ngix什么区别。
10、你的自动化与接口自动化怎么做


京东:
1、接口用例怎么设计
2、linux中怎么看日志文件
3、怎么在linux运行接口,如果日志没有开启,怎么开启。
4、spingMVC原理是什么?是否能独立做项目开发与工具开发、之前开发过什么测试工具,该工具个项目组带去什么,提高什么效率。
5、京东白条写测试要点
6、数据怎么备份与返原
7、jmeter使用有二次开发
8、写20个liunx命令
9、自己的缺点与优点是什么

猎豹:
有笔试(安卓、linux、编程、数据库)综合能力
1、python 读取文件几种方式,有什么区别
2、python 读取文件内容,替换指定文件内容,为xxx
3、java /python 工厂模式/br/>4、java多线程怎么实现
5、支付接口怎么设计用例
6、平台开发中最大的困难是什么?
7、python中装饰器是什么??
8、了解python常见的装饰器有哪些(@staticmethod/@classmethod)
9、什么是 Socket。他们之间怎么通讯。
10、(python)response/Requests他们带什么参数,具体由几个参数,每个代表什么意思
11、python文件读取有几种方式
12、appium自动化
13、get与post区别,为什么post安全/知道几种提交方式
14、你的一个优点是什么、缺点是什么?
15、怎么带团队?

高德
1、get与post区别,为什么post安全/知道几种提交方式
2、http/https区别,为什么https安全
3、这个程序那里有问题,如果有问题,怎么修改
try{
is = new FileInputStream(isfile)
os = new FileOutputStream(osfi)
}finally{
is.close()
os.close()
}
4、使用java/python打印这种格式
├─.android
│ ├─avd
│ ├─breakpad
│ ├─build-cache
│ │ ├─02eb1f1aabc80a94b506721fa380fe16566f238c
│ │ │ └─output
│ │ │ ├─aapt
│ │ │ ├─aidl
│ │ │ ├─assets
│ │ │ ├─jars
│ │ │ └─res
│ │ ├─081a0ee0de9194e857a974b1db9ee2974aae08c5
│ │ ├─0b69ab3b5f8c6b690095e5ebb52d2de1a7018249

58面试:
1、python小题目:
a、实现list把不重复的打印出来。
b、实现自定义count函数
c、统计list每个字母出现的次数
d、多线程实现接口请求(java/python)
我这边通过内部类实现new Thread(){ public vid run( for(int i =0 ; i >100;i++{业务代码实现}))}.start()方式实现
2、socket编程??
3、性能测试流程(会关注什么指标)、Linux环境搭建、
a、怎么计算tps、响应时间,线上怎么压测,数据怎么清理
b、怎么确定业务指标
c、top命令怎么看从进程到线程怎么看
d、cpu低但有线程锁怎么分析
e、java代码有问题怎么定位到代码块中
f、数据库怎么分析有问题
怎么确定业务指标与系统指标
性能测试用例怎么编写,性能评审内容包括什么。
4、apache与nginx的区别
5、http与https区别
6、安卓专项怎么测试,电量、流量、内存怎么测试
7、什么是冒烟测试,为什么要冒烟测试、功能测试的路程是什么
8、地图输入框用例点是什么?说要点
9、Thread的 start() 和 run()区别
10、Java中的String,StringBuilder,StringBuffer三者的区别
11、java怎么自定义get/post请求(我说的用:httpclient来实现)
12、接口怎么测试,关注那些点,平台怎么实现接口测试
13、加密接口怎么做,关联接口怎么做,
14、说下公司的项目架构/或者性能测试环境的架构。
15、内存泄漏怎么定位,怎么告诉开发修改
16、如果给你一个接口平台,你怎么设计,说下框架思想
17、你的优势是什么,你的不足是什么?
18、如果线上压测服务器挂了怎么办,你怎么处理?
19、怎么保证你压测的质量没问题的
20、java中new BufferedReader(new FileReader("aaa.txt"));对象在堆栈什么位置
21、说下jvm(-Xms -Xmx -Xmn -Xss)通常怎么配比。简单说下jvm(年轻带(伊甸园、s0、s1)、老年代、持久带)
22、jmeter执行命令(jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder])
怎么关联、怎么参数化?发现过什么问题?
23、springmvc中怎么接受前端传来的参数,并且写到数据库中(前端(ajax->control-->接口层--业务实现层--数据层))
24、java怎么读取reids方法、reids怎么操作,怎么读写
25、appium(原理)自动化怎么分层怎么体现用例覆盖率。
26、埋点怎么测试?


美团:
问spingmvc 注解有几种方式
java(map)怎么遍历
IP地址怎么判断
红包算法实现原理
测试开发与普通测试区别


好未来
1、java有几种基本类型
2、java读取文件a.txt(abc/您好!/ccc)并打印控制台
3、多线程有几种方式。(java8 有四种方式),怎么获取线程名字。怎么获取线程结果。
4、java文件中文件替换("adg","123423")
5、a = "abc123wer"
输出结果为:
abc
123
wer
6、遍历d盘下有多少文件名为aa.txt
7、request与response全名写出来
8、使用基本类型定义:a = 0.5应该使用类型定义,
9、double与float他们占多数字节
10、hashmap与hashset区别是什么,底层用什么数据结构存储
11、linu这中怎么看磁盘消耗多少
12、java socket编程?
13、maven有什么用?
14、线程池是什么
15、怎么获取线程结果
16、怎么通过反射创建对象,有几种方法
17、run()与start()区别
18、为什么要配置java环境变量

果松
1、性能测试流程是什么?
2、如何开展性能测试?包含什么内容。
3、性能测试评审包含什么内容?
4、tps与并发数怎么确定
5、测试环境性能结果怎么推断与判断线上性能没问题
百度(java/python)
聊下性能流程与怎么发现问题、怎么定位
目前测试开发中开发什么工具
python中conut底层是怎么实现的
ABCDEFG中三三排序有种不能重复
使用c/java/python实现从数字复制到字符串中去
===============================================

第1 章 排序算法

现在有一组无序数组 [ 30, 6, 5, 15, 13, 18, 10, 36, 25]
按照以下排序算法分别完成升序和降序
1.1 冒泡排序
def bubble_sort(num_list):
length=len(num_list)
for i in range(length-1):#循环多少趟,没一趟有序区都会增加一个值
for j in range(0,length-i-1):#每一趟比较时,从第0个元素比较,整个数组减去有序区的长度,减去1,因为顶部两个只需要比较一次所以减去1
if num_list[j]>num_list[j+1]:
num_list[j],num_list[j+1]=num_list[j+1],num_list[j]
return num_list
1.2 选择排序
1.3 插入排序
1.4 归并排序
1.5 快速排序
def quick_sort(data,left,right):
if left>=right:
return data
key=data[left]
low=left
heigh=right
while left<right:
while left<right and data[right]>key:
right -=1
data[left]=data[right]
while left <right and data[left]<key:
left +=1
data[right]=data[left]
data[left]=key
quick_sort(data,low,left-1)
quick_sort(data,left+1,heigh)
return data
data=[12,2,33,44,55,6,7,88]
print(quick_sort(data,0,len(data)-1))
1.6 堆排序
1.7 希尔排序
1.8 计数排序
1.9 基数排序
1.10 小范围排序

1.11 重复值判断

给定一个int 数组A,请返回它是否有重复值
测试样例:[1,2,3,4,5,5,6]
返回:true
def ff(data):
s=set(data)
if len(s)<len(data):
return True
else:
return False
data=[12,3,56,3,7]
print(ff(data))
def ff1(data):
d=dict.fromkeys(data,0)
print(d)
for i in d:
for j in data:
if i ==j:
d[i]+=1
if d[i]>1:
return i,d[i]
else:
return "没用重复值"
data=[12,3,56,12,7,12]
print(ff1(data))a

1.12 有序数组合并

给定一个int 数组A,数组B,请返回它是否有重复值
测试样例:[1,2,3,4,5,5,6]

1.13 三色排序

问题:有一个只由0,1,2 三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序。给定一个只含 0,1,2 的整数数组 A 及它的大小,请返回排序后的数组。保证数组大小小于等于500

测试样例:[0,1,1,0,2,2],6 返回:[0,0,1,1,2,2]

1.14 最短子数组

给定一个数组 a 和数组长度n,求出需要排序的最短子数组长度,使得该子数组排好序时整个数组有序。
测试样例:
输入:a={1,4,6,5,9,10}, n=6
输出:2

1.15 相邻两数最大差值
有一个×××数组 A,请设计一个复杂度为O(n)的算法,算出排序后相邻两数的最大差值。
给定一个int 数组A 和 A 的大小n,请返回最大的差值。保证数组元素多于1 个。
测试样例:
[1,2,5,4,6],5
返回:2
def ff(data,length):
min_num=data[1]-data[0]
for i in range(length-1):
heigh=data[i+1]-data[i]
if heigh>min_num:
min_num=heigh
return min_num
data=[12,24,45,65,80]
print(ff(data,len(data)))

第2 章 字符串
2.1 拓扑结构相同子树 *

题目:对于两颗彼此独立的二叉树A 和B,检查A 中是否存在一颗子树与B 树的拓扑结构完全相同。返回一个 bool 值代表结果
2.2 词语变形
解释:对于两个字符串A 和B,如果A 和B 中出现的字符种类相同且每种字符出现的次数相同,则A 和 B 互为变形词,检查两给定串是否互为变形词。
题目:给定两个字符串 A 和 B 及他们的长度,请返回一个 bool 值,代表他们是否互为变形词。
测试样例:
“abc”,3,”bca”,3
返回:
True
lsy版本
def isDeformation1(str1, str2):
if str1 == None or str2 == None or len(str1) != len(str2) or type(str1)!=str or type(str1)!=str :#判断是否为空,长度是否相等,数据类型是否都为字符串
return False
d_num=dict.fromkeys(s,0)#创建一个字典,key是str1的元素,v是0
for i in str1:
d_num[i] += 1
for j in str2:
if j in d_mum:
d_num[j] -=1
if d_num[j]<0:
return False
return True
s1="aaaaab"
s2='abcaaa'
print(isDeformation1(s1, s2))

查到的
def isDeformation1(str1, str2):
if str1 == None or str2 == None or len(str1) != len(str2):
return False
array = [0 for i in range(256)]
for i in range(len(str1)):#迭代字符串,字符对应的ASCII,作为array数组的下标,每出现一次相同字符,对应下标的值增加1,进而记录字符出现的次数
array[ord(str1[i])] += 1#ord取ASCII码,
for i in range(len(str2)):
array[ord(str2[i])] -= 1
if array[ord(str2[i])] < 0:
return False
return True

2.3 字符串反转
题目:将字符串 abcdefghijk 反转为kjihgfedcba
s="abcdefghijk"
s1=s[::-1]
print s1
方法2
def str_reverse(str):
str_new=""
for i in range(len(str)):
str_new += str[len(str)-1-i]
return str_new
print(str_reverse("abdewwwwvhhv"))

2.4 两串旋转
解释:如果对于一个字符串 A,将A 的前面任意一部分挪到后边去形成的字符串称为A 的旋转词。比如 A="12345",A 的旋转词有"12345","23451","34512","45123"和"51234"。
题目:对于两个字符串 A 和B,请判断A 和B 是否互为旋转词。给定两个字符串 A和B,请返回一个bool 值,代表他们是否互为旋转词。
测试样例:
"cdab","abcd"
返回:
true
def String(a,b):
c = a + a
if len(a) != len(b):
return False
else:
if b in c:
return True
else:
return False

a="cdab"
b="bcda"
print String(a,b)

2.5 句子的逆序

解释:对于一个字符串,只在字符串的单词间做逆序调整,也就是说,字符串由一些由空格分隔的部分组成,你需要将这些部分逆序。
题目:给定一个原字符串A,请返回逆序后的字符串。
测试样例:
"besttest is best",
返回:"best is besttest"
def f(s):
s=str(s)
l=s.split()
s_new=''
for i in l[::-1] :
s_new=s_new+' '+i
return s_new
print(f("besttest is best"))

2.6 字符串移位

解释:对于一个字符串,将字符串的长度为 len 的前缀平移到字符串的最后。
题目:给定一个字符串A 和它的长度,同时给定 len,请返回平移后的字符串。
测试样例:
"ABCDE",5,3
返回:
"DEABC"
def f1 (l):#向前移动一位
first=l[0]#将第一个数据保存下来
for i in range(len(l)-1):#从第二个数据开始,一次向前移动一位
l[i] = l[i + 1]
l[-1]=first#把第一个值最为新数组的最后一个值

def f2(s,Len):#向前移动len位
l=list(s)
for i in range(Len):
f1(l)
return ''.join(l)
print(f2('ABCDE',3))

def ff(data,length):
if length>len(data):
return False
data = list(data)
l=len(data)
for i in range(length):
new_l=data[0]
for j in range(l-1):
data[j]=data[j+1]
data[l-1]=new_l
return "".join(data)
data='abcdef'
print(ff(data,4))

2.7 拼接最小字典序

对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。
给定一个字符串数组 strs,同时给定它的大小,请返回拼接成的串。
测试样例:
strs = ["abc","de"]
结果:
"abcde"
def findSmallest(strs, n):
for i in range(1, len(strs)):
for j in range(0, i):#i=4时 和0,1,2,3比较
if (strs[i] + strs[j]) < (strs[j] + strs[i]):
strs[i], strs[j] = strs[j], strs[i]
return ''.join(strs)
strs = ["abcfe","de",'abw','dc','wl','def']
print(findSmallest(strs,4))

2.8 空格替换
将一个字符串中的所有空格替换成%20。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。你的程序还需要返回被替换后的字符串的长度。
样例:
对于字符串"Besttest andashu", 长度为 16
替换空格之后,参数中的字符串需要变为"Besttest%20andashu",并且把新长度 18 作为结果返回。
def replace(s):
b=''
for i in range(len(s)):
if s[i] ==" ":
b +="%20"
else:
b +=s[i]
return b,len(b)

s="We Are Happy"
print(replace(s))

2.9 合法括号序列判断
对于一个字符串,判断其是否为一个合法的括号串。
给定一个字符串 A 和它的长度 n,请返回一个 bool 值代表它是否为一个合法的括号串。
测试样例:
"(()())",6
返回:
true
测试样例:
"()a()()",7
返回:
false
测试样例:
"()(()()",7
返回:
false

def f(s):
count=0
if "(" not in s and ")" not in s:
return "没有括号"
for i in s:
if i=='(':
count += 1
elif i==')':
count -=1
if count==0:
return True
else:
return False
print(f('1111'))

#方法2 是右括号添加到数组中,是左括号,先判断数组中是否存在右括号,如果不存在返回false,存在弹出一个右括号
def chkParenthesis(A, n):
stack=[]
for i in A:
if (i !='(') and (i !=')'):
return False
if i=="(":
stack.append("(")
elif i==")":
if not stack:return False
stack.pop()
return stack==[]

print(chkParenthesis('(()))',5))

2.10 最长无重复字符子串
题目:对于一个字符串,找到字符串的最长无重复字符的子串长度。
给定一个字符串 A 及它的长度n,请返回它的最长无重复字符子串长度。保证A 中字符全部为小写英文字符,且长度小于等于500。
测试样例:
"aabcb",5
返回:3

第3 章 查找算法

已有一个无序数组[1,5,3,2,6,7,9,0,8,4],使用下面的集中查找算法找到 3 的下标
3.1. 顺序查找
3.2. 二分查找

3.3. 插值查找
3.4. 斐波那契查找
3.5. 树表查找
3.6. 分块查找
3.7. 哈希查找
第4 章 位运算

4.1 寻找奇数出现
有一个整型数组 A,其中只有一个数出现了奇数次,其他的数都出现了偶数次,请打印这个数.
测试样例[1,5,3,2,6,7,9,5,0,8,4]
1、写出创建上面这三张表的sql
students表:

create table students(
Id int(10) primary key not null unique auto_increment,
Name varchar(20) not null,
Sex varchar(4),
age int(10),
class varchar(20) not null,
Addr varchar(50)
);default charset = utf8;

插入数据:
insert into students(Id,Name,Sex,age,class,Addr) values
(801,'刘海洋','男',21,'乔巴','北京市海淀区'),
(802,'周飞','男',18,'乔巴','北京市昌平区'),
(803,'味全','男',26,'路飞','湖南省永州市'),
(804,'孙洋','女',21,'乔巴','辽宁省阜新市'),
(805,'李佳','女',22,'超人','福建省厦门市'),
(806,'保总','女',30,'乔巴','湖南省衡阳市'),
(1001,'徐振永','男',21,'索隆','辽宁省阜新市'),
(1002,'李卫强','男',18,'索隆','福建省厦门市'),
(1003,'狄枫','男',26,'蜘蛛侠','湖南省衡阳市'),
(1004,'女屌丝','女',21,'蜘蛛侠','北京市海淀区'),
(1005,'郁燕','女',22,'索隆','北京市昌平区'),
(1006,'裴颖菲','女',30,'索隆','辽宁省阜新市'),
(1007,'戴小龙','男',50,'索隆','福建省厦门市');

2)Score表建表语句
create table Score(
Id int(10) primary key not null unique auto_increment,
Stu_id int(10) not null,
C_name varchar(20),
Grade int(10)
);

插入数据语句
insert into Score(Stu_id,C_name,Grade)values
(801,'101',98),
(801,'103',49),
(801,'102',80),
(802,'101',65),
(802,'103',88),
(803,'103',95),
(804,'101',70),
(804,'102',92),
(805,'102',94),
(806,'101',57),
(806,'102',45),
(1001,'101',98),
(1007,'102',80),
(1002,'101',65),
(1002,'103',88),
(1003,'103',95),
(1004,'101',70),
(1004,'102',92),
(1005,'102',94),
(1006,'101',57),
(1006,'102',45);

3)cource表建表语句
create table cource(
Id int(10) primary key not null unique auto_increment,
C_name varchar(20) not null unique
);

插入数据语句
insert into cource values
(101,'计算机'),
(102,'英语'),
(103,'中文');

5、查询students表的第2条到4条记录
select * from students limit 1,3;

6、从students表查询所有学生的学号(id)、姓名(name)和班级(class)的信息
select Id,Name,class from students;

7、从students表中查询乔巴和索隆的学生的信息

select from students where class='乔巴' or class='索隆';
select from students where class in ('乔巴','索隆');

8、从students表中查询年龄18~25岁的学生信息
select from students where age between 18 and 25;
select from students where age>=18 and age<=25;

9、从students表中查询每个班有多少人
select class,count(1) from students group by class;

10、从score表中查询每个科目的最高分
select C_name,max(Grade) from Score group by C_name;
更好一点呢
select a.C_name,max(b.Grade) from cource a,Score b where a.Id=b.C_name group by b.C_name;

11、查询女屌丝的考试科目(c_name)和考试成绩(grade)
select a.C_name,b.Grade from cource a,Score b,students c
where a.id=b.C_name and b.Stu_id=c.Id and c.Name='女屌丝';

12、简述什么是左连接、右连接,他们之间的区别是什么
这个执行sql试试,就看出来了

13、用4种多表连接的方式查询所有学生的信息和考试信息(左连接、右连接、内连接、=号连接),最常用的就是等号连接
select * from students a ,Score b where a.id=b.Stu_id;

select * from students a inner join Score b on a.id=b.Stu_id;

select * from students a left join Score b on a.id=b.Stu_id;

select * from students a right join Score b on a.id=b.Stu_id;

14、计算每个学生的总成绩
select a.Name,sum(b.Grade) from students a,Score b
where a.Id=Stu_id
group by a.Id;

15、计算每个考试科目的平均成绩
select a.C_name,avg(b.Grade) from cource a,Score b
where a.Id=b.C_name group by a.id;

16、查询同时参加计算机和英语考试的学生的信息

第一种方法:
select * from students where Id in (
select a.Stu_id from (select Stu_id from Score where C_name=(select Id from cource where C_name='计算机')) a,
(select Stu_id from Score where C_name=(select Id from cource where C_name='英语')) b
where a.Stu_id=b.Stu_id
);

第二种方法:
select a. from students a ,(select s. ,c.C_name as name from Score s,cource c where c.Id=s.C_name) b,
(select s.* ,c.C_name as name from Score s,cource c where c.Id=s.C_name) c
where a.Id=b.Stu_id
and a.Id=c.Stu_id
and b.name='英语'
and c.name='计算机';

17、将计算机考试成绩按从高到低进行排序
select a.C_name,b.Grade from cource a,Score b
where a.Id=b.C_name and a.C_name='计算机'
order by b.Grade desc;

18、从student表和score表中查询出学生的学号,然后合并查询结果(考察union 和union all的区别)
select Id from students union select Stu_id from Score;

19、查询索隆班姓李的男同学的成绩和学生信息(考察多表联查和like的用法)
select a.Name,a.Sex,a.age,a.class,a.Addr,b.Grade from students a,Score b
where a.Id=b.Stu_id and a.Name like '李%' and a.class='索隆';

20、查询都是湖南的学生的姓名、年龄、班级和考试科目及成绩
select a.Name,a.age,a.class,b.C_name,c.Grade from students a,cource b,Score c
where a.Id=c.Stu_id and b.Id=c.C_name
and a.Addr like '湖南%';

21、把总成绩小于100的学生名称修改为天才
update students set Name='天才' where Id in (
select Stu_id from Score group by Stu_id having sum(Grade)<100);

22、查询只学过一门课的学生信息
select from students where Id in
(select Stu_id from Score group by Stu_id having count()=1);

23、查出有多少个年龄一样的学生
select age,count() from students
group by age having count()>1;

24、查询出每门课程低于平均成绩的学生姓名、课程名称、分数

select a.Stu_id,a.Grade
from Score a,(select C_name,avg(Grade) Grade from Score group by C_name) b
where a.C_name=b.C_name and a.Grade<b.Grade;

25、查询出每个人成绩最高的课程名称及分数
select a.Name,b.C_name,c.Grade
from students a,cource b,(select Stu_id,C_name,max(Grade) Grade from Score group by Stu_id) c
where a.Id=c.Stu_id and b.Id=c.C_name;

26、索引是什么,如何创建索引,为什么要使用索引?写自己的理解
自己发挥,以后调优还要讲,如果没有索引,一行一行的找,速度慢

27、创建一个视图,要求显示总成绩大于160的学生的班级、课程名称、分数、学号、学生姓名、学生性别

create view test_view as
select a.Id,a.Name,a.Sex,a.class,b.C_name,c.Grade from students a,cource b,Score c
where a.Id=c.Stu_id
and b.Id=c.C_name
and c.Stu_id in(select Stu_id from Score group by Stu_id having sum(Grade)>160);

28、查询中文成绩高于计算机成绩的学生编号
select a.Stu_id from (select from Score where C_name=(select Id from cource where C_name='中文')) a,
(select from Score where C_name=(select Id from cource where C_name='计算机')) b
where a.Stu_id=b.Stu_id
and a.Grade>b.Grade;

29、查询所有学生的学号、姓名、班级、课程数、总成绩
select a.Id,a.Name,a.class,b.total,b.sum
from students a,(select Stu_id,count(*) total,sum(Grade) sum from Score group by Stu_id) b
where a.Id=b.Stu_id;

30、查询查询没有学完所有课程的学生学号、姓名(考察复合语句、子查询、group by、having)
select Id,Name from students
where Id in(select Stu_id from Score group by Stu_id
having count(1)<(select count(1) from cource));

31、drop和delete的用处和区别,
drop是删除数据库、删除表,而delete是删除表里的内容,而不删除表结构,
还是再比较truncate和delete的区别吧
简单来说 truncate 删除速度快,不可恢复,一般用于整张表数据的清除
delete 一行行删除,可以回滚,一般用于

32你们的sql题 我又新加了一道题 给及格的分数减掉10分,不及格的分数增加5分,然后统计出不及格的学生、课程、分数(1个sql) 你们自己研究一下吧

京东:
1.如何创建多线程
a继承Thread类 (extends )
b实现Runnable接口()
2.写个单例
java
public class Single2 {
private static Single2 instance;
private Single2() {}
public static synchronized Single2 getInstance() {
if (instance == null) {
instance = new Single2();
}
return instance;
}
}
python 单例模式
python模块是天然的单例模式,因为第一次导入模块时,会生成一个.pyc的文件。第二次导入时直接加载.pyc文件,而不再执行模块代码
如果我们真的想要一个单例类,可以考虑这样做:
mysingleton.py
class Singleton(object):
def foo(self):
pass
singleton = Singleton()
将上面的代码保存在文件 mysingleton.py 中,要使用时,直接在其他文件中导入此文件中的对象,这个对象即是单例模式的对象
from a import singleton

方法2
import threading
class Singleton(object):
_instance_lock = threading.Lock()

def __init__(self):
pass

def __new__(cls, *args, **kwargs):
if not hasattr(Singleton, "_instance"):
with Singleton._instance_lock:
if not hasattr(Singleton, "_instance"):
Singleton._instance = object.__new__(cls)
return Singleton._instance
obj1 = Singleton()
obj2 = Singleton()
print(obj1,obj2)

def task(arg):
obj = Singleton()
print(obj)

for i in range(10):
t = threading.Thread(target=task,args=[i,])
t.start()

3.activity四大组件,各什么作用
4.java内存中 堆 栈 年轻带、老年代 说明
360
Java多态解释
同一个行为具有多个不同表现形式或形态的能力
多态存在的三个必要条件
继承
重写
父类引用指向子类对象

List 与Set、 LinkList 区别
list存储不唯一有序的对象,通过索引控制元素插入和访问元素
set存储一组唯一(不能重复),无序的对象
linkList实现了List接口,允许有空元素,主要创建链表数据结构
ArrayList实现了list接口,实现了可变大小的数组,该类是非同步的,在多线程时不要使用
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
该类实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。
如何驱动appium
宜信:
判断一个字符串是不是回文,
def ff(str1):
str_new=str[::-1]
if(str1==str_new):
return True
else:
return False

高德:
1.安卓性能如何测试

蚂蚁金服:
一个数组{3,6,4,8,5} 求乘机最大值
悲观锁、乐观锁
求一个数 是不是质数
python
num = int(input("请输入一个数字: "))

质数大于 1
if num > 1:

查看因子
for i in range(2,num):
if (num % i) == 0:
print(num,"不是质数")
print(i,"乘于",num//i,"是",num)
break
else:
print(num,"是质数")

如果输入的数字小于或等于 1,不是质数
else:
print(num,"不是质数")

百度
字符串“abc” 输出“cba”
如何优化安卓性能
1,2,3,4 组成多少四位数,其中不能有数字相同的
求一个数组的中位数
写一个自动售卖机的用例
写一个朋友圈 浏览缩略图的用例

linux
du 查看文件和目录磁盘的使用空间 du-sh ./ s显示总计 h以K、M、G为单位
df 显示磁盘分区上的可使用的磁盘空间 df -h h以kb为单位
tar czvf my.tar.gz my #把my这个文件夹压缩并打包为my.tar.gz,后缀两种都行,tgz和tar.gz
crontab 定时任务 --crontab -e 添加crontab任务 --crontab -l 查看定时脚本
uname -a #查看当前系统的位数和内核信息
vi
全文查找替换 :1,$s/要查找的内容/要替换的内容
:%s/要查找的内容/要替换的内容/g
n1,n2d:删除n1到n2行,例如删除1到10行1,10d
n,$d:删除从某行开始至文本末尾,例如删除第8行至末尾 8,$d
:1,3y 复制第一行到第三行
chmod
文本 u--所有者 g--同组 0--其他人 a--所有 +增加权限 -去掉权限
chomd +x a.sh
-R 递归,主要用于目录,把目录下所有文件/文件夹赋权限
grep
grep ‘besttest’ a.txt | wc -l #统计含有besttest字符串的行数
wc 统计指定文件中的字节数、字数、行数
-c 统计字节数 -l 行数 -m字符数(不与-c一起使用) -w 字数 -L打印最长行的长度
ASCII中字节数=字符数,Unicode中一个字符=2个字节
实例
ps -ef|grep httpd |grep -v grep |awk '{print $2}'| xargs kill -9
查apache进程,出去grep占的进程,打印以空格为分隔符的第2列,即进程号,全部杀掉
文本编辑统计
使用linux命令或者shell实现:文件words存放英文单词,格式为每行一个英文单词(单词可以重复),统计这个文件中出现次数最多的前10个单词。
cat words.txt | sort | uniq -c | sort -k1,1nr | head -10
sort: 对单词进行排序 将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出
uniq -c: 显示唯一的行,并在每行行首加上本行在文件中出现的次数
sort -k1,1nr: 按照第一个字段,数值排序,且为逆序
head -10: 取前10行数据

linux shell
统计一个文档里top10的高频单词次数
cat words.txt | sort | uniq -c | sort -k1,1nr | head -10
给一个log日志,让统计出url(不包含参数)以及每个url的个数
awk ‘{print $?}’ /path | sort | uniq -c | sort -k1,1nr | head -n
top
top命令过去一段时间内的信息保存下来 top -d 2 -n 3 -b > top.txt 每隔2秒保存一次,保存3次 -b以批处理模式操作,否则样式乱了

mysql
creat table xx ( )
insert into xx values (),()
delete from xx where xx
update xx set xx=xx where xx
select distinct 字段名(去重)/top 5 字段名/聚合函数(avg、count、sum、max、min) from where xx Group by having(可加聚合函数,分组后的条件) order by xx desc 降序
select from a left join b on a.xx1=b.xx2 where xx limit 3 左外连接,显示左边的所有记录和右边预制匹配的记录
select from a,b where a.xx=b.xx and xx #等值连接,先连接后判断
select from a where a.xx in (select xx from b where xx) 嵌套 记录永不增长
Create index 索引名 on 表名(字段1,字段2,…) 创建索引
创建视图
CREATE VIEW stu_info(stu_id,name,sex,class,c_name,grade) AS
SELECT stu_id,name,sex,class,c_name,grade from students a,course b,score c where a.id=c.stu_id and b.id=c.c_id and stu_id in (SELECT stu_id from score GROUP BY stu_id HAVING sum(grade)>160)
WITH LOCAL CHECK OPTION

mysql 删除 所有数据,并让自增id 从新计数
1.truncate xx 可以对自增id进行重排

delete from xx + alter table xx auto_increment=1
mysql 查询 aa字段中包含三个小写拼音连写的数据
select * from table_name where REGEXP_LIKE(aa,'[[:alpha:]]{3}'); #正则
INSERT INTO TABLE (a,b,c) VALUES
(1,2,3),
(2,5,7),
(3,3,6),
(4,8,2)
ON DUPLICATE KEY UPDATE b=VALUES(b);
解释:插入行会导致unique索引或primary key 中出现重复值则执行update语句 ,词句就是出现重复值用新值替换原来的值

编程之美上的圆圈剩余的最后数字
C/c++内存释放的区别
如果线上产生bug要谁负责
如果bug比较严重,leader批评你怎么办
笔试 接口测试、 jmeter、java程序、重构、重载区别、、性能测试的一些指标
什么叫平衡二叉树
它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,同时,平衡二叉树必定是二叉搜索树,反之则不一定
7.冒泡法的流程
8.线程和进程的区别
(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;
(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源
(3)线程是处理器调度的基本单位,但进程不是
9.http2和1的区别
1.HTTP2使用的是二进制传送,HTTP1.X是文本(字符串)传送。
大家都知道HTTP1.X使用的是明文的文本传送,而HTTP2使用的是二进制传送,二进制传送的单位是帧和流。帧组成了流,同时流还有流ID标示,通过流ID就牵扯出了第二个区别
2.HTTP2支持多路复用
因为有流ID,所以通过同一个http请求实现多个http请求传输变成了可能,可以通过流ID来标示究竟是哪个流从而定位到是哪个http请求
3.HTTP2头部压缩
HTTP2通过gzip和compress压缩头部然后再发送,同时客户端和服务器端同时维护一张头信息表,所有字段都记录在这张表中,这样后面每次传输只需要传输表里面的索引Id就行,通过索引ID就可以知道表头的值了
4.HTTP2支持服务器推送
HTTP2支持在客户端未经请求许可的情况下,主动向客户端推送内容
10linux
统计log中字段出现的次数
grep -o '关键字' 文件 |wc –l -o代表只输出文件中匹配到的部分
2.查看关键字匹配的行
grep ‘关键字’-n 文件 显示关键字所在的行
grep ‘关键字’-c 文件 统计包含关键字的行数
3.tail –fn20 order.log 动态监听日志文件最后20行 默认10行
4.关闭所有进程
ps –ef |grep java | grep –v grep |awk‘{print$2}‘’|xargs kill -9
ps -ef|grep httpd |grep -v grep |awk '{print $2}'| xargs kill -9
ps –ef |grep java|grep –v grep |awk ‘{print $2}’|xargs kill -9
11打开京东登录页面设计测试用例
功能
UI
性能
安全
12水杯测试
冒烟测试:速度装一杯水,是否漏水
功能测试:漏水测试,透明度测试,卫生情冴测试,杯口平滑测试,重量测试,均匀度测试 压力测试:抗摔测试,抗高温测试
13在系统数据库中添加一个新的字段应该怎么测
14京东商城分哪些测试模块
商品 分类 浏览 详情 商品咨询 搜索
购物 加购 生成订单 支付 优惠打折 退单
个人中心 个人信息 银行卡信息
分享 收藏 关注
售后服务
物流

原文地址:https://www.cnblogs.com/wenm1128/p/11971999.html