面試之網絡編程和并發

1、簡述 OSI 七層協議。

物理層:主要基于電器特性發送高低電壓(1、0),設備有集線器、中繼器、雙絞線等,單位:bit
數據鏈路層:定義了電信號的分組方式,設備:交換機、網卡、網橋,單位:幀
網絡層:主要功能是將網絡地址翻譯成對應屋里地址,設備:路由
傳輸層:建立端口之間的通信,tcp、udp協議
會話層:建立客戶端與服務端連接
表示層:對來自應用層的命令和數據進行解釋,按照一定格式傳給會話層。如編碼、數據格式轉換、加密解密、壓縮解壓
應用層:規定應用程序的數據格式

2、什么是C/S和B/S架構?

C/S架構:client端與server端的服務架構
B/S架構:隸屬于C/S架構,Broswer端(網頁端)與server端;
優點:統一了所有應用的入口,方便、輕量級

3、簡述 三次握手、四次揮手的流程。

#三次握手:
1.客戶端先向服務端發起一次詢問建立連接的請求,并隨機生成一個值作為標識
2.服務端向客戶端先回應第一個標識,再重新發一個確認標識
3.客戶端確認標識,建立連接,開始傳輸數據
#四次揮手:
1.客戶端向服務端發起請求斷開連接的請求
2.服務端向客戶端確認請求
3.服務端向客戶端發起斷開連接請求
4.客戶端向服務端確認斷開請求

4、什么是arp協議?

# ARP(地址解析協議) 其主要用作將IP地址翻譯為以太網的MAC地址
# 在局域網中,網絡中實際傳輸的是“幀”,幀里面是有目標主機的MAC地址的。
# 在以太網中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。

# 所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。
# ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。

5、TCP和UDP的區別?

#TCP協議:面向連接
- 通信之前先三次握手
- 斷開之前先四次握手
- 必須先啟動服務端,再啟動客戶端-->連接服務端
- 安全、可靠、面向連接(不會丟包) 滑動窗口 流量控制 擁塞控制 慢開始 重傳?
#UDP協議:無連接
- 傳輸速度快
- 先啟動哪一端都可以
- 不面向連接,不能保證數據的完整性(如:QQ聊天)

6、什么是局域網和廣域網?

局域網和廣域網是按規模大小而劃分的兩種計算機網絡。
# 范圍在幾千米以內的計算機網絡統稱為局域網(LAN、私網、內網);
# 而連接的范圍超過10千米的,則稱為廣域網,因特網(Intenet)就是目前最大的廣域網(WAN、公網、外網)。

7、為何基于tcp協議的通信比基于udp協議的通信更可靠?

因為TCP是面向連接的
通信之前先三次握手,通過握手,確保連接成功之后再通信
斷開之前先四次揮手;雙方互相確認之后再斷開連接,這樣一來保證了數據的安全、可靠,避免丟包

只要對方回了確認收到信息,才發下一個,如果沒收到確認信息就重發

8、什么是socket?簡述基于tcp協議的套接字通信流程。

Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。
在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口后面,
對用戶來說,一組簡單的接口就是全部。

服務端:
創建socket對象,
綁定ip端口bind(),?
設置最大鏈接數listen(), ?
accept()與客戶端的connect()創建雙向管道,等到聯接,?
send(), recv(), 收發數據
close()

客戶端:
創建socket對象,
connect()與服務端accept()創建雙向管道 ,?
send(),
recv(),
close()

9、什么是粘包? socket 中造成粘包的原因是什么? 哪些情況會發生粘包現象?

只有TCP有粘包現象,UDP永遠不會粘包
粘包:在獲取數據時,出現數據的內容不是本應該接收的數據,如:對方第一次發送hello,第二次發送world,
  ? ?我方接收時,應該收兩次,一次是hello,一次是world,但事實上是一次收到helloworld,一次收到空,這種現象叫粘包

