編程基礎面試題

interview
如何招到一個靠譜的程序員
https://kb.cnblogs.com/page/603663/
https://www.jianshu.com/p/7a88c3df9363
自我介紹,亮點
數據結構 

os

1.	簡述線程/進程
什麼是線程安全?
操作系統爲每個線程分配的棧大小一般多大?
什麼是棧溢出?

 

 

 
2.	簡述同步/異步;同步、互斥

 
3.	os如何實現進程隔離,又有哪些進程間通信方式?

 

 

 
4.	簡述虛擬內存

 
5.	簡述環境變量,以及如何繼承。

 

數據結構

--nowcoder 牛客網 

 
1.	什麼是堆棧和隊列?區別和聯繫;錯誤輸出時爲什麼要打印堆棧信息(stacktrace)?
遞歸如何改爲堆棧實現?

 
入棧順序是 1 2 3 4 5,出棧順序可以是:
1 3 2 5 4?
1 2 5 3 4?
5 4 1 2 3?

 
2.	什麼是數組和鏈表?區別和聯繫

 
3.	什麼是時間複雜度和空間複雜度?

 
4.	知道哪些排序算法?複雜度分別是什麼?

 
5.	什麼是tree、graph?什麼是二叉樹?一個有n個節點的完全二叉樹的高是多少?
平時常見的tree:目錄結構,還有哪些?國家,銀行。。。
樹形結構的數據,如何存儲在數據庫中?比如存儲某個目錄下的所有文件(夾)結構

 
平衡二叉樹如何在插入、刪除後保持平衡?
basic
集合操作set operations 
日誌 log

 
相對、絕對路徑,路徑拼接,相對路徑計算:
/a/b/c
../../d

 
什麼是耦合,耦合的例子

 
原子操作?
鎖種類
死鎖

 
什麼是異步編程

 
字符串
正則:捕獲、非捕獲、貪婪模式
 駝峯轉下劃線

 
url encode,decode
encoding utf8編碼

 
位操作 與或非
二進制、十六進制

 
md5簽名
RSA,公鑰私鑰

 
uml 
關聯、聚合 (Aggregation) 以及組合 (Composition)的區別?

 
exception,應該如何處理異常?--不要延遲處理,忽略
  常見的異常有哪些?

 
IDE,調試器的作用
條件斷點;
break on exceptions;break on uncaught exceptions
exception,應該如何處理異常?--不要延遲處理,忽略 
數據斷點
常用調試窗口;各個窗口的作用(watch、var、stack)

 
Every Programmer Should Know These Latency Numbers 每個程序員都應該知道的一些時間數據 

 

call graph & 縮進

json格式化輸出,用縮進表示層級關係: 
實現tree命令,可以不用畫連接線,但要用空白縮進來表示父子關係 

 

算法

nowcoder 牛客網 

 
july
http://blog.csdn.net/column/details/ms100.html
迅雷2014校園招聘筆試題
http://blog.csdn.net/hackbuteer1/article/details/11482103

 

網絡 network

知道哪些網絡協議?
一個https請求,前後端都做了哪些事?
tcp、udp區別?
cookie的作用
TCP流量控制
IP協議、掩碼
TLS、SSL

 
什麼是http協議?包含哪些常用的內容?
什麼是證書?CA?
http response code

 
cache:
服務器上有些靜態文件需要權限才能訪問,但同時需要實現 304 緩存協議,如何實現?
什麼是強制緩存、協商緩存?

 
get put post
冪等

 

java

log4j
泛型編程

 
JAVA常見面試題及解答(精華)
http://blog.163.com/moutei@126/blog/static/112515561200942024725710/
HashTable和HashMap的區別詳解
https://blog.csdn.net/fujiakai/article/details/51585767
 這個還介紹了作者
 https://blog.csdn.net/fujiakai/article/details/51585767
