版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、從網(wǎng)上找到一份人人網(wǎng)JAVA的筆試題,做了一下,受益匪淺,貼出來,個(gè)人水平有限,歡迎各位留言討論。 JAVA 筆試題【填空題】java面向?qū)ο蟮娜筇卣魇牵篲,_,_.答:封裝,繼承,多態(tài)。sleep()和wait()的區(qū)別是_.答:(1)sleep()不釋放對象鎖,wait()釋放對象鎖。(2)sleep()可以在時(shí)間未到時(shí)被打斷,拋出異常,所以需要捕獲異常,wait不需要捕獲異常。(3)sleep()是Thread類的方法,wait()是Object類的方法。一個(gè)類被JVM回收的標(biāo)志是_.答:類未被其他的活動(dòng)類引用。重寫JAVA equals方法,需要同時(shí)重寫:_.答:hashCode方法
2、。這是JAVA的常規(guī)約定,如果不重寫hashCode,使用HashMap,HashSet等類時(shí)會(huì)出現(xiàn)錯(cuò)誤。調(diào)用equals()方法比較兩個(gè)對象的時(shí)候,編譯器會(huì)自動(dòng)調(diào)用hashCode()來比較兩個(gè)對象是否產(chǎn)生相同的整數(shù)結(jié)果.equals()返回true,則hashCode()必返回true.equals()返回false,則hashCode()必返回false.那么重寫equals()方法,肯定必須重寫hashCode方法來保證二者的同步.String, StringBuilder, StringBuffer的區(qū)別:_.答:String保存字符串常量,字符串的每次變化都會(huì)產(chǎn)生一個(gè)新的字符串對象
3、。StringBuilder和StringBuffer都是可以變化而不產(chǎn)生新的對象的。其中,StringBuffer是線程安全的,StringBuilder是線程不安全的。增加數(shù)據(jù)表一列的SQL語法:_.答:alter table add 列.JSP的內(nèi)置對象及方法request,_,_,_.(常用三個(gè)即可)答:response,session,out,page,application,exception,pageContext,config.List,Set,Map是否繼承自Collection接口:_.答:List和Set 是的,Map不是。數(shù)據(jù)庫事務(wù)特征_,_,_,_.答:ACID,原子
4、性,一致性,隔離性,持久性。針對10,100,32,45,58,126,3,29,200,400,0利用除商留余法構(gòu)造長度為13的數(shù)據(jù)的HASH:_.答:全部除以25再取余數(shù),再連到一起?結(jié)果是:1007208134000.也可能最后再M(fèi)OD一個(gè)10000000000000,題意沒有讀懂?!具x擇題】已知:Integer i=new Integer(42);Long l=new Long(42);Double d=new Double(42.0);下面哪些選項(xiàng)返回結(jié)果為true:A.(i=l)B.(i=d)C.(d=l)D.(i.equals(d)E.(d.equals(l)F.(i.equal
5、s(l)G.(l.equals(42L)答:ABC顯然是錯(cuò)的,=比較的是兩個(gè)對象的地址。Long 和 Double之間,Integer 和 Double之間都是不能自動(dòng)轉(zhuǎn)化的。但是Long和Integer之間可以自動(dòng)轉(zhuǎn)化,所以,F(xiàn)和G是正確的。關(guān)于用abstract定義的類,下列說法正確的是() 可以被實(shí)例化 B.不能夠派生子類 C.不能被繼承 D.只能被繼承 E.能夠被抽象類繼承答:概念題,DE是正確的。當(dāng)線程A使用某個(gè)對象,而此對象又需要線程B修改后才能符合A線程的需要,這時(shí)線程A就要等待線程B完成修改工作,這種現(xiàn)象稱為() 線程的同步 B.線程的互斥 C.線程的調(diào)度 D.線程的就緒答:概
6、念題,C。在JAVA程序中定義一個(gè)類,類中有一個(gè)沒有訪問權(quán)限修飾的方法,則此方法()A 類外的任何方法都能訪問它B 類外的任何方法都不能訪問它C 類的子類和同包類能訪問它D 只有類和同包類才能訪問它答:概念題,D。有如下程序代碼,在執(zhí)行完后x和y的值是多少()Int x=8,y=2,z;x=+x*y;z=x/y+;x=16,y=2. X=16,y=4. X=18,y=2. X=18,y=3.答:D,不解釋。【問答題】int i=0;i=i+;以上操作中i=i+;是線程安全的嗎?如果不安全請說明上面操作在JVM中執(zhí)行過程,為什么不安全?并且說出JDK中哪個(gè)類能達(dá)到以上程序的效果,并且是線程安全而
7、且高效,并簡述其原理。答:不是線程安全的。JVM中,賦值語句的執(zhí)行過程是,先把賦值號右邊的值存入一個(gè)棧中,再從棧中彈出到賦值號左邊的變量中。所以,在執(zhí)行i=i+后i的值為0。但是如果在多線程的環(huán)境下執(zhí)行i=i+,線程A中執(zhí)行到把i壓入棧,而在此之前線程B中執(zhí)行到把i+,那么棧中i的值就已經(jīng)改變了,最后線程A執(zhí)行彈棧的操作,那么i的值就不是0了,所以是線程不安全的。AtomicInteger中提供了線程安全且高效的原子操作。其底層的原理是利用處理器的CAS(比較并交換)操作來檢測棧中的值是否被其他線程改變,如果被改變則CAS操作失敗。這種實(shí)現(xiàn)方法比用sycronized來實(shí)現(xiàn)同步,底層顯然有著更
8、高的執(zhí)行效率。 2.數(shù)組intn a=1,2,2,數(shù)組a滿足以下條件,均為正整數(shù),ai+1=ai快速找出滿足ai=i的數(shù)。答:這道題大家都沒有想出O(logn)的算法,只好從常數(shù)上優(yōu)化。可以看出的一個(gè)性質(zhì)是數(shù)組下標(biāo)每次都是固定地增加1,所以若aii,則接下來的ai-i-1個(gè)數(shù)一定不可能滿足ai=i;如果ai r) return -1; if (al = l) return l; if (ar = r) return r; int left_increment = Math.abs(al - l); int right_increment = Math.abs(ar - r); return f
9、ind(l + left_increment, r - right_increment); public static void main(String args) Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); str = string.split( ); for (int i = 0; i = r) return; int i = l - 1, j = r + 1; int mid = a(l + r) 1; while (i j) i+; j-; while (ai mid) j-
10、; if (i j) int t = ai; ai = aj; aj = t; quicksort(l, j); quicksort(j + 1, r); public static boolean fen_2(int t) int l = 0, r = str.length - 1, mid; while (l 1; if (amid = t) return true; if (amid t) r = mid; return false; public static int find() for (int i = str.length - 1; i = 0; i-) for (int j =
11、 0; j i; j+) if (fen_2(ai - aj) return i; return -1; public static void main(String args) Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); str = string.split( ); for (int i = 0; i = r) return; int i = l - 1, j = r + 1; int mid = a(l + r) 1; while (i j) i+; j-; while (ai
12、mid) j-; if (i = 0; i-) int p = 0, q = i - 1; while (p ai) q-; continue; if (ap + aq ai) p+; continue; return i; return -1; public static void main(String args) Scanner scanner = new Scanner(System.in); String string = scanner.nextLine(); str = string.split( ); for (int i = 0; i str.length; i+) ai =
13、 Integer.parseInt(stri); quicksort(0, str.length - 1); int ff = find(); if (ff != -1) System.out.println(最大的ax為: + aff); else System.out.println(沒有在數(shù)組中找到滿足條件的數(shù)); 4.用JAVA掃描指定文件夾下面所有以.txt,.log結(jié)尾的文件,并將其絕對路徑輸出。答:主要考察遞歸遍歷文件夾以及獲取文件后綴名兩部分。簡要介紹一下你所熟悉的設(shè)計(jì)模式,并給自己假設(shè)一種應(yīng)用場景,并用程序?qū)⑵鋵?shí)現(xiàn),并指出如此設(shè)計(jì)的優(yōu)缺點(diǎn)(單實(shí)例模式除外)答:proxy模式,
14、意圖為其他對象提供一種代理以控制對這個(gè)對象的訪問。優(yōu)點(diǎn): 向客戶端隱藏了訪問某個(gè)對象的細(xì)節(jié)及復(fù)雜性;可以動(dòng)態(tài)地調(diào)用一個(gè)對象中的方法,且無需實(shí)現(xiàn)固定的接口。在AOP編程中,可以利用proxy模式來實(shí)現(xiàn)核心代碼和日志代碼的分離。程序?qū)崿F(xiàn)如下:InterfaceCore接口:package erceptor;public interface InterfaceTarget public void docore();core類:package erceptor;public class Target implements InterfaceTarget
15、public void docore() System.out.println(核心代碼:我現(xiàn)在非常無聊!);MyLogger類:package erceptor;public class MyLogger public void before()System.out.println(無聊之前記一下);public void after()System.out.println(無聊之后又記一下);MyProxy類:package erceptor;import java.lang.reflect.Proxy;public class MyProx
16、y public Object getProxy(Object object)MyHandler myhandler=new MyHandler(object);return Proxy.newProxyInstance(object.getClass().getClassLoader(), object.getClass().getInterfaces(), myhandler);MyHandler類:package erceptor;import java.lang.reflect.InvocationHandler;import java.lang.reflect
17、.Method;public class MyHandler implements InvocationHandlerprivate Object object;private MyLogger logger = new MyLogger();public MyHandler(Object object)this.object=object;public Object invoke(Object proxy, Method method, Object args)throws Throwable Object result = null;logger.before();result = method.invoke(object, args);logger.after();return resu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版三角高炮合同
- 專項(xiàng)公共區(qū)域裝飾裝修工程承包協(xié)議2024一
- 2025年國際合同第六號生皮國際貿(mào)易稅務(wù)籌劃合同3篇
- 二零二五年度餐飲企業(yè)員工培訓(xùn)與職業(yè)發(fā)展規(guī)劃合同3篇
- 2024起重機(jī)安裝與運(yùn)輸安全保障服務(wù)合同3篇
- 2025年度柴油發(fā)電機(jī)組租賃與維修保養(yǎng)合同4篇
- 2024石材荒料電子商務(wù)平臺(tái)合作協(xié)議6篇
- 個(gè)性化商標(biāo)創(chuàng)作協(xié)議:2024版委托書版A版
- 2024版生鮮供應(yīng)合同范本
- 2024金融居間服務(wù)的終止與解除合同
- 上海紐約大學(xué)自主招生面試試題綜合素質(zhì)答案技巧
- 辦公家具項(xiàng)目實(shí)施方案、供貨方案
- 2022年物流服務(wù)師職業(yè)技能競賽理論題庫(含答案)
- ?;钒踩僮饕?guī)程
- 連鎖遺傳和遺傳作圖
- DB63∕T 1885-2020 青海省城鎮(zhèn)老舊小區(qū)綜合改造技術(shù)規(guī)程
- 高邊坡施工危險(xiǎn)源辨識及分析
- 中海地產(chǎn)設(shè)計(jì)管理程序
- 簡譜視唱15942
- 《城鎮(zhèn)燃?xì)庠O(shè)施運(yùn)行、維護(hù)和搶修安全技術(shù)規(guī)程》(CJJ51-2006)
- 項(xiàng)目付款審核流程(visio流程圖)
評論
0/150
提交評論