面试 小总结
52.sleep() 和 wait() 有什么區(qū)別?
答:
sleep()方法是將當(dāng)前線程掛起指定的時(shí)間。
wait()釋放對(duì)象上的鎖并阻塞當(dāng)前線程,直到它重新獲取該鎖。
53.short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?
答:short s1 = 1; s1 = s1 + 1;有錯(cuò),s1是short型,s1+1是int型,不能顯式轉(zhuǎn)化為short型。可修改為s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。
54.談?wù)刦inal, finally, finalize的區(qū)別。
答:
final-修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此 一個(gè)類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們?cè)谑褂弥?不被改變。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為 final的方法也同樣只能使用,不能重載
finally-再異常處理時(shí)提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì) 執(zhí)行,然后控制就會(huì)進(jìn)入 finally 塊(如果有的話)。
finalize-方法名。Java 技術(shù)允許使用 finalize() 方法在垃圾收集器將對(duì)像從內(nèi)存中清除出去之前做必要的清理 工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在 Object 類中定義的 ,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對(duì)像之前對(duì)這個(gè)對(duì)象調(diào)用的。
?
57.進(jìn)程和線程的區(qū)別?
答:進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的單位;
線程是CPU調(diào)度和分派的單位,一個(gè)進(jìn)程可以有多個(gè)線程,這些線程共享這個(gè)進(jìn)程的資源。
58.堆和棧的區(qū)別?
答:堆是程序運(yùn)行期間動(dòng)態(tài)分配的內(nèi)存空間,你可以根據(jù)程序的運(yùn)行情況確定要分配的堆內(nèi)存的大小
棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;
59.成員變量和成員函數(shù)前加static的作用?
答:它們被稱為常成員變量和常成員函數(shù),又稱為類成員變量和類成員函數(shù)。分別用來反映類的狀態(tài)。比如類成員變量可以用來統(tǒng)計(jì)類實(shí)例的數(shù)量,類成員函數(shù)負(fù)責(zé)這種統(tǒng)計(jì)的動(dòng)作。
60.ASP.NET與ASP相比,主要有哪些進(jìn)步?
答:asp解釋形,aspx編譯型,性能提高,可以跟美工的工作分開進(jìn)行,更有利于團(tuán)隊(duì)開發(fā)。
61.產(chǎn)生一個(gè)int數(shù)組,長度為100,并向其中隨機(jī)插入1-100,并且不能重復(fù)。
int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
{
int num=rnd.Next(1,101);
if(!myList.Contains(num))
myList.Add(num);
}
for(int i=0;i<100;i++)
intArr[i]=(int)myList[i];
62.請(qǐng)說明在.net中常用的幾種頁面間傳遞參數(shù)的方法,并說出他們的優(yōu)缺點(diǎn)。
- ? ? ? session(viewstate) 簡(jiǎn)單,但易丟失
- application 全局
- cookie 簡(jiǎn)單,但可能不支持,可能被偽造
- url參數(shù) 簡(jiǎn)單,顯示于地址欄,長度有限
- 數(shù)據(jù)庫 穩(wěn)定,安全,但性能相對(duì)弱
63.請(qǐng)指出GAC的含義?
答:全局程序集緩存。
64.向服務(wù)器發(fā)送請(qǐng)求有幾種方式?
答:get,post。
- get一般為鏈接方式,
- post一般為按鈕方式。
2. getParameter與 getAttribute的區(qū)別?
參考答案:
- Attribute是指屬性。
- Parameter是指參數(shù),由URL傳入或由FORM提交的內(nèi)容
3.以下哪一個(gè)不是賦值符號(hào)?
A. +=
B. <<=
C. <<<=
D. >>>=
?
?
?
參考答案:
- A.很明顯是賦值符號(hào)
- B.<<=左移賦值
- C.不是
- D.>>>= 右移賦值,左邊空出的位以0填充
65.DataReader與Dataset有什么區(qū)別?
答:一個(gè)是只能向前的只讀游標(biāo),一個(gè)是內(nèi)存中的表。
66.軟件開發(fā)過程一般有幾個(gè)階段?每個(gè)階段的作用?
答:需求分析,架構(gòu)設(shè)計(jì),代碼編寫,QA,部署
67.在c#中using和new這兩個(gè)關(guān)鍵字有什么意義,請(qǐng)寫出你所知道的意義?using 指令 和語句 new 創(chuàng)建實(shí)例 new 隱藏基類中方法。
答:using 引入名稱空間或者使用非托管資源
new 新建實(shí)例或者隱藏父類方法
68.需要實(shí)現(xiàn)對(duì)一個(gè)字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續(xù)空格的話,僅保留一個(gè)空格,即允許字符串中間有多個(gè)空格,但連續(xù)的空格數(shù)不可超過一個(gè).
答:string inputStr=" xx xx ";
? ? ? inputStr = Regex.Replace(inputStr.Trim(), @"\s+", " ");
69.下面這段代碼輸出什么?為什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
答:不相等,因?yàn)楸容^的是對(duì)像
70.什么叫做SQL注入,如何防止?請(qǐng)舉例說明。
答:利用sql語言漏洞獲得合法身份登陸系統(tǒng)。如身份驗(yàn)證的程序設(shè)計(jì)成:
SqlCommand com=new SqlCommand("Select * from users where username='"+t_name.text+"' and pwd='"+t_pwd.text+"'");
object obj=com.ExcuteScale();
if(obj!=null)
? {
??? //通過驗(yàn)證
? }
這段代碼容易被sql注入。如用戶在t_name中隨便輸入,在t_pwd中輸入1'?or 1='1? 就可以進(jìn)入系統(tǒng)了。
71.什么是反射?
答:動(dòng)態(tài)獲取程序集信息
72.用Singleton如何寫設(shè)計(jì)模式
答:static屬性里面new ,構(gòu)造函數(shù)private
73.什么是Application Pool?
答:Web應(yīng)用,類似Thread Pool,提高并發(fā)性能。
74.什么是虛函數(shù)?什么是抽像函數(shù)?
答:虛函數(shù):可由子類繼承并重寫的函數(shù)。
抽像函數(shù):規(guī)定其非虛子類必須實(shí)現(xiàn)的函數(shù),必須被重寫。
75.什么是XML?
答:XML即可擴(kuò)展標(biāo)記語言。
eXtensible Markup Language.標(biāo)記是指計(jì)算機(jī)所能理解的信息符號(hào),通過此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種信息的文章等。如何定義這些標(biāo)記,即可以選擇國際通用的標(biāo)記語言,比如HTML,也可以使用象XML這樣由相關(guān)人士自由決定的標(biāo)記語言,這就是語言的可擴(kuò)展性。XML是從SGML中簡(jiǎn)化修改出來的。它主要用到的有XML、XSL和XPath等。
?
78.列舉一下你所了解的XML技術(shù)及其應(yīng)用
答:xml用于配置,用于保存靜態(tài)數(shù)據(jù)類型.接觸XML最多的是web Services..和config,soap協(xié)議
79.ADO.net中常用的對(duì)象有哪些?分別描述一下。
答:Connection 數(shù)據(jù)庫連接對(duì)像
Command 數(shù)據(jù)庫命令
DataReader 數(shù)據(jù)讀取器
DataSet 數(shù)據(jù)集
80.什么是code-Behind技術(shù)。
答:ASPX,RESX和CS三個(gè)后綴的文件,這個(gè)就是代碼分離.實(shí)現(xiàn)了HTML代碼和服務(wù)器代碼分離.方便代碼編寫和整理.
?
83.XML 與 HTML 的主要區(qū)別
答:1. XML是區(qū)分大小寫字母的,HTML不區(qū)分。?
2. 在HTML中,如果上下文清楚地顯示出段落或者列表鍵在何處結(jié)尾,那么你可以省略</p>或者</li>之類的結(jié)束 標(biāo)記。在XML中,絕對(duì)不能省略掉結(jié)束標(biāo)記。?
3. 在XML中,擁有單個(gè)標(biāo)記而沒有匹配的結(jié)束標(biāo)記的元素必須用一個(gè) / 字符作為結(jié)尾。這樣分析器就知道不用 查找結(jié)束標(biāo)記了。?
4. 在XML中,屬性值必須分裝在引號(hào)中。在HTML中,引號(hào)是可用可不用的。?
5. 在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應(yīng)的值。
84.c#中的三元運(yùn)算符是?
答:?:。
?
86.類成員有_____種可訪問形式?
答:this.;new Class().Method;
87.public static const int A=1;這段代碼有錯(cuò)誤么?是什么?
答:const不能用static修飾。
88.float f=-123.567F; int i=(int)f;i的值現(xiàn)在是_____??
答:-123。
89.委托聲明的關(guān)鍵字是______?
答:delegate.
?
91.在Asp.net中所有的自定義用戶控件都必須繼承自________?
答:Control。
?
93.在.Net托管代碼中我們不用擔(dān)心內(nèi)存漏洞,這是因?yàn)橛辛薩_____?
答:GC。
94.下面的代碼中有什么錯(cuò)誤嗎?_______
using System;
class A{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A{
public abstract override void F(); 答:abstract override 是不可以一起修飾.?
} // new public abstract void F();
95.當(dāng)類T只聲明了私有實(shí)例構(gòu)造函數(shù)時(shí),則在T的程序文本外部,___可以___(可以 or 不可以)從T派生出新的類,不可以____(可以 or 不可以)直接創(chuàng)建T的任何實(shí)例。
答:不可以,不可以。
96.下面這段代碼有錯(cuò)誤么?
switch (i){
case(): 答://case()條件不能為空
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault; 答://wrong,格式不正確
CaseTwo();
break;
}
97.在.Net中,類System.Web.UI.Page 可以被繼承么?
答:可以。
?
104.某一密碼僅使用K、L、M、N、O共5個(gè)字母,密碼中的單詞從左向右排列,密碼單詞必須遵循如下規(guī)則:
(1) 密碼單詞的最小長度是兩個(gè)字母,可以相同,也可以不同
(2) K不可能是單詞的第一個(gè)字母
(3) 如果L出現(xiàn),則出現(xiàn)次數(shù)不止一次
(4) M不能使最后一個(gè)也不能是倒數(shù)第二個(gè)字母
(5) K出現(xiàn),則N就一定出現(xiàn)
(6) O如果是最后一個(gè)字母,則L一定出現(xiàn)
問題一:下列哪一個(gè)字母可以放在LO中的O后面,形成一個(gè)3個(gè)字母的密碼單詞?
A) K B)L C) M D) N
答案:B
問題二:如果能得到的字母是K、L、M,那么能夠形成的兩個(gè)字母長的密碼單詞的總數(shù)是多少?
A)1個(gè) B)3個(gè) C)6個(gè) D)9個(gè)
答案:A
問題三:下列哪一個(gè)是單詞密碼?
A) KLLN B) LOML C) MLLO D)NMKO
答案:C
8. 62-63=1 等式不成立,請(qǐng)移動(dòng)一個(gè)數(shù)字(不可以移動(dòng)減號(hào)和等于號(hào)),使得等式成立,如何移動(dòng)?
答案: 62移動(dòng)成26
?
105.對(duì)于這樣的一個(gè)枚舉類型:
enum Color:byte{
Red,
Green,
Blue,
Orange
}
答:string[] ss=Enum.GetNames(typeof(Color));
byte[] bb=Enum.GetValues(typeof(Color));
106. C#中 property 與 attribute的區(qū)別,他們各有什么用處,這種機(jī)制的好處在哪里?
答:attribute:自定義屬性的基類;
property :類中的屬性
?
109.寫一個(gè)HTML頁面,實(shí)現(xiàn)以下功能,左鍵點(diǎn)擊頁面時(shí)顯示“您好”,右鍵點(diǎn)擊時(shí)顯示“禁止右鍵”。并在2分鐘后自動(dòng)關(guān)閉頁面。
答:<script ***script>
setTimeout('window.close();',3000);
function show(){
if (window.event.button == 1){
alert("左");
}
else if (window.event.button == 2){
alert("右");
}
}
</script>
110.大概描述一下ASP.NET服務(wù)器控件的生命周期
- 初始化
- 加載視圖狀態(tài)
- 處理回發(fā)數(shù)據(jù)
- 加載
- 發(fā)送回發(fā)更改通知
- 處理回發(fā)事件
- 預(yù)呈現(xiàn)
- 保存狀態(tài)
- 呈現(xiàn)
- 處置
- 卸載
111.Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)?
答:不能,可以實(shí)現(xiàn)接口
?
113.,&和&&的區(qū)別。
- &是位運(yùn)算符,表示按位與運(yùn)算,
- &&是邏輯運(yùn)算符,表示邏輯與(and).
114.HashMap和Hashtable的區(qū)別。
答:HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了Map接口,
主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable.
115.short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)?
答:short s1 = 1; s1 = s1 + 1; (s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類型)
short s1 = 1; s1 += 1;(可以正確編譯)
116.Overloaded的方法是否可以改變返回值的類型?
答:Overloaded的方法是可以改變返回值的類型。
117.error和exception有什么區(qū)別?
答:error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。
118.<%# %> 和 <% %> 有什么區(qū)別?
答:<%# %>表示綁定的數(shù)據(jù)源
<% %>是服務(wù)器端代碼塊
?
120.重載與覆蓋的區(qū)別?
答:1、方法的覆蓋是子類和父類之間的關(guān)系,是垂直關(guān)系;
?方法的重載是同一個(gè)類中方法之間的關(guān)系,是水平關(guān)系
? ? ? 2、覆蓋只能由一個(gè)方法,或只能由一對(duì)方法產(chǎn)生關(guān)系;
?方法的重載是多個(gè)方法之間的關(guān)系。
? ? ? 3、覆蓋要求參數(shù)列表相同;
? ? ? ? ? ?重載要求參數(shù)列表不同。
? ? ? 4、覆蓋關(guān)系中,調(diào)用那個(gè)方法體,是根據(jù)對(duì)象的類型(對(duì)像對(duì)應(yīng)存儲(chǔ)空間類型)來決定;
? ? ? ? ? ?重載關(guān)系,是根據(jù)調(diào) 用時(shí)的實(shí)參表與形參表來選擇方法體的。
125.分析以下代碼。
public static void test(string ConnectString){
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();?
conn.ConnectionString = ConnectString;?
try{?
conn.Open();?
…….?
}catch(Exception Ex)?{?
MessageBox.Show(Ex.ToString());?
}finally?{
if (!conn.State.Equals(ConnectionState.Closed))?
conn.Close();?
}?
}
請(qǐng)問
1)以上代碼可以正確使用連接池嗎?
答:回答:如果傳入的connectionString是一模一樣的話,可以正確使用連接池。不過一模一樣的意思是,連字符的空格數(shù),順序完全一致。
?
?
128.在下面的例子里
using System;
class A{
public A(){
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A{
int x=1;
int y;
public B(){
y=-1;
}
public override void PrintFields(){
Console.WriteLine("x={0},y={1}",x,y);
}
當(dāng)使用new B()創(chuàng)建B的實(shí)例時(shí),產(chǎn)生什么輸出?
答:X=1,Y=0
129.下面using System
class A{
public static int X;
static A(){
X=B.Y+1;
}
}
class B{
public static int Y=A.X+1;
static B(){}
static void Main(){
Console.WriteLine("X={0},Y={1}",A.X,B.Y);
}
}
產(chǎn)生的輸出結(jié)果是什么?
答:x=1,y=2
轉(zhuǎn)載于:https://www.cnblogs.com/zhaozhaozhang/p/5819914.html
總結(jié)
- 上一篇: UITableviewcell重用机制以
- 下一篇: 【SSH网上商城项目实战20】在线支付平