有朋友去一家大型的互聯(lián)網(wǎng)公司參加了java程序員的筆試,抄下了一些筆試題,可能有的抄的并不全,試了解答一下,有些還真的答不出來
1.cookie和session的作用以及他們的應(yīng)用場(chǎng)合
2.怎樣讓jvm加載一個(gè)Class的同時(shí)執(zhí)行一段代碼
3.post和get區(qū)別
4.事務(wù)的屬性有哪些?寫出spring或jdbc管理事務(wù)的例子
5.實(shí)現(xiàn)一個(gè)高并發(fā)、高性能的hashmap。寫出偽代碼
6.解析一段xml,拼接成一個(gè)url。
7.怎么解決并發(fā)?怎么解決集群環(huán)境下的并發(fā)?
8.java GC的原理.
9.mysql支持事務(wù)嗎?mysql存儲(chǔ)引擎有哪些?
10.數(shù)據(jù)庫數(shù)據(jù)查找比較慢的時(shí)候,如何解決?
11.學(xué)生 課程 選課的一個(gè)sql語句書寫
12.查找日志文件中某一個(gè)信息出現(xiàn)的次數(shù)
13.32位linux操作系統(tǒng)中,最多支持多少個(gè)線程?
14.關(guān)于TreeMap操作的
15.重寫類A的equals和hascode方法。類A有個(gè)屬性private B b;
16.實(shí)現(xiàn)一個(gè)mysql的sequence。
下面是我的一點(diǎn)解答,也不知道對(duì)不對(duì),現(xiàn)在的筆試要你白紙黑字寫出這些東西真是難啊!
1)cookie和session的作用以及他們的應(yīng)用場(chǎng)合
兩者都是記錄用戶訪問網(wǎng)站信息,但他們的保持狀態(tài)不同,cookie是采用客戶端保持,而session是采用服務(wù)端保持,一般來說cookie不是很安全,因?yàn)閯e人可以分析本地的cookie進(jìn)行cookie欺騙,考慮到安全的問題應(yīng)該使用session,session是保持在服務(wù)端,但當(dāng)訪問增多時(shí),會(huì)增加服務(wù)器的壓力。
在應(yīng)用場(chǎng)合中,建議建用戶登錄,交易重要信息存放session,其他信息可以存放在cookie中,根據(jù)實(shí)際需求兩者可以交替搭配使用。
2)怎樣讓jvm加載一個(gè)Class的同時(shí)執(zhí)行一段代碼
使用Class.forName()動(dòng)態(tài)加載類(題目中有"同時(shí)",是否啟用另一線程?)
3)post和get區(qū)別
從http動(dòng)詞協(xié)議來看,get是從服務(wù)器獲取數(shù)據(jù),post是向服務(wù)器上傳數(shù)據(jù)
get方式會(huì)把數(shù)據(jù)出現(xiàn)在url中,post則不會(huì)
get提交的數(shù)據(jù)有大小限制,post則無
4)事務(wù)的屬性有哪些?寫出spring或jdbc管理事務(wù)的例子
有原子性,一致性,隔離性,持久性
spring提供了豐富的事務(wù)模型,主要是針對(duì)jdbc事務(wù),jta事務(wù),還有一些自定義事務(wù)(如果有人能從一張白紙寫出spring transaction的例子,那真是佩服之極)
還是寫一個(gè)簡(jiǎn)單jdbc事務(wù)
try{
class.forName("***");
...
conn=DriverManager.getConnection(url,user,password);
conn.createStartement().executeUpdate("****");//更新操作
conn.commit();//事務(wù)提交
}catch(Exception e){
..
conn.rollback();//事務(wù)回滾
..
}
5)實(shí)現(xiàn)一個(gè)高并發(fā)、高性能的hashmap。寫出偽代碼
什么叫做高性能,高并發(fā)的hashmap? 是要考hashmap的數(shù)據(jù)結(jié)構(gòu)??
6)解析一段xml,拼接成一個(gè)url
xml,url???這兩者有什么聯(lián)系嗎?
7)怎么解決并發(fā)?怎么解決集群環(huán)境下的并發(fā)?
(有很多點(diǎn)可以并發(fā),web請(qǐng)求可以并發(fā),數(shù)據(jù)庫請(qǐng)求可以并發(fā),怎么那么空泛)
高并發(fā)最重要的還是考慮到鎖的問題,如數(shù)據(jù)庫該用表鎖用表鎖,該用排他鎖用排它鎖,程序中要注意非線程安全的問題
高并發(fā)還有帶來性能問題,緩存,負(fù)載均衡,這些看情況而定
8)java GC的原理.
又來,不回答你
9)mysql支持事務(wù)嗎?mysql存儲(chǔ)引擎有哪些?
支持,常用的是inndb和myisam
10)數(shù)據(jù)庫數(shù)據(jù)查找比較慢的時(shí)候,如何解決?
假如是mysql
1.漏了索引,用explain看看查詢語句是不是沒使用索引或者索引使用有問題
2.使用show processlist看看是不是有sql卡住了
3.還有一種情況就是sql寫得過于復(fù)雜,如goroupby,多表關(guān)聯(lián)等等,使用desc來進(jìn)行分析
4.還有就是配置的問題,如key_buffer等參數(shù),這個(gè)看文檔吧
5.最后一種就是機(jī)器負(fù)荷過高,調(diào)整結(jié)構(gòu)來解決吧,比如使用mysql-proxy代理等等
11)學(xué)生 課程 選課的一個(gè)sql語句書寫
??
12)查找日志文件中某一個(gè)信息出現(xiàn)的次數(shù)
cat 日志 | grep 信息 | wc -l
13) 32位linux操作系統(tǒng)中,最多支持多少個(gè)線程?
上網(wǎng)查了,寫得很復(fù)雜,附上文章
http://www.517sou.net/Article/Linux-maximum-number-of-threads-and-the-maximum-number-of-processes.aspx
14)關(guān)于TreeMap操作的
TreeMap就是一顆平衡排序二叉樹,操作的。。后面是什么??
15)重寫類A的equals和hascode方法。類A有個(gè)屬性private B b;
??
16)實(shí)現(xiàn)一個(gè)mysql的sequence
mysql的last_insert_id()大致可以滿足,如果不行就寫觸發(fā)器吧