簡單來說就是,如果你不需要線程安全,那麼使用HashMap,如果需要線程安全,那麼使用ConcurrentHashMap。HashTable已經被淘汰了,不要在新的代碼中再使用它。

 
List、Set、Map 是否繼承自Collection 接口?

 
說出ArrayList、Vector、LinkedList 的存儲性能和特性?

 
List、Map、Set 三個接口,存取元素時,各有什麼特點?

 
sleep()和wait()有什麼區別?

 
有哪些線程同步方法

 

 
synchronized作用

 
啓動一個線程是用run()還是start()方法?

 
什麼是線程池(thread pool)?

 
線程的基本狀態以及狀態之間的關係?
 

 
gc原理

 

spring


 
aop?應用(log 事務 性能)?
事務、回滾

 
什麼是註解?
你知道哪些註解?分別有什麼作用?
說一下autowired原理、流程(byname bytype)

 

 
一般使用怎樣的模塊設計,比如controller。模塊間的調用關係是什麼?

 
啓動流程、加載文件的順序

 
tomcat:
servlet?線程安全?
什麼是default servlet
spring和servlet的關係?DispatcherServlet

 
什麼是spring攔截器,如何使用?

 
mapping
404

 
電商平臺、搶購模塊,如何實現,要點?
從一個HTTP請求發起,到最終的Response返回,它在你的系統和框架內部是如何流轉的?

 

 

java - 廖程

基礎:

 
集合裏面能存基礎數據類型嗎?爲什麼
常用的集合類,用過哪些集合?
你用過的這些集合的區別是什麼
什麼情況下用什麼集合,什麼時候用數組,?
集合的好處是什麼,數組的好處是什麼?
線程安全的集合有哪些,不安全的原因是什麼?
JUC相關的用過嗎?
StringBuffer 和 StringBuilder?
你知道java裏面的哪些大類型類?
Java的類加載機制?
Jvm瞭解嗎?
描述一下Jvm內存模型
知道java現在使用的垃圾蒐集算法是什麼嗎
列舉一下你知道的垃圾蒐集算法,以及算法的好處

 

 
框架:

 
1 , 使用Spring的好處是什麼?
2 , 核心容器BeanFactory模塊。
3 , Spring的實現原理
4 , 解釋AOP模塊
5 , Spring配置文件什麼時候加載的
6 , 解釋一下IOC控制反轉
7 , IOC的優點是什麼
8 , 什麼是依賴注入
10, Spring的事務機制
11, 用過哪些持久層框架
12, 持久層框架比起原生jdbc有哪些好處
13, 解釋一下mybatis實現機制
14, mybatis的mapper裏面有哪些功能
15, 用火hibernate嗎?
16, 多數據源會配置嗎?
17, sqlSessionFactory理解嗎

 
數據庫:
1,mysql有哪些主鍵
2,數據庫事務的四個特徵acid
3,試圖的作用,它可以更改嗎
4,drop, delete, truncate的區別
5,explain用過嗎,是幹嘛的
6,遇到過mysql鎖表嗎?怎麼解決的
7,數據庫的事務隔離機制
8,常用的表之間的鏈接方式有哪些
9,爲什麼叫DBMS,裏面包含了些什麼
10,java是通過什麼和數據庫進行通信的

 
緩存:
用過哪些緩存技術
什麼時候用緩存
緩存的好處和缺點分別是什麼
列舉你知道的redis數據結構以及你用過哪些結構
什麼時候用什麼結構,爲什麼不推薦redis做隊列,是因爲ack機制嗎
知道redis位圖嗎
知道分佈式鎖嗎
Redis一個value最大能存多少數據
爲什麼redis是線程安全的

 

 

 
其他:
分佈式瞭解嗎,分佈式事務怎麼處理,用過搜索相關的技術嗎等等

 

php

__call, __invoke, __get, __set
??

 
分析框架的實現,手寫框架 mvc

 
數組引用傳值?

 

design pattern

知道哪些設計模式?簡述其作用

 

testing interview

