1. 程式人生 > >面試記錄留給自己做紀念

面試記錄留給自己做紀念

code 配置 %s 朋友 推斷 解釋 單例類 足夠 hashcode

新浪:java/python
  • 1、安卓怎麽測試、專項測試關註那些、
  • 2、app安全怎麽測試
  • 3、jmeter怎麽自定義協議,分布式怎麽部署
  • 4、jvm原理、算法、垃圾算法有幾種,怎麽在tomcat中修改參數
  • 5、HashMap有幾種遍歷、java集合分幾種,有什麽不同
  • 6、性能測試中怎麽定位問題、怎麽解決問題、如果有內存泄漏怎麽定位、java線程堆棧怎麽分析;
  • 7、性能測試流程是什麽?如何開展性能測試
    1. 性能報告怎麽寫,包含什麽

      曠視:(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)

    1. stringbuffer和stringbuilder的區別
    1. int 轉換為string
    1. 字典{[()]} 寫一個算法判斷括號:如果{{[}]}這是不則是false
    1. 一個字符串”pweowmfossssds,sdwesa,sds“統計每個字符出現的次數,在去取最大的3個字符。
    1. 工程框架結構是什麽,怎麽分層。
    1. 單例模式有幾種,怎麽寫
    1. 寫一個前端怎麽修改html字體顏色
    1. 以後的發展什麽,如果你來了,能帶來什麽
  • 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 工廠模式/4、java多線程怎麽實現
5、支付接口怎麽設計用例
6、平臺開發中最大的困難是什麽?
7、python中裝飾器是什麽??
8、了解python常見的裝飾器有哪些(@staticmethod/@classmethod)
br/>4、java多線程怎麽實現
5、支付接口怎麽設計用例
6、平臺開發中最大的困難是什麽?
7、python中裝飾器是什麽??
8、了解python常見的裝飾器有哪些(@staticmethod/@classmethod)
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、埋點怎麽測試?

美團:

  1. 問spingmvc 註解有幾種方式
  2. java(map)怎麽遍歷
  3. IP地址怎麽判斷
  4. 紅包算法實現原理
  5. 測試開發與普通測試區別

好未來

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. 1、性能測試流程是什麽?
  2. 2、如何開展性能測試?包含什麽內容。
  3. 3、性能測試評審包含什麽內容?
  4. 4、tps與並發數怎麽確定
  5. 5、測試環境性能結果怎麽推斷與判斷線上性能沒問題

百度(java/python)

  1. 聊下性能流程與怎麽發現問題、怎麽定位
  2. 目前測試開發中開發什麽工具
  3. python中conut底層是怎麽實現的
  4. ABCDEFG中三三排序有種不能重復
  5. 使用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進行重排

  1. delete from xx + alter table xx auto_increment=1
    mysql 查詢 aa字段中包含三個小寫拼音連寫的數據
    select * from table_name where REGEXP_LIKE(aa,‘[[:alpha:]]{3}‘); #正則
  2. 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京東商城分哪些測試模塊
商品 分類 瀏覽 詳情 商品咨詢 搜索
購物 加購 生成訂單 支付 優惠打折 退單
個人中心 個人信息 銀行卡信息
分享 收藏 關註
售後服務
物流

面試記錄留給自己做紀念