原因:粘包問題主要還是因為接收方不知道消息之間的界限,不知道一次性提取多少字節的數據所造成的。

什么情況會發生:

  1. 發送端需要等緩沖區滿才發送出去,造成粘包(發送數據時間間隔很短,數據了很小,會合到一起,產生粘包)
  2. 接收方不及時接收緩沖區的包,造成多個包接收(客戶端發送了一段數據,服務端只收了一小部分,服務端下次再收的時候還是從緩沖區拿上次遺留的數據,產生粘包)

10、IO多路復用的作用?

# IO多路復用分為時間上的復用和空間上的復用,
# 空間上的復用是指將內存分為幾部分,每一部分放一個程序,這樣同一時間內存中就有多道程序;
# 時間上的復用是指多個程序需要在一個cpu上運行,不同的程序輪流使用cpu,
# 當某個程序運行的時間過長或者遇到I/O阻塞,操作系統會把cpu分配給下一個程序,
# 保證cpu處于高使用率,實現偽并發。

11、什么是防火墻以及作用?

# 防火墻?
防火墻是一個分離器,一個限制器,也是一個分析器,
有效地監控了內部網和Internet之間的任何活動,保證了內部網絡的安全。
# 作用
防火墻可通過監測、限制、更改跨越防火墻的數據流,
盡可能地對外部屏蔽網絡內部的信息、結構和運行狀況,以此來實現網絡的安全保護。

12、select、poll、epoll 模型的區別?

參考:IO模型

# 都是i/o多路復用的機制,監視多個socket是否發生變化,本質上都是同步i/o。因為他們都需要在讀寫事件就緒后自己負責進行讀寫,也就是說這個讀寫過程是阻塞的
# select,poll實現需要自己不斷輪詢所有監測對象,直到對象發生變化,在這個階段中,可能要睡眠和喚醒多次交替,而epoll也需要調用epoll_wait不斷輪詢就緒鏈表,但是當對象發生變化時,會調用回調函數,將變化的對象放入就緒鏈接表中,并喚醒在epoll_wait中進入睡眠的進程。雖然都會睡眠和喚醒,但是select和poll在被喚醒的時候要遍歷整個監測對象集合,而epoll只要判斷就緒鏈表是否為空即可,節省了大量cpu的時間


FD(文件描述符)
select模型
優點:
? ? 1:可移植性好,在某些Unix系統不支持poll()
? ? 2:對于超時值提供了更好的精度:微妙,而poll是毫秒
select本質上是通過設置或者檢查存放fd標志位的數據結構來進行下一步處理。
缺點:
? ? 1:最大并發數限制,因為一個進程所打開的 FD (文件描述符)是有限制的,由 FD_SETSIZE 設置,默認值是 1024/2048 ,因此 Select 模型的最大并發數就被相應限制了。
? ? 2:效率問題,select每次調用都會線性掃描全部的FD集合,所以將FD_SETSIZE 改大,會越慢
? ? 3:需要維護一個用來存放大量fd的數據結構,這樣會使得用戶空間和內核空間在傳遞該結構時復制開銷大。?

poll本質上和select 沒有區別,它將用戶傳入的數組拷貝到內核空間,
它沒有最大連接數的限制,原因是它基于鏈表來存儲的但是同樣有一個缺點:
大量的fd的數組被整體復制于用戶態和內核地址空間,而不管這樣的復制是不是有意義

# epoll支持水平觸發和邊緣觸發,最大的特點在于邊緣觸發,
# 它只告訴進程哪些fd剛剛變為就需態,并且只會通知一次。

13、簡述 進程、線程、協程的區別 以及應用場景?

# 進程
進程擁有自己獨立的堆和棧,既不共享堆,亦不共享棧,進程由操作系統調度。
# 線程
線程擁有自己獨立的棧和共享的堆,共享堆,不共享棧,線程亦由操作系統調度
# 協程和線程的區別
協程避免了無意義的調度,由此可以提高性能;但同時協程也失去了線程使用多CPU的能力。