〖X:\piaojuke\interview\testing.xlsx〗
提bug包含的要素版本、操作系統、步驟,期望、結果、嚴重程度bug的生命週期new open reopen fixed closed測試流程(整個項目週期)需求評審、測試用例、集成測試、bug追蹤。。。

 
http://uninote.com.cn/book/1071710306/2170
對淘寶、京東等購物商城的登錄、下單、付款、物流、退貨環節寫出相應的測試用例,以及訂單狀態的轉換圖。狀態轉換圖類似下面的形式:

 
請寫sql語句進行如下查詢(對mysql自帶的world數據庫) :

 
人口在10-20w的城市
中國的所有城市人口列表
對國家按人口排序
哪一年獨立的國家最多(獨立年份:world.country.indepYear)?
語言超過3種的國家
有超大城市(城市人口超過500萬)的國家

 
linux. 查找 www.conf 並編輯,將 ;php_admin_flag[log_errors] = on 改爲(去掉分號):
php_admin_flag[log_errors] = on

 
演示說明 fiddler 的用法、用途

 
用 fiddler 修改任意網站的請求結果,如替換百度首頁

 

 
測試用例要維護哪些內容?
http://jingyan.baidu.com/article/454316aba6724df7a7c03abd.html
選擇迴歸測試的方式有哪些?
http://jingyan.baidu.com/article/25648fc1ce8efd9191fd00bd.html
軟件測試員----面試,你準備好了麼?
http://www.cnblogs.com/fnng/p/3830555.html
軟件測試經典面試題(完整版)
http://wenku.baidu.com/link?url=G3Md1UVLPXdQgnG2IZpCqd9khiQ6NvHv_0R7NaWDHGsR1REoK9P6-OFXhrC7wnkwboFhZ0LRXk0T_VCRzR3vPchXMVXR6M-B1mjuOuIq_ya

 
登錄時輸錯手機號,此手機號在系統中沒有註冊過,爲什麼一般app都提示的賬號或密碼錯誤?

 
電商系統,支付的測試重點?
  事務、防止重複提交

 
緩存
markdown

 
postman 環境變量?
支付場景
數據串改

 
python request 模擬登錄、等接口

 
如何做接口測試?如何批量?如何版本迭代,比較差異?

 

前端 interview

3ed ch06 

 
h5 canvas

 
div p ; div > p

 
設置樣式,用原生js

 
異常

 
http code

 
js 閉包
this apply call, bind
eg:console 間接調用。
作用域、鏈
prototype

 
yck 四月前端知識集錦(每月不可錯過的文章集錦)
https://juejin.im/post/5ae95f17f265da0b93481dec
前端開發面試題 全
http://www.runoob.com/w3cnote/front-end-developer-questions-and-answers.html
前端開發面試題
https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Questions/Questions-and-Answers
〖X:\piaojuke\interview\refs\fe.docx〗

 
DOM、BOM?

 
瀏覽器是如何渲染的

 
事件冒泡

 
gc 原理

 
js worker?

 
dom節點在IDE中遍歷

 
二進制view ArrayBuffer; typed array 

 
* 相對路徑、絕對路徑
前後臺驗證
get post

 
兩種key: string & index

 
什麼是base64編碼?編碼後體積增大了多少?

 
跨域

 
css
position display
selector
盒模型
 

 
 

 

前端面試2

線程狀態 線程切換 切換的內容
虛擬內存 如何實現
二進制與或非 位運算
樹高度
基本數據

 
響應時間

 

mysql

