.net面試題
- 面試
- 關注:2.49W次
篇一:面試題
1:a=10,b=15,在不用第三方變數的前提下,把a,b的值互換
2:已知陣列int[] max={6,5,2,9,7,4,0};用快速排序演算法按降序對其進行排列,並返回陣列
3:請簡述面向物件的多型的特性及意義!
4:session喜歡丟值且佔記憶體,Cookis不安全,請問用什麼辦法代替這兩種原始的方法
5:對資料的併發採用什麼辦法進行處理較好。
6:已知Oracle資料庫有GD和ZS兩個資料庫,GD資料庫v_s表有資料寫入時,從v_s表中提取最新資料到ZS資料庫的D_E表中。請問用什麼辦法解決這一問題?如果又碰到不能互訪的問題時,又用什麼辦法解決?
7:已知Oracle資料庫a,b
現在在a使用者許可權下,訪問b資料庫sql語句為select a.* From b a,請改正這一句Sql的寫法
8:當對資料庫進行海量級的資料插入時,資料庫出現報錯,錯誤原因可能有哪些,以你的經驗談談你的解決辦法
9:演算法分析
AH 20060625 12 44 01 CAD001
AH 20060625 12 44 01 CAD001
AH 20060625 13 44 02 CAD001
AH 20060625 14 44 03 CAD001
說明:第二列表示日期,第三列表示溫度,第四列表示水位,第五列表示流量,第6列表示水位測站編碼,每一列表示一個欄位
很明顯第一條資料和第二條資料重複,然資料表中有主鍵和外來鍵的約束,是不允許有重複的資料存在的,請構造演算法將重複的資料Del掉
10:javascript演算法
已知a,b,現在點滑鼠a會向b遊動,滑鼠停,a會停下來
請實現"跑步演算法"
1、答案
a=a+b;
b=a-b;
a=a-b;
還有變態要求,需要程式碼最短呢。有兩個結果:
1) a^=b^(b^=a^b); // 13個位元組
2) a=b+(b=a)*0; // 11個位元組
2、答案(如果不限定演算法,其實可以直接用()方法的)
public class TestQuickSort {
private int[] array = null;
private void quickSort(int lowest, int highest) {
if (array == null || lowest < 0 || lowest >= highest
|| highest >= th) {
return;
}
int low = lowest;
int high = highest;
int key = low++;
for (; low <= high;) {
if (key < high) {
if (array[key] > array[high]) {
array[high] = array[key] + (array[key] = array[high]) * 0;
key = high;
}
high--;
}
if (key > low) {
if (array[key] < array[low]) {
array[low] = array[key] + (array[key] = array[low]) * 0;
key = low;
}
low++;
}
}
quickSort(lowest, key - 1);
quickSort(key + 1, highest);
}
/**
* @param args
*/
public static void main(String[] args) {
TestQuickSort test = new TestQuickSort();
int[] array = {6,5,2,9,7,4,0};
y = array;
kSort(0, th - 1);
int length = th;
for (int i = 0; i < length; i++) {
tln(y[i]);
}
}
}
不要用氣泡排序法很慢,選擇排序好些,但題意是快速排序演算法
快速排序演算法的基本思想:
快速排序的基本思想是基於分治策略的。對於輸入的子序列,如果規模足夠小則直接進行排序,否則分三步處理:
分解(Divide):將輸入的序列劃分成兩個非空子序列和aq+,使中任一元素的值不大於aq+中任一元素的值。
遞迴求解(Conquer):通過遞迴呼叫快速排序演算法分別對和aq+進行排序。
合併(Merge):由於對分解出的兩個子序列的排序是就地進行的,所以在和aq+都排好序後不需要執行任何計算就已排好序。
這個解決流程是符合分治法的基本步驟的。因此,快速排序法是分治法的經典應用例項之一。
演算法Quick_Sort的實現:
Pascal實現:
Procedure Quick_Sort(p,r:TPosition;var L:TList); {快速排序}
var
q:TPosition;
begin
if L[p..r]足夠小 then Sort(p,r,L) {若L[p..r]足夠小則直接對L[p..r]排序}
else
begin
q:=Partition(p,r,L); {將L[p..r]分解為L[p..q]和L[q+1..r]兩部分}
Quick_Sort(p,q,L); {遞迴排序L[p..q]}
Quick_Sort(q+1,r,L); {遞迴排序L[q+1..r]}
end;
end;
3、答案
面向物件的程式設計使用了派生繼承 以及虛擬函式機制.
一個本來指向基類的物件指標可以指向其派生類的.並訪問從基類繼承而來的成員變數和函式.
而虛擬函式是專門為這個特性設計的,這個函式在每個基類的派生類中都是同一個名字,但函式體卻並不一定相同,派生類往往為實現自己的功能而修改這個虛擬函式.這樣用一個指標就能夠實現對多種不同的派生類的訪問, 並實現其派生類的特定功能(程式碼 )....
4、答案
用VIEWSTATE
stateserver
5、答案
可以控制連線池的連線數量條件好的話 可以用負載平衡
6、答案
一箇中型或大型公司往往由地理上分散的部門所組成,這些部門通常需要進行資料共享。針對這些共享資料,可以將其儲存在某個站點上,需要的使用者都從這個站點上存取。這種方案的優點是資料的一致性容易保證,但其缺點也是很突出的,那就是該站點的負載大、網路負載大,遠端使用者的資料響應遲緩。資料複製技術可以有效地解決這個問題,它通過將這些共享資料複製到位於不同地點的多個數據庫中,從而實現資料的本地訪問,減少了網路負荷,並提高了資料訪問的效能,而且通過對資料庫中的資料定期同步(通常是每天晚上),從而確保了所有的使用者使用同樣的、最新的資料。該技術適用於使用者數量較大、地理分佈較廣、而且需要實時地訪問相同資料的應用模式。
資料複製的概念及特點
1、資料複製的`概念及分類
資料複製,就是將資料庫中的資料拷貝到另外一個或多個不同的物理站點上,從而保持源資料庫與目標資料庫中指定資料的一致性。
按照資料複製的實時性,資料複製可分為同步資料複製和非同步資料複製。同步資料複製是指將本地生產資料以完全同步的方式複製到異地,每一本地IO交易均需等待遠端複製的完成方予以釋放。非同步資料複製則是指將本地生產資料以後臺同步的方式複製到異地,每一本地IO交易均正常釋放,無需等待遠端複製的完成。同步複製實時性強,遠端資料與本地資料完全同步。但這種方式受頻寬影響較大,資料傳輸距離較短。非同步複製不影響本地交易,傳輸距離長,但其資料比本地資料略有延遲。在非同步複製環境中,對於所有應用最關鍵的就是要確保資料的一致性。
按照複製站點的型別,資料複製可分為多主控站點複製、物化檢視複製及混合複製。多主控站點複製也稱為對等站點複製,其中每個站點都是主控站點,都需要與其他站點進行資訊交流,各站點之間是平等的。物化檢視複製包含一個主控站點、一個或多個物化檢視站點,
物化檢視中的內容可以為目標主物件在某個時間點的全部拷貝或部分拷貝,其中目標主物件既可以是主控站點上的表也可以是物化檢視站點上的主物化檢視。混合複製包含多個主控站點和多個物化檢視站點,是主控站點複製和物化檢視複製的結合體,適合於複雜的業務情況。
2、資料複製的特點
資料複製通過在多個站點上建立備份,能夠提高資料的安全性,同時也提高了資料的可用性,這是因為如果一個站點出現了問題,使用者可以選擇其他站點繼續進行操作,應用系統還可繼續執行,從而資料複製提供了容錯保護機制。
然而資料複製最基本的功能是提高資料庫的效能。它通過將遠端資料庫中的資料複製到本地,使得應用能夠就近訪問資料,從而降低網路傳輸負載,提高效率。而且在資料複製系統中,可以提供多個站點之間的負載平衡,讓這幾個使用者使用這個伺服器,另外幾個使用者可以
使用其他的伺服器,以避免某些站點負載過重。
物化檢視還提供了按子集進行復制,這樣各站點就可只複製自己需要的資料,也能減輕網路的傳輸量。
資料複製的實現方法
在具體的實現之前,首先要做好設計與規劃。這就需要細緻分析具體的業務情況,設計出一套能夠滿足業務需要的方案。通常在設計過程中,需要確定出要建立的資料庫站點,各站點的型別,需要複製的資料物件,以及同步方式、衝突解決方案等內容。
在設計完成之後,就可具體來實現資料複製,實現主要包括以下幾步:
(1)建立複製站點
(2)建立組物件
(3)配置衝突解決方案
下面我們舉一個例子來說明各步具體需要完成的工作。在這個例子中我們採用多主控站點複製方式,設有兩個主控站點和兩個共享資料表。兩個主控站點分別為:處理站點(d)和解釋站點( rld);兩個資料表為測區( survey)和測線( line)。
STEP1 建立複製站點
(1)首先以SYSTEM身份登陸主站點資料庫dCONNECT system/d
(2)建立使用者—複製管理員,併為該使用者授權複製管理員負責複製站點的建立和管理,每個複製站點都必須建立複製管理員:
CREATE USER repadmin IDENTIFIED BY repadmin;
BEGIN
DBMS_REPCAT_T_ADMIN_ANY_SCHEMA (username => ’repadmin’);
END;
(3)為本站點指定傳播者
傳播者負責將本地最新更新的資料傳播到其他站點上:
BEGIN
DBMS_DEFER_STER_PROPAGATOR (username => ’repadmin’);
END;
(4)為本站點指定接收者
接收者負責接收其他站點上的傳播者傳送過來的
- 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/zh-tw/flzc/mianshi/y05ep.html