進程與線程的區別
(1)地址空間:線程是進程內的一個執行單位,進程內至少有一個線程,他們共享進程的地址空間,而進程有自己獨立的地址空間
(2)資源擁有:進程是資源分配和擁有的單位,同一個進程內線程共享進程的資源
(3)線程是處理器調度的基本單位,但進程不是
(4)二者均可并發執行
(5)每個獨立的線程有一個程序運行的入口

協程與線程
(1)一個線程可以有多個協程,一個進程也可以單獨擁有多個協程,這樣Python中則能使用多核CPU
(2)線程進程都是同步機制,而協程是異步
(3)協程能保留上一次調用時的狀態

14、GIL鎖是什么?

? ? GIL全局解釋器鎖(global interpreter lock),每個線程在執行時候都需要先獲取GIL,保證同一時刻只有一個線程可以執行代碼,即同一時刻只有一個線程使用CPU,以此來控制同一時間內共享數據只能被一個任務所修改,進而保證數據安全。也就是說多線程并不是真正意義上的同時執行。
? ? 對于io密集型任務,python的多線程起到作用,但對于cpu密集型任務,python的多線程幾乎占不到任何優勢,還有可能因為爭奪資源而變慢。解決辦法就是多進程和協程(協程也只是單CPU,但是能減小切換代價提升性能).
? ? GIL保護的是解釋器級的數據,保護用戶自己的數據則需要自己加鎖處理

15、Python中如何使用線程池和進程池?

進程池:就是在一個進程內控制一定個數的線程
基于concurent.future模塊的進程池和線程池 (他們的同步執行和異步執行是一樣的)

16、threading.local的作用?

a.threading.local
作用:為每個線程開辟一塊空間進行數據存儲。
問題:自己通過字典創建一個類似于threading.local的東西。
storage = {4740: {val: 0},4732: {val: 1},4731: {val: 3},
}b.自定義Local對象
作用:為每個線程(協程)開辟一塊空間進行數據存儲。
try:from greenlet import getcurrent as get_ident
except Exception as e:from threading import get_ident
from threading import Thread
import time
class Local(object):def __init__(self):object.__setattr__(self, 'storage', {})def __setattr__(self, k, v):ident = get_ident()if ident in self.storage:self.storage[ident][k] = velse:self.storage[ident] = {k: v}def __getattr__(self, k):ident = get_ident()return self.storage[ident][k]
obj = Local()
def task(arg):obj.val = argobj.xxx = argprint(obj.val)
for i in range(10):t = Thread(target=task, args=(i,))t.start()

17、進程之間如何進行通信?

# 進程間通訊有多種方式,包括信號,管道,消息隊列,信號量,共享內存,socket等

18、什么是并發和并行?

# 并發:同一時刻只能處理一個任務,但一個時段內可以對多個任務進行交替處理(一個處理器同時處理多個任務)
# 并行:同一時刻可以處理多個任務(多個處理器或者是多核的處理器同時處理多個不同的任務)
# 類比:并發是一個人同時吃三個饅頭,而并行是三個人同時吃三個饅頭。

19、進程鎖和線程鎖的作用?

線程鎖: 大家都不陌生,主要用來給方法、代碼塊加鎖。
當某個方法或者代碼塊使用鎖時,那么在同一時刻至多僅有一個線程在執行該段代碼。
當有多個線程訪問同一對象的加鎖方法 / 代碼塊時,同一時間只有一個線程在執行,其余線程必須要等待當前線程執行完之后才能執行該代碼段。
但是,其余線程是可以訪問該對象中的非加鎖代碼塊的。

進程鎖: 也是為了控制同一操作系統中多個進程訪問一個共享資源,只是因為程序的獨立性,各個進程是無法控制其他進程對資源的訪問的,但是可以使用本地系統的信號量控制(操作系統基本知識)。

