1、如何在多執行緒中避免發生死鎖?
1.允許程式同時訪問某些資源。
2.允許程式強行從佔有者那裡奪取某些資源。
3.程式在執行前一次性地向系統申請它所需要的全部資源。
4.把資源事先分類編號,按號分配,使程式在申請,佔用資源時不會形成環路。
2.已知前序和中序 或 已知中序和後序都可以唯一確定一棵二叉樹
3、子串公式(n*(n+1))/2 + 1 ,要記得減去重複的字元!
4、二叉樹計算公式
1.n個節點的二叉樹一共有
種2.n層二叉樹的第n層最多為2^(n-1)個
3.二叉樹節點計算公式 N =n0+n1+n2,度為0的葉子節點比度為2的節點數多一個N=1n1+2n2+1
4.對任何一棵二叉樹T,如果其終端節點數為n0,度為2的節點數為n2,則n0=n2+1,,即度為2節點=葉子節點-1
5.具有n個節點的完全二叉樹的深度為log2(n) + 1
權值分別為9、3、2、8的結點,構造一棵哈夫曼樹,該樹的帶權路徑長度是?
將最小的兩個組成一個新節點,然後直到組成一棵樹。計算權值時只需要計算那些初始權值裡面有的值,把它乘以深度即為帶權路徑長度。
2和3組成5,5和8組成13,13和9組成22,即22為根。 值為9x1+8x2+3x3+2x3=40
各種協議(網路、運輸、應用)
TCP連線的建立和釋放(三次握手和四次揮手)ack的值
X=1, Y=1, Z=1
//第一次揮手,客戶端傳送FIN+ACK
FIN=1, ACK=1;
seq_number=X; // 1
ack_number=Z; // 1
// 第二次揮手,伺服器收到FIN後,發回一個ACK
ACK=1
seq_num=Z; // 1
ack_num=x+1; // 2
// 第三次揮手,伺服器關閉與客戶端的連線,傳送FIN
FIN=1, ACK=1;
seq_num=Y; //1
ack_num=X+1; //2
// 第四次揮手,客戶端收到伺服器傳送的FIN之後,發回ACK確認
ACK=1
seq_num=X+1; //2
ack_num=Y+1; //2
複製程式碼
linux命令
ifconfig用於獲取本地ip地址的.
top用於獲取本機cpu使用率.
uptime命令能夠列印系統總共執行了多長時間和系統的平均負載.
netstat命令用來列印Linux中網路系統的狀態資訊,可讓你得知整個Linux系統的網路情況.
export 設定環境變數 #export PATH=$PATH:/opt/au1200_rm/build_tools/bin
cat 檢視檔案內容,建立檔案,檔案合併,追加檔案內容
echo 顯示一段文字
env 查詢環境變數
在 javaScript中字串比較沒有equals()方法,要比較兩個字串是否相等可以直接用==或者is()進行判斷
charAt()和indexOf區別
charAt() 方法可返回指定位置的字元。
引數為index indexOf() 方法可返回某個指定的字串值在字串中首次出現的位置。
stringObject.indexOf(searchvalue,fromindex) 第一個引數必選,第二個可選的整數引數
埠配置
21 FTP
80 HTTP
443 HTTPS
8080 閒置
canvas 與 SVG 之間的一些不同之處
Canvas
依賴解析度
不支援事件處理器
弱的文字渲染能力
能夠以 .png 或 .jpg 格式儲存結果影象
最適合影象密集型的遊戲,其中的許多物件會被頻繁重繪
Canvas 是逐畫素進行渲染的。
在 canvas 中,一旦圖形被繪製完成,它就不會繼續得到瀏覽器的關注。如果其位置發生變化,那麼整個場景也需要重新繪製,包括任何或許已被圖形覆蓋的物件。
fileStyle:設定填充顏色
strokeStyle:設定邊框顏色
fillRect:畫實心矩形
strokeRect:畫空心矩形
SVG
不依賴解析度
支援事件處理器
最適合帶有大型渲染區域的應用程式(比如谷歌地圖)
複雜度高會減慢渲染速度(任何過度使用 DOM 的應用都不快)
不適合遊戲應用
margin 順序 上右下左,就是順時針方向
儲存技術
cookie:瀏覽器端,跟隨http請求一起傳送給伺服器
localStorage:瀏覽器端
session:伺服器端
userData:瀏覽器端,僅僅ie支援的