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