izuiaicy 2018 1 21 每週總結

2021-08-14 20:55:59 字數 2135 閱讀 4311

合抱之木,生於毫末;九層之台,起於壘土;

千里之行

,始於足

下。-----------送給在碼農之路上搬磚的自己。

2018-1-21杭州

1.mybatis篇

使用者的等級需求。每次新增乙個等級需要在之前的level上+1。所以需要求資料庫同乙個**商下level的最大值,然後在次基礎上+1。由於sql語句不熟悉。導致求這個最大值的時候花了1個小時的時間。

問題:直接用max函式求解,資料庫有值的時候沒有問題,當資料庫的該值為空時,返回的時null,不是乙個int/integer。困擾了許久。

解決辦法:1。巢狀查詢,先找出最大值,然後用level=最大值得到該條記錄。但是多了乙個自查詢,時間複雜度為o(n^2)。

2。使用order by level 然後limit 0,1。使用按照遞增遞減的順序然後只查乙個,完美解決。比1中的時間複雜度低。

2.web容器。web.xml

之前一直不知道web.xml具體的存在原理以及filter的使用

web容器主要是在專案啟動的時候啟動一些專案執行所必須的配置。spring***/類載入/servlet/filter等

1.spring***:現在一般專案都會使用spring框架,整個專案部署在tomcat上執行的時候,首先會載入spring***,然後通過spring***去啟動我們在spring配置檔案中的各種配置以及各種bean(註解注入/配置注入),以及資料庫的連線池。定時任務配置/ aop/mq,其他通過spring啟動的框架(mybatis/hibernate)等等。

2.類載入:專案執行的時候我們先是將我們的**通過編譯器解析成位元組碼檔案,也就是類載入執行的檔案,整個專案所執行的不是我們的**,而是我們**編譯的位元組碼。

3.servlet:web專案都是通過servlet請求,找到對應的處理器處理,然後通過視**析器將頁面渲染給前端。

4.filter:filter是web.xml不起眼的地方(之前基本上沒有使用過。。。或者說沒有注意到這個東東~)。主要起著過濾器的作用。

filter的使用

1.一般web專案都會用上乙個filter處理編碼解碼問題。整個filter也很簡單就是編譯碼。

2.其實filter中可以配置許多我們能用得到的地方,比方說前的編譯碼、使用者許可權安全、所有請求的過濾。

3.filter有三個方法:1。init() 主要是初始化一些基本的配置資訊

2。dofilter()這個就是我們業務處理的關鍵方法,在這個方法裡面我們可以過濾掉所有我們想過濾掉的請求(包括簡單的登陸頁面請求/介面請求)。當通過過濾的時候我們呼叫

chain.dofilter(request,response)方法轉到下乙個filter過濾器上。當是最後乙個過濾器時就會直接走servlet請求的正常流程,找到控制器處理器,視**析器等等。

3.destory() 一般不會做處理,使用預設的就好。

3.threadlocal

threadlocal主要提供了get/set方法。獲取你所需要的物件什麼的。主要用於多執行緒的處理。當乙個物件經常性的會同一時刻被不同執行緒呼叫,且會更改物件的內容,我們通過thradlocal每個執行緒單獨使用自己的object的副本,並將修改作用在object的副本上,並不會影響其他執行緒對這個object的使用。作用於多執行緒高併發的業務處理。

每乙個執行緒呼叫時,都會將這個object的副本存進乙個map中,其中key是這個執行緒本身value是這個object物件,其他的執行緒無法拿到這個執行緒的object副本,所以他是安全的,然後通過map.get(key)拿到執行緒自己的object副本。

4.每次談需求的時候不能為了完成需求還寫**,這次由於位址這裡只需要獲取位址name,沒有通過name獲取code,少了一些service服務,導致同事還得自己來寫。這個是不應該的。而且要多想想是不是後面的需求會不會涉及都這些。不然為了後面的需求將之前的**全部覆蓋掉是不值得的。

5.當乙個物件多次在不同的地方使用set時,我們可以在物件的實體類裡面使用構造器,重寫構造器。直接使用new object(str,long,int)的方式,這樣會比較優雅。

6.本週犯了乙個嚴重的錯誤,將專案發布online的時候,居然在master上,merge/gray的**,這個是嚴重的錯誤,還好沒有提交。以後每次merge的時候需要pull兩次下最新的**,保持**的最新,然後merge的時候需要注意merge誰,想一想會不會出現git的問題。

小明上學201812 1

問題描述 試題編號 201812 1 試題名稱 小明上學 時間限制 1.0s 記憶體限制 512.0mb 問題描述 題目背景 小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間...

201812 1 小明上學

試題編號 201812 1 試題名稱 小明上學 時間限制 1.0s 記憶體限制 512.0mb 題目背景 小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間設有至多一盞紅綠燈。...

2018 12 1小明上學

題目背景 小明是漢東省政法大學附屬中學的一名學生,他每天都要騎自行車往返於家和學校。為了能盡可能充足地睡眠,他希望能夠預計自己上學所需要的時間。他上學需要經過數段道路,相鄰兩段道路之間設有至多一盞紅綠燈。京州市的紅綠燈是這樣工作的 每盞紅綠燈有紅 黃 綠三盞燈和乙個能夠顯示倒計時的顯示牌。假設紅綠燈...