分布式鎖: 當多個進程不在同一個系統之中時,使用分布式鎖控制多個進程對資源的訪問。

20、解釋什么是異步非阻塞?

'非阻塞':遇到IO阻塞不等待(setblooking=False),(可能會報錯->捕捉異常)
- sk=socket.socket()
- sk.setblooking(False)
'異步':回調(ajax),當達到某個指定狀態之后,自動調用特定函數

21、路由器和交換機的區別?

'交換機'
用于在同一網絡內數據快速傳輸轉發,工作在數據鏈路層;
通過MAC尋址,不能動態劃分子網;
只能在一條網絡通路中運行,不能動態分配。

'路由器'
是一個網關設備,內部局域網到公網的一個關卡;
工作在網絡層;
通過IP尋址,可以劃分子網;
可以在多條網絡通道中運行,可以動態分配IP地址。

'簡單說'
交換機就是把一根網線變成多根網線;
路由器就是把一個網絡變成多個網絡;
如果不上外網,只是局域網,交換機即可;
如果上外網,并且給網絡劃分不同網段,就必須用路由器。

22、什么是域名解析?DNS

# 在網上,所有的地址都是ip地址,但這些ip地址太難記了,所以就出現了域名(比如http://baidu.com)。
# 而域名解析就是將域名,轉換為ip地址的這樣一種行為。
# 例如:訪問www.baidu.com,實質是把域名解析成IP。

23、如何修改本地hosts文件?

'hosts':
Hosts就是將一些常用的網址域名與其對應的IP地址建立一個關聯“數據庫”
可以用來屏蔽一些網站,或者指定一些網站(修改hostsFQ)
'修改':
# windows:位置:C:\Windows\System32\drivers\etc
# linux:位置:/etc/hosts

24、生產者消費者模型應用場景及優勢?

生產者與消費者模式是通過一個容器來解決生產者與消費者的強耦合關系,生產者與消費者之間不直接進行通訊,
而是利用阻塞隊列來進行通訊,生產者生成數據后直接丟給阻塞隊列,消費者需要數據則從阻塞隊列獲取,
實際應用中,生產者與消費者模式則主要解決生產者與消費者生產與消費的速率不一致的問題,達到平衡生產者與消費者的處理能力,而阻塞隊列則相當于緩沖區。

應用場景:用戶提交訂單,訂單進入引擎的阻塞隊列中,由專門的線程從阻塞隊列中獲取數據并處理

優勢:
1;解耦
假設生產者和消費者分別是兩個類。如果讓生產者直接調用消費者的某個方法,那么生產者對于消費者就會產生依賴(也就是耦合)。
將來如果消費者的代碼發生變化,可能會影響到生產者。而如果兩者都依賴于某個緩沖區,兩者之間不直接依賴,耦合也就相應降低了。
2:支持并發
生產者直接調用消費者的某個方法,還有另一個弊端。由于函數調用是同步的(或者叫阻塞的),在消費者的方法沒有返回之前,生產者只能一直等著。而使用這個模型,生產者把制造出來的數據只需要放在緩沖區即可,不需要等待消費者來取
3:支持忙閑不均
緩沖區還有另一個好處。如果制造數據的速度時快時慢,緩沖區的好處就體現出來了。
當數據制造快的時候,消費者來不及處理,未處理的數據可以暫時存在緩沖區中。等生產者的制造速度慢下來,消費者再慢慢處理掉。

25、什么是cdn?

# 用戶獲取數據時,不需要直接從源站獲取,通過CDN對數據分發
# 用戶可以從一個較優的服務器獲取數據,從而達到快速訪問,并減少源站負載壓力的目的。

26、LVS是什么及作用?

