复试-专业问题
這是我的學長,SDZ學長整理,我就發出了,如果你們有幸去了浙大軟科記得謝謝他,哈哈哈
這兩種方法在形式上相像,其區別在于:pa是指針變量,a是數組名。值得注意的是:pa是一個可以變化的指針變量,而a是一個常數。因為數組一經被說明,數組的地址也就是固定的,因此a是不能變化的,不允許使用a++、++a或語句a+=10,而pa++、++pa、pa+=10則是正確的。
假設現在我們有以下數組:
int a[5] = { 1,2,3,4,5 }; 那么,在C語言中如何取得數組中的元素呢?第一種方式:直接通過下標獲取//取得第0個元素 printf("%d\n", a[0]);第二種方式:通過數組的地址,在C語言中,數組的名稱實際上就是該數組首個元素的地址,可以通過(*名稱)獲取其中的值。
//獲取第0個元素 printf("%d\n", *a); //獲取第1個元素,只需要將地址+1,存儲輸出的是是連續的內存空間 printf("%d\n", *(a+1));第三種方式:通過指向該數組的指針。
//聲明一個指針,同時讓其指向a int* p = a; //通過解引用來獲取指針p指向的值,獲得第0個元素 printf("%d\n", *p); //指針+1即可獲得第1個元素 printf("%d\n", *(p + 1));- (1)棧(stack):數調用過程中的各種參數、局部變量、返回值以及函數返回地址。
- (2)堆(heap):用于程序動態申請分配和釋放空間。C語言中的malloc和free,C++中的new和delete均是在堆中進行的。
- (3)全局(靜態)存儲區:分為DATA段和BSS段。DATA段(全局初始化區)存放初始化的全局變量和靜態變量;BSS段(全局未初始化區)存放未初始化的全局變量和靜態變量。
- (4)文字常量區:存放常量字符串。程序結束后由系統釋放。
- (5)程序代碼區:存放程序的二進制代碼。
英文自我介紹,提問你做過哪些項目并介紹項目內容實現方法,問你來自哪里介紹你的家鄉/學校,研究生計劃,為什么想要讀研等問題。
計算機網絡
牢記每一層的協議及其內容、應用。
物理層:
數據鏈路層
功能:為網絡層提供服務;封裝成幀(透明傳輸);鏈路管理;流量控制;差錯控制;
網絡層
功能一:路由選擇與分組轉發(最佳路徑)
功能二:異構網絡互聯
功能三:擁塞控制(全局性)
協議:IP協議
傳輸層
網絡層提供主機之間的邏輯通信。
復用:應用層所有的應用進程都可以通過傳輸層再傳輸到網絡層。
分用:傳輸層從網絡層收到數據后交付指明的應用進程。
物理層
在物理層上所傳送的數據單位是比特。 物理層(physical layer)的作用是實現相鄰計算機節點之間比特流的透明傳送,盡可能屏蔽掉具體傳輸介質和物理設備的差異。使其上面的數據鏈路層不必考慮網絡的具體傳輸介質是什么。“透明傳送比特流”表示經實際電路傳送后的比特流沒有發生變化,對傳送的比特流來說,這個電路好像是看不見的。
解釋什么DNS,為什么要用DNS,有了IP地址為什么還要有域名?域名結構為什么這樣設計?ICMP、IGMP協議;IP地址的分類?等。
1.OSl,TCP/IP;五層協議的體系結構,以及各層協議
2.IP地址的分類
- 分類的IP地址(網絡號+主機號)
- 子網的劃分(網絡號+子網號+主機號)
- 構成超網(無分類編址方法)
3.ARP是地址解析協議,簡單語言解釋一下工作原理
1.首先,每個主機都會在自己的ARP緩沖區中建立一個ARP列表,
以表示IP地址和MAC地址之間的對應關系。
2.當源主機要發送數據時,首先檢查ARP列表中是否有對應IP地址的目的主機的MAC地址,
如果有,則直接發送數據,
如果沒有,就向本網段的所有主機發送ARP數據包,
該數據包包括的內容有:源主機 IP地址,源主機MAC地址,目的主機的IP 地址。
3.當本網絡的所有主機收到該ARP數據包時,首先檢查數據包中的IP地址是否是自己的IP地址,
如果不是,則忽略該數據包,
如果是,則首先從數據包中取出源主機IP地址和MAC地址寫入到ARP列表中,
如果已經存在,則覆蓋,
然后將自己的MAC地址寫入ARP響應包中,告訴源主機自己是它想要找的MAC地址。
4.源主機收到ARP響應包后,將目的主機的IP地址和MAC地址寫入ARP列表,并利用此信息發送數據。
如果源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。
廣播發送ARP請求,單播發送ARP響應。
4.TCP三次握手和四次揮手的全過程
5.在瀏覽器中輸入www.baidu.com后執行的全部過程
6.TCP和UDP的區別?
TCP與UDP區別
| 是否連接 | 無連接 | 面向連接 |
| 是否可靠 | 不可靠傳輸,不使用流量控制和擁塞控制 | 可靠傳輸,使用流量控制和擁塞控制 |
| 連接對象個數 | 支持一對一,一對多,多對一和多對多交互通信 | 只能是一對一通信 |
| 傳輸方式 | 面向報文 | 面向字節流 |
| 首部開銷 | 首部開銷小,僅8字節 | 首部最小20字節,最大60字節 |
| 適用場景 | 適用于實時應用(IP電話、視頻會議、直播等) | 適用于要求可靠傳輸的應用,例如文件傳輸 |
7.DNS域名系統,簡單描述其工作原理。
當DNS客戶機需要在程序中使用名稱時,它會查詢DNS服務器來解析該名稱。客戶機發送的每條查詢信息包括三條信息:指定的DNS域名,指定的查詢類型,DNS域名的指定類別。基于UDP服務,端口53. 該應用一般不直接為用戶使用,而是為其他應用服務,如HTTP,SMTP等在其中需要完成主機名到IP地址的轉換。
8.了解交換機、路由器、網關的概念,并知道各自的用途
交換機(多接口網橋):擴展以太網
路由器:
第一,網絡互連
第二,數據處理,提供包括分組過濾、分組轉發、優先級、復用、加密、壓縮和防火墻等功能;
第三,網絡管理,路由器提供包括配置管理、性能管理、容錯管理和流量控制等功能。
網段:一般指一個計算機網絡中使用同一物理層設備(傳輸介質,中繼器,集線器等)能夠直接通訊的那一部分。
數據結構
棧
出棧順序滿足卡特蘭數:(1/(n+1))?C2nn(1/(n+1)) * C_{2n}^n (1/(n+1))?C2nn?
括號匹配,后綴式的求值
隊列
循環隊列實現
稀疏矩陣的存儲方法:
順序:三元組法和偽地址法
鏈式:鄰接表法和十字鏈表法
KMP(O(m+n))
#include<iostream> using namespace std; const int N=1000010; char p[N],s[N]; int n,m; int ne[N]; int main() {cin>>n>>p+1>>m>>s+1;for(int i=2,j=0;i<=n;i++){while(j&&p[i]!=p[j+1]) j=ne[j];if(p[i]==p[j+1]) j++;ne[i]=j;}for(int i=1,j=0;i<=m;i++){while(j&&s[i]!=p[j+1]) j=ne[j];if(s[i]==p[j+1]) j++;if(j==n){printf("%d ",i-j);j=ne[j];}}return 0; }普通模式串比較優點:適合規模較大的外存字符串匹配,因為可以分段進行,先讀入內存一部分進行匹配,完成之后即可寫回外存,確保發生不匹配的時候不需要將之前的寫回外存的部分再次讀入,減少了I/O操作,提高效率。
二叉樹
五個主要性質
靈活運用:n個節點的樹,空指針的個數為n+1.
(1)若 i= 1,則結點i為根,無父結點;若 i> 1,則結點 i 的父結點為結點int_DOWN(i / 2);
(2)若 2*i <= n,則結點 i 的左子女為結點 2*i;
(3)若2*i<=n,則結點i的右子女為結點2*i+1;
(4)若結點編號i為奇數,且i!=1,它處于右兄弟位置,則它的左兄弟為結點i-1;
(5)若結點編號i為偶數,且i!=n,它處于左兄弟位置,則它的右兄弟為結點i+1;
(6)結點i所在的層次為 int_DOWN(log(2,i))+1。
補充:
n個節點可以構造的二叉樹個數為卡特蘭數:(1/(n+1))?C2nn(1/(n+1)) * C_{2n}^n (1/(n+1))?C2nn?
遍歷的改進:非遞歸(避免了系統棧)或線索二叉樹(避免用戶棧)
數據結構:排序算法及時間復雜度,隨手寫一個你自己熟悉排序算法(偽代碼形式),二叉樹相關知識。
九大排序九大排序
所有排序方法可分為兩類,
(1)一類是穩定的,包括直接插入排序、起泡排序、和歸并排序,基數桶式排序;
(2)另一類是不穩定的,包括直接選擇排序、希爾排序、快速排序和堆排序。
二叉搜索樹:中序遍歷為順序
AVL樹的旋轉:
右旋A:自己左兒子的右兒子–》自己的左兒子,自己–》自己的左兒子的右兒子。
左旋A:自己右兒子的左兒子–》自己的右兒子,自己–》自己的右兒子的左兒子。
#include<iostream> #include<cstring> #include<vector> #include<algorithm> #include<unordered_map> using namespace std; const int N=10005,M=100005; int n,m,K,st[N],l[N],r[N],w[N],h[N],idx=0;void update(int u) {h[u]=max(h[l[u]],h[r[u]])+1; } int get_balance(int u) {return h[l[u]]-h[r[u]]; } void R(int &u) {int p=l[u];l[u]=r[p],r[p]=u;update(u),update(p);u=p; } void L(int &u) {int p=r[u];r[u]=l[p],l[p]=u;update(u),update(p);u=p; }void insert(int &u,int val) {if(u==-1){u=++idx;w[idx]=val;}else if(val<=w[u]){insert(l[u],val);if(get_balance(u)==2){if(get_balance(l[u])==1) R(u);else L(l[u]),R(u);}}else{insert(r[u],val);if(get_balance(u)==-2){if(get_balance(r[u])==-1) L(u);else R(r[u]),L(u);}}update(u);} int q[N]; int maxx=0; void bfs(int u) {int hh=0,tt=-1;q[++tt]=u;int id=0;while(hh<=tt){int t=q[hh++];id++;if(l[t]!=-1) q[++tt]=l[t],maxx=max(id*2,maxx);if(r[t]!=-1) q[++tt]=r[t],maxx=max(id*2+1,maxx);} } int main() {cin>>n;memset(l, -1, sizeof l);memset(r, -1, sizeof r);memset(w,0x3f,sizeof w);int root=-1;for(int i=1;i<=n;i++){int val;scanf("%d",&val);insert(root,val);}bfs(root);for(int i=0;i<n-1;i++){printf("%d ",w[q[i]]);}printf("%d\n",w[q[n-1]]);//cout<<idx<<" "<<maxx<<endl;if(maxx>idx){printf("NO");}else{printf("YES");}return 0; }在大量查找的情況下,平衡二叉樹的效率更高,也是首要選擇。在大量增刪的情況下,紅黑樹是首選。
數據結構中有一類平衡的二叉搜索樹,稱為紅黑樹。
它具有以下 5 個屬性:
- 節點是紅色或黑色。
- 根節點是黑色。
- 所有葉子都是黑色。(葉子是 NULL節點)
- 每個紅色節點的兩個子節點都是黑色。
- 從任一節點到其每個葉子的所有路徑都包含相同數目的黑色節點。
鄰接矩陣與鄰接表優缺點:
鄰接矩陣的優點是可以快速判斷兩個頂點之間是否存在邊,可以快速添加邊或者刪除邊。而其缺點是如果頂點之間的邊比較少,會比較浪費空間。因為是一個 n?n 的矩陣。
而鄰接表的優點是節省空間,只存儲實際存在的邊。其缺點是關注頂點的度時,就可能需要遍歷一個鏈表。還有一個缺點是,對于無向圖,如果需要刪除一條邊,就需要在兩個鏈表上查找并刪除。
擴展
逆鄰接表
在鄰接表中對于有向圖有一個很大的缺陷,如果我們比較關心頂點入度那么就需要遍歷所有鏈表。為了避免這種情況出現,我們可以采用逆鄰接表來存儲,它存儲的鏈表是別的頂點指向它。這樣就可以快速求得頂點的入度。
鄰接表:反映的是頂點出度的情況。
逆鄰接表:反映的是頂點的入度情況。
十字鏈表的好處就是因為把鄰接表和逆鄰接表整合在一起,這樣既容易找到vi為尾的弧,也容易打到以vi為頭的弧,因而容易求得頂點的出度和入度。而且它除了結構復雜一點燃上,其實創建圖的算法的時間復雜度與鄰接表相同,因此,在有向圖的應用中,十字鏈表是非常好的數據結構模型。
圖論
最短路
最短路算法分為兩大類:
m:邊數,n:點數
- 單源最短路,常用算法有:
- dijkstra,邊權為正。在稠密圖上的時間復雜度是 O(n2n^2n2),稀疏圖上的時間復雜度是 O(mlogn)。
算法思想:
證明集合S里面的點已經是最短距離。假設集合S點為x,dist[x]有兩個選擇:dist[x],dist[u]+d[u][s],因為d[u][s]>0且dist[u]>dist[x]。 - bellman - ford算法,不論邊權是正的是負。算法平均時間復雜度是 O(nm)
for n次
for 所有邊 a,b,w (松弛操作)
dist[b] = min(dist[b],back[a] + w) - spfa,不論邊權是正的是負。算法平均時間復雜度是 O(km),k 是常數。 強烈推薦該算法。
- 多源最短路,一般用floyd算法。代碼很短,三重循環,時間復雜度是 O(n3n^3n3)。
代碼:
樸素dijkstra算法 —— 模板題 AcWing 849. Dijkstra求最短路 I
int g[N][N]; // 存儲每條邊 int dist[N]; // 存儲1號點到每個點的最短距離 bool st[N]; // 存儲每個點的最短路是否已經確定// 求1號點到n號點的最短路,如果不存在則返回-1 int dijkstra() {memset(dist, 0x3f, sizeof dist);dist[1] = 0;for (int i = 0; i < n - 1; i ++ ){int t = -1; // 在還未確定最短路的點中,尋找距離最小的點for (int j = 1; j <= n; j ++ )if (!st[j] && (t == -1 || dist[t] > dist[j]))t = j;// 用t更新其他點的距離for (int j = 1; j <= n; j ++ )dist[j] = min(dist[j], dist[t] + g[t][j]);st[t] = true;}if (dist[n] == 0x3f3f3f3f) return -1;return dist[n]; }堆優化版dijkstra —— 模板題 AcWing 850. Dijkstra求最短路 II
typedef pair<int, int> PII;int n; // 點的數量 int h[N], w[N], e[N], ne[N], idx; // 鄰接表存儲所有邊 int dist[N]; // 存儲所有點到1號點的距離 bool st[N]; // 存儲每個點的最短距離是否已確定// 求1號點到n號點的最短距離,如果不存在,則返回-1 int dijkstra() {memset(dist, 0x3f, sizeof dist);dist[1] = 0;priority_queue<PII, vector<PII>, greater<PII>> heap;heap.push({0, 1}); // first存儲距離,second存儲節點編號while (heap.size()){auto t = heap.top();heap.pop();int ver = t.second, distance = t.first;if (st[ver]) continue;st[ver] = true;for (int i = h[ver]; i != -1; i = ne[i]){int j = e[i];if (dist[j] > distance + w[i]){dist[j] = distance + w[i];heap.push({dist[j], j});}}}if (dist[n] == 0x3f3f3f3f) return -1;return dist[n]; }Bellman-Ford算法 —— 模板題 AcWing 853. 有邊數限制的最短路
注意在模板題中需要對下面的模板稍作修改,加上備份數組,詳情見模板題。int n, m; // n表示點數,m表示邊數 int dist[N]; // dist[x]存儲1到x的最短路距離struct Edge // 邊,a表示出點,b表示入點,w表示邊的權重 {int a, b, w; }edges[M];// 求1到n的最短路距離,如果無法從1走到n,則返回-1。 int bellman_ford() {memset(dist, 0x3f, sizeof dist);dist[1] = 0;// 如果第n次迭代仍然會松弛三角不等式,就說明存在一條長度是n+1的最短路徑,由抽屜原理,路徑中至少存在兩個相同的點,說明圖中存在負權回路。for (int i = 0; i < n; i ++ ){for (int j = 0; j < m; j ++ ){int a = edges[j].a, b = edges[j].b, w = edges[j].w;if (dist[b] > dist[a] + w)dist[b] = dist[a] + w;}}if (dist[n] > 0x3f3f3f3f / 2) return -1;return dist[n]; }spfa 算法(隊列優化的Bellman-Ford算法) —— 模板題 AcWing 851. spfa求最短路
時間復雜度 平均情況下 O(m)O(m),最壞情況下 O(nm)O(nm), nn 表示點數,mm 表示邊數
spfa判斷圖中是否存在負環 —— 模板題 AcWing 852. spfa判斷負環
時間復雜度是 O(nm), n 表示點數,m 表示邊數
floyd算法 —— 模板題 AcWing 854. Floyd求最短路
初始化:for (int i = 1; i <= n; i ++ )for (int j = 1; j <= n; j ++ )if (i == j) d[i][j] = 0;else d[i][j] = INF;// 算法結束后,d[a][b]表示a到b的最短距離 void floyd() {for (int k = 1; k <= n; k ++ )for (int i = 1; i <= n; i ++ )for (int j = 1; j <= n; j ++ )d[i][j] = min(d[i][j], d[i][k] + d[k][j]); }什么圖一定包含歐拉回路?
B 樹和紅黑樹的區別是什么?
歐拉回路和哈密爾頓回路有啥區別
都是平衡的。 然后B+樹的高度是log_m的。 一個結點保存更多元素 因此對磁盤操作友好
操作系統:解釋操作系統的文件、鏈接,什么是抖動?
l 交流環節
數據結構:決策樹相關知識問的非常多,因為涉及到現在廣泛應用的機器學習基礎算法
項目交流:
項目整體介紹
l 項目創新點、項目來源、項目的效益
l 項目負責部分,采用了什么技術實現的,所寫代碼量,與現有類似系統相比的有什么優勢
l 然后老師會就你負責的部分深入問,比如你說采用了技術老師反問現在用**比較多為什么不用,一系列的問題問道啞口無言未知
論文交流:
(1)論文第幾作者;
(2)論文中負責哪幾部分;
(3)論文發表的期刊的性質(中文核心、SCI、EI、國家級、省級等);
(4)有沒有通訊作者(指導老師),若有老師給予你們什么幫助;
(5)論文發表的意義或者說為什么要發表這篇論文;
軟著交流:此部分涉及的比較少,一般問在軟著中第幾位、軟著的代碼量、申請軟著中你擔任了什么角色此部分一般和項目交流結合。
操作系統
線程和進程的區別
進程的通信方式
直接通信方式
間接通信方式(郵箱通信方式)
管道連接讀進程和寫進程實現他們通信的共享文件。(是共享存儲的優化與發展,存儲空間到緩沖區,可以實現一邊讀一遍寫)
I/O系統的層次結構
1.用戶層I/O軟件
實現與用戶的交互,用戶可以直接調用此層提供的接口、函數等;
2.設備獨立性軟件
用于實現用戶程序和設備驅動器的統一接口、設備命名、設備保護以及設備分配和釋放等,同時為數據的傳輸提供必要的空間
3.設備驅動程序
與硬件直接相關,用于具體實現系統施加給硬件設備的指令
4.中斷處理程序
保護被中斷的CPU環境,轉入中斷處理程序,處理,返回恢復現場
虛擬存儲器的定義和特征
基于局部性原理,在程序裝入時,可以將程序的一部分裝入內存,而將其余部分留在外存,就可以啟動程序執行。在程序執行過程中,當所訪問的信息不在內存時,由操作系統將所需要的部分調入內存,然后繼續執行程序。另一方面,操作系統將內存中暫時不使用的內容換出到外存上,從而騰出空間存放將要調入內存的信息。這樣,系統好像為用戶提供了一個比實際內存 大得多的存儲器,稱為虛擬存儲器。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LaqC7Ybw-1626070952001)(C:%5CUsers%5Cpxlsdz%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20201229182347967.png)]
為什么說分段系統較之分頁系統更易于實現信息共享和保護?
A.對于分頁系統,每個頁面是分散存儲的,為了實現信息共享和保護,則頁面之間需要一一對應起來,為此需要建立大量的頁表項;
B.而對于分段系統,每個段都從0開始編址,并采用一段連續的地址空間,這樣在實現共享和保護時,只需為所要共享和保護的程序設置一個段表項,將其中的基址與內存地址一一對應起來即可.
其他
在數據中查找異常值的方法
這個原則有個條件:數據需要服從正態分布。在3?原則下,異常值如超過3倍標準差,那么可以將其視為異常值。
四分位距(IQR)就是上四分位與下四分位的差值。而我們通過IQR的1.5倍為標準,規定:超過**(上四分位+1.5倍IQR距離,或者下四分位-1.5倍IQR距離)**的點為異常值。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-qLKtVeic-1626070952002)(C:%5CUsers%5Cpxlsdz%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20201229182357739.png)]
LSTM
由于在誤差反向傳播時,算出來的梯度會隨著往前傳播而發生指數級的衰減或放大!而且這是在數學上板上釘釘的事情。因此,**RNN****的記憶單元是短時的。
計一個全新的、可以解決梯度爆炸消失問題從而記住長距離依賴關系的神經網絡。
input gate 決定了對輸入的數據做哪些處理,forget gate 決定了哪些知識被過濾掉,無需再繼續傳遞,而 output gate 決定了哪些知識需要傳遞到下一個時間序列。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EcdWlPEF-1626070952003)(%E4%B8%93%E4%B8%9A%E9%97%AE%E9%A2%98_md_files/image_20200717140940.png?v=1&type=image&token=V1:xFVbt772xm4VIXnq0ZIOVRXoGy9X5rCXjU4CUYqmlGc)]
二項分布的前提是什么
回歸分析的應用場景
數據庫數據模型的組成
1.數據模型通常由數據結構、數據操作和數據的完整性約束條件三部分組成。
2.數據結構:數據結構描述數據庫的組成對象以及對象之間的聯系。
3.數據操作:數據操作是指對數據庫中各種對象(型)的實例(值)允許執行的操作的集合,包括操作及有關的操作規則。(增刪改查)
4.完整性約束條件:數據的完整性約束條件是一組完整性規則
操作系統原理課程里面有很多數據結構的實現,部分歸納總結如下:
鏈表
- 進程管理-PCB的連接
- 外存分配方式-鏈接分配
隊列
- 進程通信-消息隊列的實現
- 處理機調度-任務就緒列隊的實現
- 存儲器管理-Clock置換算法的實現(循環隊列)
棧
- 存儲器管理-LRU(Least Recently used)置換算法
樹
- 進程管理-進程家族關系描述:進程樹
散列表
- 內存管理-連續分配方式:Hash算法
- 文件管理-hash文件
計算機的啟動過程?
開機上電–>系統自檢(POST)–>運行主引導記錄–>裝載操作系統–>運行操作系統–>進入桌面
- 開機上電和系統自檢與硬件設備有關
- 運行主引導記錄,裝載操作系統和運行操作系統與操作系統有關
- 進入桌面與應用軟件有關
一、先驗概率
1.1 定義
直觀理解,所謂“先”,就是在事情之前,即在事情發生之前事情發生的概率。是根據以往經驗和分析得到的概率。
1.2 例子
比如拋硬幣,我們都認為正面朝上的概率是0.5,這就是一種先驗概率,在拋硬幣前,我們只有常識。這個時候事情還沒發生,我們進行概率判斷。所謂的先驗概率是對事情發生可能性猜測的數學表示。
二、后驗概率
1.1 定義
事情已經發生了,事情發生可能有很多原因,判斷事情發生時由哪個原因引起的概率。
貝葉斯定理
概率是基于基于已有經驗(背景信息)的更新
貝葉斯公式所討論的事:我們的假設在現有證據下成立的概率
先驗概率:在目前信息獲得前/沒有任何信息情況下(僅有背景信息),假設的成立概率
似然概率:假設成立的情況下,看到證據的概率(假設成立的空間<樣本總數*先驗概率>中,包含證據的比例)
后驗概率:分子–我們看見的信息 | 分母–所有的信息
多態
不同對象對消息做出的不同的表現
相位(虛部)、頻率(實部)
傅里葉變化就是去摘,根據標準正交基的含義。
spring 核心:IOC(控制反轉:依賴注入)和AOP(面向切面編程),IOC中最基本的技術就是“反射(Reflection)”編程,通俗來講就是根據給出的類名來動態地生成對象。這種編程方式可以讓對象在生成時才決定到底是哪一種對象。
編譯型:先將源代碼編譯成目標語言之后通過連接程序連接到生成的目標程序進行執行,例如C++。
解釋型:由解釋器根據輸入的數據當場執行而不生成任何的目標程序,例如python。
混合型:兩種語言的特征都存在,典型的就是Java。
c和c++,java的區別?
c是純過程,c++是對象加過程,java是純面向對象的
java的特點?
一次編譯到處運行,沒有指針,完全對象化。
后面就是專業面試:首先一個老師根據我的簡歷上的java web項目,問了我一下接口和抽象類的作用。然后又問了我TCP和UDP的區別;別的老師又問了我數據庫的ACID屬性;數學中距離的概念等等。
一、原子性(atomicity)
一個事務要么全部提交成功,要么全部失敗回滾,不能只執行其中的一部分操作,這就是事務的原子性
二、一致性(consistency)
事務的執行不能破壞數據庫數據的完整性和一致性,一個事務在執行之前和執行之后,數據庫都必須處于一致性狀態。
如果數據庫系統在運行過程中發生故障,有些事務尚未完成就被迫中斷,這些未完成的事務對數據庫所作的修改有一部分已寫入物理數據庫,這是數據庫就處于一種不正確的狀態,也就是不一致的狀態
三、隔離性(isolation)
事務的隔離性是指在并發環境中,并發的事務時相互隔離的,一個事務的執行不能不被其他事務干擾。不同的事務并發操作相同的數據時,每個事務都有各自完成的數據空間,即一個事務內部的操作及使用的數據對其他并發事務時隔離的,并發執行的各個事務之間不能相互干擾。
四、持久性(durability)
一旦事務提交,那么它對數據庫中的對應數據的狀態的變更就會永久保存到數據庫中。–即使發生系統崩潰或機器宕機等故障,只要數據庫能夠重新啟動,那么一定能夠將其恢復到事務成功結束的狀態
歐氏距離
曼哈頓距離
切比雪夫距離
閔可夫斯基距離(Minkowski Distance)
馬氏距離(Mahalanobis Distance)
夾角余弦(Cosine)
皮爾遜系數的定義:
兩個變量之間的皮爾遜相關系數定義為兩個變量之間的協方差和標準差的商:
比如簡述虛擬地址的轉換吶、靜態變量有什么特征吶、如何在64位的操作系統中聲明一個64位的int(long long)吶等等
頁號+頁內偏移,TLB或頁表取出物理塊號
(1)它占據一個永久性的存儲單元。隨著文件的存在而存在。
(2)靜態局部變量是在編譯時賦初值,在程序執行期間,一旦存儲單元中 的值改變,就不會再執行賦初值的語句。未賦初值的變量其值為0。
- **編譯型語言 用專用的編譯器,針對特定的操作系統,將高級語言一次性翻譯成機器可執行的二進制機器碼,如C語言、C++
- 解釋型語言 用專門的解釋器對源程序解釋成特定平臺的機器碼并立即執行,效率低,不能脫離解釋器運行,跨平臺容易,如Python(同時也是腳本語言)與Ruby等
- 腳本語言 程序代碼即是最終的執行文件,過程需要解釋器,如JavaScript,Python,shell等**
總結
- 上一篇: 激活码是什么
- 下一篇: 解决打开虚拟机 VMware Works