日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2017年5月面试总结

發布時間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2017年5月面试总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 漁夫分魚算法

A,B,C,D,E五個漁夫夜間合伙捕魚,凌晨都疲憊不堪,各自在草叢中熟睡。第二天清晨A先醒來,他把魚均分五份,把多余的一條扔回湖中,便拿了自己的一份回家了,B醒來后,也把魚均分五份,把多余的一條扔回湖中,便拿了自己的一份回家了,C,D,E也按同樣方法分魚。問5人至少捕到多少條魚?
面試官讓五分鐘寫出來,我是不行了,回來后因減1的問題差了5條,害得我花了近二十分鐘。像這種算法,稍有點兒能力的都能寫出來,只是時間問題,干嘛非要較那個真兒。

public static void main(String[] args) {for (int num = 6;; num++) {int t = num;// 每一個漁夫起來分魚都必須符合:分成5份多一條for (int j = 1; j <= 5; j++) {if (t % 5 == 1) { // 下一個漁夫起來看到總的條數t = t-1- ((t - 1) / 5);}else{t =0;}}if(t!=0){System.out.println(num);break;}} }

2.動態代理模式

  • 動態代理涉及到反射知識,這方面欠缺的可參考:
    http://www.cnblogs.com/ktlshy/p/4716838.html
  • 動態理詳解參考:
    實例:http://www.cnblogs.com/xiaoluo501395377/p/3383130.html
    詳解:https://www.ibm.com/developerworks/cn/java/j-lo-proxy1/index.html
  • 動態代理時,我有一個疑問就是,invoke方法什么時候被調用的,參考:
    http://blog.csdn.net/zcc_0015/article/details/22695647
    由于動態生成的代理類也實現了被代理對象的接口,然后在實現代理接口方法中會調用invoke方法。所以通過動態代理類調用被代理對象的某全方法時,就能調用到invoke方法了
  • 3.如何在mysql查找效率慢的SQL語句

    參考:http://www.cnblogs.com/kimi9py/p/5735043.html
    1. 首先查看是否開啟慢查詢:
    SHOW VARIABLES LIKE ‘%quer%’;

    1. 開啟慢查詢:slow_query_log
    set GLOBAL slow_query_log= on;
    這個參數設置為ON,可以捕獲執行時間超過一定數值的SQL語句。
    2. 設置慢查詢時間:long_query_time
    set GLOBAL long_query_time= 2;
    當SQL語句執行時間超過此數值時,就會被記錄到日志中,建議設置為1或者更短。
    3. 指定慢查詢日志記錄位置:slow_query_log_file
    set GLOBAL slow_query_log_file= 2;
    4. 捕獲所有未使用索引的SQL語句 log_queries_not_using_indexes
    set GLOBAL log_queries_not_using_indexes= on;

    4. 字符串排序

    有一個字符串str=”235568523134”;請寫程序將字符串str進行升序排序。(請使用一切可以使用的JDK API,但僅限JDK API)

    String str = "235568523134"; char[] arr = str.toCharArray(); // 升序排序 Arrays.sort(arr); // 處理結果 StringBuffer sbs = new StringBuffer(); for(char s :arr){sbs.append(s); }System.out.println("排序后結果是:"+sbs.toString());

    5.spring事務

    請簡單介紹Spring支持的常用數據庫事務傳播屬性和事務隔離級別,及對它們的使用場景?

    事務傳播行為類型說明
    propagation_required(常用)如果當前沒有事務,就新建一個事務,如果已經存在一個事務中,加入到這個事務中。這是 最常見的選擇。
    propagation_supports支持當前事務,如果當前沒有事務,就以非事務方式執行。
    propagation_mandatory使用當前的事務,如果當前沒有事務,就拋出異常。
    propagation_requires_new新建事務,如果當前存在事務,把當前事務掛起。
    propagation_not_supported以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。
    propagation_never以非事務方式執行,如果當前存在事務,則拋出異常。
    propagation_nested如果當前存在事務,則在嵌套事務內執行。如果當前沒有事務,則執行與 propagation_required類似的操作。此時, 底層的數據源必須基于 JDBC 3.0 ,并且實現者需要支持保存點事務機制。

    參考:
    http://jaeger.blog.51cto.com/11064196/1761660
    http://blog.csdn.net/willfcareer/article/details/5695530

    Spring事務的隔離級別

    隔離級別說明
    DEFAULT這是一個PlatfromTransactionManager默認的隔離級別,使用數據庫默認的事務隔離級別.
    READ_UNCOMMITTED這是事務最低的隔離級別,它充許令外一個事務可以看到這個事務未提交的數據。 這種隔離級別會產生臟讀,不可重復讀和幻像讀。
    READ_COMMITTED保證一個事務修改的數據提交后才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的數據
    REPEATABLE_READ這種事務隔離級別可以防止臟讀,不可重復讀。但是可能出現幻像讀。
    SERIALIZABLE這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。除了防止臟讀,不可重復讀外,還避免了幻像讀。

    什么是臟數據,臟讀,不可重復讀,幻讀?
    臟讀: 指當一個事務正在訪問數據,并且對數據進行了修改,而這種修改還沒有提交到數據庫中,這時,另外一個事務也訪問這個數據,然后使用了這個數據。因為這個數據是還沒有提交的數據, 那么另外一個事務讀到的這個數據是臟數據,依據臟數據所做的操作可能是不正確的。
    不可重復讀: 指在一個事務內,多次讀同一數據。在這個事務還沒有結束時,另外一個事務也訪問該同一數據。那么,在第一個事務中的兩次讀數據之間,由于第二個事務的修改,那么第一個事務兩次讀到的數據 可能是不一樣的。這樣就發生了在一個事務內兩次讀到的數據是不一樣的,因此稱為是不可重復讀。

    幻讀: 指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的數據進行了修改,這種修改涉及到表中的全部數據行。同時,第二個事務也修改這個表中的數據,這種修改是向表中插入一行新數據。那么,以后就會發生操作第一個事務的用戶發現表中還有沒有修改的數據行,就好象發生了幻覺一樣。

    3.springMVC底層實現

    4. mybatis底層實現原理

    5.mybatis里的“#”與“$”的區別

    6.描述mybatis里的resultMap

    總結

    以上是生活随笔為你收集整理的2017年5月面试总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。