LVS :Linux虛擬服務器
作用:LVS主要用于多服務器的負載均衡。
它工作在網絡層,可以實現高性能,高可用的服務器集群技術。
它廉價,可把許多低性能的服務器組合在一起形成一個超級服務器。
它易用,配置非常簡單,且有多種負載均衡的方法。
它穩定可靠,即使在集群的服務器中某臺服務器無法正常工作,也不影響整體效果。另外可擴展性也非常好。

27、Nginx是什么及作用?

Nginx是一個輕量級、高性能、穩定性高、并發性好的HTTP和反向代理服務器。

28、keepalived是什么及作用?

Keepalived是Linux下一個輕量級別的高可用解決方案。
高可用,其實兩種不同的含義:廣義來講,是指整個系統的高可用行,狹義的來講就是之主機的冗余和接管,

29、haproxy是什么以及作用?

HAProxy提供高可用性、負載均衡以及基于TCP和HTTP應用的代理,支持虛擬主機,它是免費、快速并且可靠的一種解決方案。
HAProxy特別適用于那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。HAProxy運行在當前的硬件上,完全可以支持數以萬計的并發連接。并且它的運行模式使得它可以很簡單安全的整合進您當前的架中,同時可以保護你的web服務器不被暴露到網絡上。

30、什么是負載均衡?

負載均衡有兩方面的含義:
# 首先,大量的并發訪問或數據流量分擔到多臺節點設備上分別處理,減少用戶等待響應的時間;
# 其次,單個重負載的運算分擔到多臺節點設備上做并行處理,每個節點設備處理結束后,將結果匯總,返回給用戶,系統處理能力得到大幅度提高。

31、什么是rpc及應用場景?

RPC 的全稱是 Remote Procedure Call 是一種進程間通信方式。
它允許程序調用另一個地址空間(通常是共享網絡的另一臺機器上)的過程或函數,而不用程序員顯式編碼這個遠程調用的細節。
即程序員無論是調用本地的還是遠程的,本質上編寫的調用代碼基本相同(例如QQ遠程操作)

32、簡述 asynio模塊的作用和應用場景。

asyncio是Python 3.4版本引入的標準庫,直接內置了對異步IO的支持。
asyncio的異步操作,需要在coroutine中通過yield from完成。

33、簡述 gevent模塊的作用和應用場景。

Gevent 是一個第三方庫,可以輕松通過gevent實現并發同步或異步編程,
在gevent中用到的主要模式是Greenlet, 它是以C擴展模塊形式接入Python的輕量級協程。
Greenlet全部運行在主程序操作系統進程的內部,但它們被協作式地調度。

34、twisted框架的使用和應用?

Twisted是一個事件驅動型的網絡模型。
事件驅動模型編程是一種范式,這里程序的執行流由外部決定。
特點是:包含一個事件循環,當外部事件發生時,使用回調機制來觸發相應的處理。

網絡鏈接過程中的狀態

  • - CLOSED:無連接是活動的或正在進行
  • - LISTEN:服務器在等待進入呼叫
  • - SYN_RECV:一個連接請求已經到達,等待確認
  • - SYN_SENT:應用已經開始,打開一個連接
  • - ESTABLISHED:正在通信,正常數據傳輸狀態
  • - FIN_WAIT1:主動方發送第一次fin之后保持的狀態
  • - FIN_WAIT2:主動方接受到被動方返回的ack,但是還未收到被動方發送的fin
  • - TIME_WAIT:主動收到被動方發送的fin同時發送ack之后的狀態,等待超時結束的請求數
  • - CLOSING:兩邊同時嘗試關閉
  • - LAST_ACK:等待所有分組死掉

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454389.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454389.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454389.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

redis 遠程主機強迫關閉了一個現有的連接_記一次Redis+Getshell經驗分享

你是我患得患失的夢,我是你可有可無的人,畢竟這穿越山河的箭,刺的都是用情之疾的人。前言:當我們接到一個授權滲透測試的時候,常規漏洞如注入、文件上傳等嘗試無果后,掃描端口可能會發現意外收獲。知己知彼…

