面試題:3年工作經驗 !=!=未看 1
一輪面試下來,由最初的自信什麽都能做,到現在感覺什麽都不會做;但是面對面試官,卻更坦然。
對自己還能記得起來的面試題,稍微整理一下。歡迎指正。
private、默認、protected、public作用範圍
1)private,同類
2)默認,同類、同包
3)protected,同類,同包,子類
4)public,所有
String trim的實現原理
去掉首尾ASCII碼值小於‘ ‘(空格)的字符
StringBuffer、StringBuilder區別
StringBuffer線程安全
StringBuilder線程不安全
抽象類與接口的異同
同:具有抽象方法
異:1)抽象類可以有構造器,非抽象方法,非公有屬性,僅可以單繼承抽象類
2)接口僅有公有抽象方法或者公有靜態常量,可以同時實現多個接口
個人使用經驗:一般在控制層使用抽象類,提取公共初始化方法、框架定制化工具方法等
一般會在業務層使用接口
List、Set、Collections區別
1)List,有序可重復
2)Set, 無序不可重復
3)Collections,集合工具類
列舉鍵值容器
1)HashMap,實現Map,異步
2)Hashtable,實現Map,同時繼承舊的Dictionary類,同步
3)Properties,Hashtable的子類,系統參數
算法:快速排序
public static void quickSort(int a[], int start, int end) { int i, j; i = start; j = end; if ((a == null) || (a.length == 0)) return; while (i < j) {//查找基準點下標 while (i < j && a[i] <= a[j]) // 以數組start下標的數據為key,右側掃描 j--; if (i < j) { // 右側掃描,找出第一個比key小的,交換位置 int temp = a[i]; a[i] = a[j]; a[j] = temp; } while (i < j && a[i] < a[j]) // 左側掃描(此時a[j]中存儲著key值) i++; if (i < j) { // 找出第一個比key大的,交換位置 int temp = a[i]; a[i] = a[j]; a[j] = temp; } } if (i - start > 1) { // 遞歸調用,把key前面的完成排序 quickSort(a, start, i - 1); } if (end - j > 1) { quickSort(a, j + 1, end); // 遞歸調用,把key後面的完成排序 } }
inner join、left join、 right join區別
1)inner join,兩表字段值相同
2)left join,兩表字段值相同,以及左表字段有值,右表字段值為null
3)right join,與上相反
需要寫sql的試題
一般會讓查出值是最大的,用到子查詢、組函數等
Reads(id, ip, cnt) ip不唯一,查出訪問量最大的前10個ip並排序
select r.ip, r.s, rownum from (select ip, sum(cnt) s from reads group by ip order by s desc) r where r.rownum <= 10
數據庫性能調優
1)經常做查詢條件的字段建立序列
2)關聯查詢時,關聯結果集,替代直接關聯整張表;或者使用exists
jsp表單js校驗
var name = document.getElementById(‘userName‘).value;
if (name == ‘‘)
{
alert(‘用戶名不能為空‘);
return false;
}
Struts的Action是單例嗎
1)Struts1的Action是單例且線程安全
2)Struts2的Action不是單例,針對每一請求產生一個實例
Hibernate與Mybatis區別
1)Hibernate,使用pojo實現orm,查詢速度相比較慢,插入/更新開發容易
2)Mybaits,使用純sql開發,執行效率較快,比較適合統計、多表關聯查詢
Hibernate狀態
瞬時態:new對象
持久態:實例與數據庫中記錄對應,擁有持久化標識
遊離態:session關閉;session打開,遊離態轉成持久態
ibatis中#與$的區別
1)#,變量替換,即prepareStament設置字段值,並可以匹配變量類型
2)$,字符串拼接,需要小心依賴註入
事務特性
1)原子性:諸多操作要麽全做,要麽全不做
2)一致性:事務執行結果使數據庫從一個一致性狀態變到另一個一致性狀態
3)隔離性:事務執行不被其他事務影響
4)持久性:一旦提交,對數據庫的改變是永久性的
spring mvc與struts2的區別
1)struts2封裝展示層與控制層,展示層提供標簽庫及驗證器,請求與應答需要配置文件
2)spring mvc是單純的控制層框架,url實現零配置,運行效率提高
Spring IOC註入方式
1)配置文件中,配置屬性,提供setter/getter方法
2)零配置,@Autowired,統一配置根據名稱或者類型註入
Spring AOP思想
針對請求做統一預處理,如有效性校驗;或後處理,如記錄處理結果;針對方法加before或after處理
Spring事務配置
1)使用tx:advice,針對業務接口層,如以do、get等命名的方法,作事務配置
WebService技術
1)axis、xfire、cxf,基於soap,傳輸xml
2)restful風格
jvm性能調優
tomcat性能調優
面試題:3年工作經驗 !=!=未看 1