從B樹、B+樹、B*樹談到R 樹
http://blog.csdn.net/v_JULY_v/article/details/6530142

 
a)爲什麼說B+-tree比B 樹更適合實際應用中操作系統的文件索引和數據庫索引?
1) B+-tree的磁盤讀寫代價更低
2) B+-tree的查詢效率更加穩定 
個人覺得這兩個原因都不是主要原因。數據庫索引採用B+樹的主要原因是 B樹在提高了磁盤IO性能的同時並沒有解決元素遍歷的效率低下的問題。正是爲了解決這個問題,B+樹應運而生。B+樹只要遍歷葉子節點就可以實現整棵樹的遍歷。而且在數據庫中基於範圍的查詢是非常頻繁的,而B樹不支持這樣的操作(或者說效率太低)。

 
1.	什麼是索引,有哪些索引?覆蓋索引?索引的數據結構是什麼?
聚集索引
https://blog.csdn.net/jeffrey11223/article/details/78997941
一種索引,該索引中鍵值的邏輯順序決定了表中相應行的物理順序。 
不過mysql的innodb只支持主鍵聚集索引,不支持聯合聚集索引

 
2.	什麼是mysql session?

 
3.	什麼是事務?有哪些事務隔離級別?
事務的原理、實現方式

 
4.	mysql有哪些數據類型?

 
5.	Join?inner jion?left inner join?outer join?

 
6.	mysql 如何性能調優?慢查詢輸出

 
Mysql的幾種連接方式
https://www.cnblogs.com/dapengsoso/p/6605060.html
DQL、DML、DDL、DCL的概念與區別
https://www.cnblogs.com/fan-yuan/p/7879353.html

 
having
group by

 
主從數據庫、讀寫分離

 
ddl
主鍵、外鍵

 
什麼時候會用到臨時表?臨時表索引?

 

mysql 機試

請用寫sql語句進行如下查詢(對mysql自帶的world數據庫) :

 
人口在10-20w的城市
中國的所有城市人口列表
對國家按人口排序
哪一年獨立的國家最多(獨立年份:world.country.indepYear)?
語言超過3種的國家
有超大城市(人口超過500萬)的國家

 

 

 

git

reset working-tree rebase cherry-pick log diff
哪些類型的文件需要放到.gitignore中?

 

開放式問題


 
業餘學習、個人主頁

 
用什麼提高開發效率.

 
業餘學習.關注哪些?
最棘手的問題,你是怎麼解決的。

 
寫過什麼工具、腳本。選擇其中一個,描述具體的實現細節。

 

系統設計

購買產品(考慮併發)
rollback-for
aop
日誌

 

linux

shell
管道 pipe 重定向
用戶管理 權限

 

php

fastcgi
OPcache 
php優劣勢
php調試擴展 xdebug

 

c/c++

多態
虛函數
rtti
overlaod override
union 共用體

 
內存
函數指針、引用
leak overflow

 

