我們知道JavaScript與HTML之間的交互是通過事件實現的。事件最早是在IE3和Netscape Navigator 2中出現的,當時是作為分擔服務器運算負載的一種手段。 通俗地理解,事件就是用戶或浏覽器自身執行的某種操作。而事件處理程序即為
序言為什麼有時候學著學著會突然之間覺得一切度是那麼無趣,男的每個月也有那麼幾天難道?哈哈,不然是什麼,我還是要堅持,可以做少一點,但是不能什麼度不做。總會過去的,加油
序言有位小同學要我寫一篇這個的總結,我說那好吧,那就動手寫總結一下這個內部類的知識,感覺這個在面試中也會經常遇到,內部類、反射、集合、IO流、異常、多線程、泛型這些重要的基礎知識大家都比較容易記不住。大概是自己平常用的比較少,所以經常性的會忘記,現在
概念Linux內核從3.x開始引入設備樹的概念,用於實現驅動代碼與設備信息相分離。在設備樹出現以前,所有關於設備的具體信息都要寫在驅動裡,一旦外圍設備變化,驅動代碼就要重寫。引入了設備樹之後,驅動代碼只負責處理驅動的邏輯,而關於設備的具體信息存放到設
當前SpringMVC非常流行,在大多數情況,我們都需要自定義一些錯誤頁面(例如:401, 402, 403, 500...),以便更友好的提示。對於spring mvc,這些當然是支持自定義的,spring是怎麼做的? 還是去看看spring的源碼
std::function是可調用對象的包裝器,它最重要的功能是實現延時調用:#include stdafx.h#include<iostream>// std::cout#include<functional>// std:
C++使用如下方法遍歷一個容器:#include stdafx.h#include<iostream>#include<vector>int main(){ std::vector<int>
鏈表的逆置常作為應屆生面試題,主要考察求職者對鏈表的理解,還有思維能力。逆置的思路主要是保存幾個臨時的指針變量,其實好多面試題都可以通過保存臨時變量的方式來解決。C++代碼如下:#include stdafx.hstruct ListNode{&nb
最近在面試應屆生,出了幾道簡單的面試題,冒泡法排序就是其中之一。很多人覺得冒泡簡單,就疏忽了。網上搜了下,也流傳著很多錯誤的寫法。自己手寫了一遍,也算是復習吧。C++代碼如下:#include stdafx.h/*******************
觀察者模式又稱發布-訂閱(Publish/Subscribe)模式,定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知所有觀察者對象,使他們能夠自動更新自己。將一個系統分割成一系列相互協作的類有一
單例模式(Singleton),保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。其構造過程由自身完成,可以將構造方法定義為private型的,這樣外界就只能通過定義的靜態的函數Instance()構造實例,這個函數的目的就是返回一個類的實例,在
單一職責原則 單一職責原則(Single responsibility principle),就一個類而言,應該只有一個引起它變化的原因。 在實際編程中的體現,比如一個類只是某一個事物相關的集合,一個函數只做一件事情,不要在這個函數中編寫一些不想
unique_ptr 獨占所指向的對象, 同一時刻只能有一個 unique_ptr 指向給定對象(通過禁止拷貝語義, 只有移動語義來實現), 定義於 memory (非memory.h)中, 命名空間為 std.標准庫早期版本中定義了 auto_pt
weak_ptr 是一種不控制對象生命周期的智能指針, 它指向一個 shared_ptr 管理的對象. 進行該對象的內存管理的是那個強引用的 shared_ptr. weak_ptr只是提供了對管理對象的一個訪問手段. weak_ptr 設計的目
shared_ptr 是一個標准的共享所有權的智能指針, 允許多個指針指向同一個對象. 定義在 memory 文件中(非memory.h), 命名空間為 std. shared_ptr 是為了解決 auto_ptr 在對象所有權上的局限性(auto
auto_ptr 是一個輕量級的智能指針, 定義於 memory (非memory.h)中, 命名空間為 std. auto_ptr 適合用來管理生命周期比較短或者不會被遠距離傳遞的動態對象, 最好是局限於某個函數內部或者是某個類的內部.使用方法:
智能指針與異常如果使用智能指針, 如果程序塊過早的結束, 智能指針能保證在內存不再需要時進行釋放. (特別是在有多個出口的函數中 -- 雖然應盡量避免設計這樣的函數, 但凡事總有例外 -- 此時使用智能指針來自動釋放內存是非常方便的)對於異常處理來說
std::thread C++11在標准庫中為多線程提供組件, 使用線程需要包含頭文件 thread, 其命名空間為 std.啟動新線程每個進程至少有一個線程: 執行main()函數的線程, 其余線程有其各自的入口函數(線程函數)。當線程執行完線程
C++並發編程 異步任務(async)線程基本的互斥和同步工具類, 主要包括: std::mutex 類 std::recursive_mutex 類 std::timed_mutex 類 std::recursive_timed_mutex