無線連接 服務器,服務器無線遠程連接

服務器無線遠程連接 內容精選換一換華為云幫助中心,為用戶提供產品簡介、價格說明、購買指南、用戶指南、API參考、最佳實踐、常見問題、視頻幫助等技術文檔,幫助您快速上手使用華為云服務。使用Mac版Microsoft Remote Desktop工具,遠程連接W…

面試前您該做的事情

選自本人作品:《軟件性能測試與LR實戰》 無論您是剛剛畢業的大學生朋友,還是已經有工作經驗的同行,大家都不可避免的面臨一個問題就是找工作或者換工作的問題。在整個應聘過程中,面試無疑是最具有決定性意義的重要環節&#xff0c…

IO模型

IO模型介紹 傳統的網絡IO模型包括五種: blocking IO 阻塞IOnonblocking IO 非阻塞IOIO multiplexing IO多路復用signal driven IO 信號驅動IOasynchronous IO 異步IO 由于signal driven IO(信號驅動IO)在實際中…

重溫數據結構:樹 及 Java 實現(轉)

轉自:http://blog.csdn.net/u011240877/article/details/53193877 讀完本文你將了解到: 什么是樹樹的相關術語 根節點父親節點孩子節點葉子節點如上所述節點的度樹的度節點的層次樹的高度樹的深度樹的兩種實現 數組表示鏈表表示的節點樹的幾種常見分類及…

Powershell檢測AD賬戶密碼過期時間并郵件通知

腳本主要實現了兩個功能 : 一能判斷賬戶密碼的過期時間并通過郵件通知到賬戶; 二是將這些即將過期的賬戶信息累計通知到管理員。 腳本如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051…

js list刪除指定元素_vue.js

vue.js 中M V MV代表哪一部分 <插值表達式&#xff08;v-cloak v-text v-html v-bind&#xff08;縮寫是:&#xff09; v-on&#xff08;縮寫是&#xff09; v-model v-for v-if v-show &#xff09;<body><div id"app"><!-- 使用 v-cloak 能夠解決…

修改db2管理服務器,創建DB2管理服務器的兩種情況

DB2管理服務器在創建時分為創建一個和創建多個兩種情況&#xff0c;下面就為您詳細介紹這兩種創建DB2管理服務器的情況&#xff0c;供您參考學習。一、創建DB2管理服務器(只能創建一個)1、首先創建管理服務組用戶(可不建)命令&#xff1a;sudo groupadd dasadm12、創建用戶命令…

系統程序員成長計劃-走近專業程序員

轉載時請注明出處和作者聯系方式 文章出處&#xff1a;http://www.limodev.cn/blog 作者聯系方式&#xff1a;李先靜 <xianjimli at hotmail dot com> 需求簡述 用C語言編寫一個雙向鏈表。如果你有一定的C語言編程經驗&#xff0c;這自然是小菜一碟。有的讀者可能連一個…

Python 內置模塊之 asyncio(異步iO)

python3.0&#xff0c;標準庫里的異步網絡模塊&#xff1a;select(非常底層) &#xff0c;第三方異步網絡庫&#xff1a;Tornado&#xff0c;gevent python3.4&#xff0c;asyncio&#xff1a;支持 TCP &#xff0c;子進程 現在的asyncio&#xff0c;有了很多的模塊已經在支持…

前端js文件合并三種方式

最近在思考前端js文件該如何合并&#xff0c;當然不包括不能合并文件&#xff0c;而是我們能合并的文件&#xff0c;想了想應該也只有三種方式。 三個方式如下&#xff1a; 1. 一個大文件&#xff0c;所有js合并成一個大文件&#xff0c;所有頁面都引用它。 2. 各個頁面大文件&…

我們的系統檢測到您的計算機網絡中存在異常流量_如何建立我們的網絡防線?入侵檢測,確保我們的網絡安全...

