原创 淺析js中的Promise和async/await

淺析js中的Promise和async/await 最早的callback js是單線程的,爲了避免io類操作阻塞主線程,所以必須採用回調函數callback的形式把耗時的io操作委託給其他io線程處理(所以js並不是純的單線程,只是有一

原创 十大經典排序算法最強總結

0、排序算法說明0.1 排序的定義 對一序列對象根據某個關鍵字進行排序。 0.2 術語說明 穩定:如果a原本在b前面,而a=b,排序之後a仍然在b的前面; 不穩定:如果a原本在b的前面,而a=b,排序之後a可能會出現在b的後面; 內排序:

原创 JavaScript實現繼承的幾種方式

JS作爲面向對象的弱類型語言,繼承也是其非常強大的特性之一。那麼如何在JS中實現繼承呢?讓我們拭目以待。 JS繼承的實現方式 既然要實現繼承,那麼首先我們得有一個父類,代碼如下: // 定義一個動物類 function Animal (

原创 Java多線程編程詳解

線程的同步  由於同一進程的多個線程共享同一片存儲空間,在帶來方便的同時,也帶來了訪問衝突這個嚴重的問題。Java語言提供了專門機制以解決這種衝突,有效避免了同一個數據對象被多個線程同時訪問。  由於我們可以通過 private 關鍵

原创 多線程知識點整理

基本概念多線程程序在較低的層次上擴展了多任務的概念:一個程序同時執行多個任務,通常,每一個任務稱爲一個線程,它是線程控制的簡稱。可以同時運行一個以上線程的程序稱爲多線程程序。多進程與多線程的區別:每個進程擁有自己的一整套變量,而線程則共享

原创 Java加載Class文件的原理機制

1.Java中的所有類,必須被裝載到jvm中才能運行,這個裝載工作是由jvm中的類裝載器完成的,類裝載器所做的工作實質是把類文件從硬盤讀取到內存中 2.java中的類大致分爲三種:     1.系統類     2.擴展類    

原创 final、finally和finalize的區別是什麼?

這是一道再經典不過的面試題了,我們在各個公司的面試題中幾乎都能看到它的身影。final、finally和finalize雖然長得像孿生三兄弟一樣,但是它們的含義和用法卻是大相徑庭。這一次我們就一起來回顧一下這方面的知識。final關鍵字我

原创 Java中數據庫連接池原理機制的詳細講解

  連接池的基本工作原理   1、基本概念及原理   由上面的分析可以看出,問題的根源就在於對數據庫連接資源的低效管理。我們知道,對於共享資源,有一個很著名的設計模式:資源池 (Resource Pool)。該模式正是爲了解決資源的

原创 深入淺出Java多線程程序設計

一:理解Java多線程 多線程是這樣一種機制,它允許在程序中併發執行多個指令流,每個指令流都稱爲一個線程,彼此間互相獨立。 線程又稱爲輕量級進程,它和進程一樣擁有獨立的執行控制,由操作系統負責調度,區別在於線程沒有獨立的存儲空間,而是

原创 UML用例圖之泛化(generalization)、擴展(extend)和包含(include)關係--UML一波流系列講解

在畫用例圖的時候,理清用例之間的關係是重點。用例的關係有泛化(generalization)、擴展(extend)和包含(include)。其中include和extend最易混淆。下面我們結合實例徹底理清三者的關係。 基本概念 用例圖(

原创 hibernate配置數據庫連接池的三種方法

三種連接都是以連接MySQl爲例。 <!-- JDBC驅動程序 --> <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property> <proper

原创 Java的多線程機制

程序、進程和線程:  程序是一段靜態的代碼,它是應用程序執行的藍本。進程是程序的一次動態執行過程,它對應了從代碼加載、執行至執行完畢的一個完整過程,這個過程也是進程本身從產生、發展至消亡的過程。線程是比進程更小的單位,一個進程執行過程中

原创 SQL 優化原則

一、問題的提出  在應用系統開發初期,由於開發數據庫數據比較少,對於查詢SQL語句,複雜視圖的的編寫等體會不出SQL語句各種寫法的性能優劣,但是如果將應用系統提交實際應用後,隨着數據庫中數據的增加,系統的響應速度就成爲目前系統需要解決

原创 Java排序算法

1)分類: 1)插入排序(直接插入排序、希爾排序) 2)交換排序(冒泡排序、快速排序) 3)選擇排序(直接選擇排序、堆排序) 4)歸併排序 5)分配排序(箱排序、基數排序) 所需輔助空間最多:歸併排序 所需輔助空間最少:堆排序 平均速度最

原创 java堆棧詳解

Java把內存劃分成兩種:一種是棧內存,一種是堆內存。       在函數中定義的一些基本類型的變量和對象的引用變量都在函數的棧內存中分配。       當在一段代碼塊定義一個變量時,Java就在棧中爲這個變量分配內存空間,當超過變量的作