上機題/大題


 
根據下面的輸出,估算當x=最大的64位整數時,需要的時間
[---------------
function test_time(x) {
    begin = Date.now()
    for(i=0; i<x; i++) {

 
    }
    console.log("cur: 0x" + x.toString(16) + ", takes: " + (Date.now() - begin) + "ms")    
}

 
arr = [
    0x1000000,
    0x2000000,
    0x4000000,
    0x8000000,
    0x80000000,
];

 
for(x in arr){
    test_time(arr[x])    
}
--------------]
output:
cur: 0x1000000, takes: 71ms
cur: 0x2000000, takes: 76ms
cur: 0x4000000, takes: 121ms
cur: 0x8000000, takes: 242ms
cur: 0x80000000, takes: 12579ms

 
爲什麼大質數分解很慢?
RSA算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作爲加密密鑰。

 
實現tree命令,可以不用畫連接線,但要用空白縮進來表示父子關係
 

 
此題可以不用遞歸來實現嗎?

 
json格式化輸出,用縮進表示層級關係:
{
    "BigIntSupported": 995815895020119788889,
    "date": "20180322",
    "message": "Success !",
    "status": 200,
    "city": "北京",
    "count": 632,
    "data": {
        "shidu": "34%",
        "pm25": 73,
        "pm10": 91,
        "quality": "良",
        "wendu": "5",

 
已知rand7() 可以產生 1~7 的7個數(均勻概率),利用rand7()  產生rand10()   1~10(均勻概率)

 

 
有幾百億的整數,分佈的存儲到幾百臺通過網絡連接的計算機上,你能否開發出一個算法和系統,找出這幾百億數據的中值?就是在一組排序好的數據中居於中間的數。顯然,一臺機器是裝不下所有的數據。也儘量少用網絡帶寬
解:分段統計。比如取值範圍是int32,分爲1m組,每臺計算機統計自己的數據的分組情況,彙總之後得出中位數在哪一組中。
如果這一組的個數爲n,不超過一定閾值h(比如10m個),則收集這n個數,計算之;
如果超過了閾值h,則遞歸細分組,直到n小於h,則收集計算之。

 
求矩形交集的面積

 
對於給定的整數集合S,求出最大的d,使得a+b+c=d。a,b,c,d互不相同,且都屬於S。集合的元素個數小於等於2000個,元素的取值範圍在[-2^28,2^28 - 1],假定可用內存空間爲100MB,硬盤使用空間無限大,試分析時間和空間複雜度,找出最快的解決方法。

 
先預設幾個變量,方便討論複雜度。n代表集合元素的數量(2000),m代表集合元素的取值範圍(2^29),k,選擇元素的個數(因爲選a b c d四個元素,所以k = 4)
方法2:類似於雙向查找的思路。時間複雜度O(n^2),空間複雜度O(n^2)。先對n個元素排序。枚舉n個元素的兩兩之和,做個hash,同時記錄一下是由哪兩個元素組成的,有多個相等的情況都需要記錄。再從大到小枚舉兩兩元素之差,在hash中查找,如果hash中存在,還需要判斷一下4個數的組合中是否有重複的元素,沒有就直接是解了,有重複則還要繼續向後枚舉。
https://blog.csdn.net/forlong401/article/details/8066345

 
四則運算解析
http server
聊天室
支付寶

 

yancao interview

從瀏覽器輸入url到接收到數據,都經歷了哪些流程?

 
遞歸 棧溢出

 
2^16 = ?
與或非 異或

 
版本管理?如何進行分支合併?出現衝突如何處理?

 
樹形菜單的存儲
線程安全
ioc的實現

 
同步/異步;同步、互斥

 
虛擬內存

 
Spring AOP概念Aspect、Advice、JoinPoint、JoinCut與Execution
https://blog.csdn.net/anurnomeru/article/details/79798659

 

react-native rn interview

看產品,講解

 
es6:promise、閉包、原型鏈、解構、this(call、apply、箭頭函數)、await async
DOM 遍歷,打印出節點 tag name,id

 
CI CD 自動打包、版本號

 
git rebase revert reset

 
http 協議 頭 cookie、緩存控制

 
token
請求返回登錄失效的處理,如何保證用戶填寫的數據不丟失?

 
仿京東商城app:
1 首頁
  頂部搜索欄+廣告欄的滑動動畫
  推薦商品
    分頁加載 + 頂部分類
    實現添加到購物車
2 購物車。查看已添加的商品

 

產品經理 interview

爲什麼死掉?
看產品,講解
分析一款產品

 
自己的案例
分析一個產品
運營、市場 配合,做了哪些工作
技術背景:堆棧、線程、併發、壓測、自動化測試、部署、打包

 

系統 設計

工具集合
高併發 demo
秒殺系統
消息隊列
分佈式鎖

 
繪製訂單生命週期狀態轉移圖
(需要考慮取消訂單、退款、派單、拒絕接單等情況)

 
中小規模的併發如何架構?
1w QPS

 
PV、TPS、QPS是怎麼計算出來的?
峯值QPS=(日PV*80%)/(60*60*24*20%)//通用公式每天80%的訪問集中在20%的時間裏,這20%時間叫做峯值時間

 
Redis持久化實踐及災難恢復模擬  
https://www.cnblogs.com/luowei/p/3573943.html
aof

 
超詳細的Nginx負載均衡+高可用配置(親測附圖)
https://blog.csdn.net/IT_10/article/details/89365436

 

ps:公司官網 還原加入

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章