目前我們的網絡安全趨勢日益嚴峻&#xff0c;那么如何利用入侵檢測系統確保我的網絡安全呢&#xff1f;入侵檢測又是什么呢&#xff1f;網絡安全入侵檢測技術是為保證計算機系統的安全&#xff0c;而設計與配置的一種能夠及時發現并報告系統中未授權或異常現象的技術&#xff0…

sql修改鏈接服務器名稱,SQL Server 創建鏈接服務器的腳本,自定義鏈路服務器的簡短名稱...

USE [master]GO/****** Object: LinkedServer [SQL01] Script Date: 2020/4/9 11:51:17 ******/EXEC master.dbo.sp_addlinkedserver server N‘SQL01‘, srvproductN‘‘, providerN‘SQLNCLI‘, datasrcN‘域名或者IP‘/* For security reasons the linked server remot…

mybatis $和#源代碼分析

JDBC中&#xff0c;主要使用兩種語句&#xff0c;一種是支持參數化和預編譯的PreparedStatement,支持原生sql,支持設置占位符&#xff0c;參數化輸入的參數&#xff0c;防止sql注入攻擊&#xff0c;在mybatis的mapper配置文件中&#xff0c;我們通過使用#和$告訴mybatis我們需要…

git 命令詳解和常見問題解決

功能一 提交&#xff1a;1:git init # 初始化&#xff0c;表示即將對當前文件夾進行版本控制2:git status # 查看Git當前狀態&#xff0c;如&#xff1a;那些文件被修改過、那些文件還未提交到版本庫等。3:git add . # 添加當前目錄下所有文件到版本…

辭職日記----記錄31歲的程序員跳槽心態

vcleaner http://topic.csdn.net/u/20080626/23/8f6a8ecc-c072-43ee-bf2d-7ac2286b6805.html http://topic.csdn.net/u/20080704/23/858fc00d-ec14-4db7-93be-34903b7f157a.html 轉載他的離職日記&#xff0c;有許多東西值得我們認真思考&#xff0c;人活著到底為了什么&a…

從Android源碼的角度分析Binder機制

IPC 為了弄懂IPC的來龍去脈&#xff0c;我將從以下三個方面為大家來講解&#xff0c;希望對大家理解IPC會有幫助 什么是IPC IPC是Inter Process Communication的縮寫&#xff0c;其意思就是進程間的通信&#xff0c;也就是兩個進程之間的通信過程。我們都知道在Android系統中&a…

excel vba 調用webbrowser_VBA 公式與函數

一, 在單元格中輸入公式的3種方法:1) 用VBA在單元格中輸入普通公式Sub formula_1() Range("d2") ("B2 * C2") End Sub運行程序后,在D2的單元格內顯示的是公式 B2 * C2 ,并非程序返回值.下文(二)中會介紹另外一種直接返回值的方式想要通過程序一…

內部類可以引用它的包含類的成員嗎?有沒有什么限制?

最近看到一道面試題&#xff1a;內部類可以引用它的包含類的成員嗎&#xff1f;有沒有什么限制&#xff1f; 答案大部分都是這樣子的&#xff1a; 完全可以。如果不是靜態內部類&#xff0c;那沒有什么限制&#xff01; 一個內部類對象可以訪問創建它的外部類對象的成員包括私有…

松下NPM服務器怎么備份系統,松下(Panasonic)-NPM校正amp;CPK完整版教程,一步步帶你成為SMT設備大神!...

馬上注冊&#xff0c;結交更多技術專家&#xff0c;享用更多功能&#xff0c;讓你輕松解決各種三星貼片機問題您需要 登錄 才可以下載或查看&#xff0c;沒有帳號&#xff1f;立即注冊 xa8f80375060fa05b8aebe69ffa21080c.gif (5.26 KB, 下載次數: 3)2019-8-12 00:02 上傳f5aae…