PPTV合集

1、給定一個方法f();這個方法一次可以排序5個數,給定25個無序的數,怎麼只用這個方法從這25個數中選出前4個,最少要調用幾次這個方法?


2.如果有兩條單向鏈表,怎麼判斷這兩條鏈表是否相交?要找出第一個相交的節點該怎麼做?

兩個鏈表都遍歷一遍就行了,比較最後一個節點是否同一個對象就知道是否相交了。

先取得兩條鏈表的長度l1,l2,長的那一條鏈表從(假設他的長度是l1)l1-l2個位置開始遍歷,短的從頭遍歷,在一個循環裏同時遍歷,從上面那個圖也可以看出來兩個鏈表只要從同一個位置開始向遍歷就一定能找到相交的節點


3.如果有1萬條用戶觀看pptv的時間記錄數據,數據的格式是
用戶名 開始時間 結束時間 平臺
user1 13:05 13:08 PC
user1 13:06 13:09 Iphone
user1 13:09 13:12 android
user1 13:13 13:15. ipad
.....
要合併1小時內的數據 比如 這幾條數據就可以合爲13:05 --- 13:12 13:13-----13:15


解法見usaco 1.2 milk2

4.有一個字符串:"Today Is SunDay",要把每個字符串逆序,並且大寫字母的位置不變,比如這個字符串逆序後就是:"Yadot Si YadNus",不能用jdk提供的大小寫轉化/排序功能


5.下面2段代碼執行結果是什麼:
1、

File f = new File("a.txt");
String s = "hello";
FileOutputStream fos = new FileOutputStream(f);
f.write(s.getBytes());
2、
File f = new File("a.txt");
String s = "hello";
FileWriter fw = new FileWriter(f)
f.write(s);
字節流是可以不用關閉的,可以寫入文件,字符流沒有內容沒有清空流


6.後臺怎麼推送消息到前臺(就是消息提醒,類似百度貼吧有回帖時的提醒)

(1)ajax輪詢
(2)把用戶的請求掛起,等有消息了再返回。省去了客戶端和服務器端連接的過程了


7.一個算術表達式比如 (1+2) * (3-6)可以化成一個二叉樹



怎麼還原成這個算術表達式


電話面試(阿里2014春招)

一、java基礎部分
1、HashMap和hashSet可以有重複元素麼? (不可以)
2、HashMap可以以自定義對象爲key麼? (要看是否重寫hashCode和equals方法)
3、哪一種map遍歷時可以按照插入的順序輸出? (LinkedHashMap)
4、Object類的方法有哪些(wait,notify,toString,notifyAll,equals,hashCode,不知道還有其他的麼··)
5、遍歷map的方法(我說了兩種,1.取得keySet,遍歷keySet再取得map的value。2.取得entrySet,遍歷得到entry就可以得到key和value)
6、statement 和 preparedStatement的區別(preparedStatement是預編譯sql,可以使用佔位符,且可以防止sql注入攻擊,效率更高點)
7、你瞭解preparedStatement的緩存機制麼?(不瞭解··)
8、preparedStatement的佔位符索引從幾開始(從1開始 )
9、你瞭解java中的classloader麼(jvm自有的類加載器有bootstrap classloader, 負責加載java基礎類,主要是 %JRE_HOME/lib/ 目錄下的rt.jar、resources.jar、charsets.jar和class等,ExtClassloader負責加載java擴展類,主要是 %JRE_HOME/lib/ext 目錄下的jar和class,AppClassloader負責加載當前java應用的classpath中的所有類。)

10、你瞭解jdk中的concurrent包麼? (jdk5以後提供的一個多線程同步工具包,提供Lock接口做到顯式的加鎖,釋放鎖,提供Condition類實現線程間通信)
11、如果一個Condition對象沒有綁定一個Lock,能否調用他的await方法(不知道···估計是不能吧)
12、jvm內存中堆和棧的區別(堆中存放對象,棧中存放引用··)
13、對於java中的異常處理你有什麼見解(···以前看過一個異常框架的設計,貌似是要設計一個頂層異常,然後把其他的異常轉化成這個異常再向上拋出··)
14、java的垃圾回收機制你瞭解多少(jvm會啓動一個垃圾回收線程 不定時的回收不再有引用的垃圾對象··)
15、你瞭解新生代和老生代麼?(jvm內存可劃分爲三塊,新生代,老生代,永久代,新生代又分爲一塊eden區和兩塊suvivor區,新產生的對象在eden區,當eden區滿時,觸發gc,將存活的對象複製到suvivor區,如果suvivor也滿,再次gc,把存活的對象複製到老生代···大概是這樣吧,記得不太清)
16、你瞭解jvm調優麼···(調節初始堆內存的大小···當然是越大越好··,調節新生代的大小,對於響應要求高的應用盡量調大,因爲新生代越大,觸發gc的頻率越低,老生代的大小怎麼調節··不太清楚)

17、怎麼對集合進行排序(先實現comparable接口,調用Collections.sort方法)
18、編譯時異常和運行時異常的區別(編譯時異常需要強制捕獲(try catch),運行時異常不需要,程序發生了運行時異常就停止運行了)
19、字節和字符的區別(字節是計算機的一個標準計量單位,佔8個二進制位,字節流讀取的時候就是一個字節一個字節讀取的,字符是用來表示現實生活中的符號的,可能佔多個字節,看具體的編碼是什麼,讀取的時候就是按一個字符一個字符讀取的)
20、Thread的sleep方法和Object的wait方法有什麼區別(最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。)
21、進程和線程的區別
22、什麼是死鎖?描述一種死鎖出現的場景

23、Interface和抽象類的區別(這個百度一下就知道了``)
24、你瞭解回調麼?(回調在GUI編程中使用的較多,給一個按鈕設置監聽事件就是使用回調)

J2EE

1、j2ee是什麼···(坑爹問題···,百度一下)
2、你瞭解JMS麼?(聽過不了解···)
3、servlet的生命週期(如果在web.xml中配置了servlet的loadstartup參數,小於0 的時候,servlet是在初次被訪問的時候被加載,如果大於等於1,則是隨tomcat啓動而被加載,然後銷燬是在web服務器停止的時候)
4、什麼是同步,異步消息(舉個例子··ajax就是異步消息)
5、JSP和servlet的卻別(jsp本質上也是servlet。。具體百度)
6、session和cookie的區別(session保存在服務器端,cookie保存在客戶端)
7、如果客戶端禁用cookie怎麼辦?(這裏的考點是session需要使用Cookie保存的唯一標識符--jsessionid,解決辦法··URL重寫,在url後附上jsessionid)
8、你用過數據庫連接池麼?,數據庫連接池的原理了解麼(用過··原理就是把數據庫連接緩存起來)
9、HTTP 和 HTTPS的區別(HTTPS是HTTP+SSL,安全的連接···具體百度)
10、POST和GET的區別(老問題了···)

Spring

1、spring框架的主要思想(AOP、IOC```只要稍微百度一下也能說的八九不離十了)
2、AOP的實現方式(主要有兩種,1、使用JDK的動態代理。2.、使用cglib動態修改字節碼生成代理類)
3、AOP的應用(事務管理··日誌管理)




發佈了33 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章