原创 容器與Servlet生命週期

1)容器大致功能有如下: 一、通信支持 無需自己建立監聽端口、流、Socket等,容器知道與Web服務器的協議,所以不必擔心自己的代碼如何與服務器進行通信,交給容器就好 二、生命週期管理 容器可以自動加載類、實例化和初始化serv

原创 Java 集合體系與List

一、集合體系 1)Collection接口 在Java類庫中,Collection是集合最基本的接口。Collection定義了一系列集合常用操作(獲取迭代器、添加、刪除、包含、轉化數組、判斷是否爲空、大小)以及default默認方法接口

原创 JAVA 繼承與重寫

繼承時候,每個子類都有一份父類變量的拷貝,但是如果修改當前子類中從父類繼承的成員變量的話,該子類中父類中的變量也隨着子類的變化而變化。一個子類修改並不影響另一個子類中父類成員變量的值,因爲每個子類都有自己的拷貝: public clas

原创 [轉]Java併發 Volatile關鍵字解析

volatile關鍵字雖然從字面上理解起來比較簡單,但是要用好不是一件容易的事情。由於volatile關鍵字是與Java的內存模型有關的,因此在講述volatile關鍵之前,我們先來了解一下與內存模型相關的概念和知識,然後分析了volat

原创 深度剖析C/C++中數組名與指針的詳細區別

在很多教材中甚至大學老師上課時都直接說數組名是一個指針。然而這種說法不是非常的嚴謹,因爲數組名與指針有很明顯的量大差別。在《C Primer Plus》中也只是說了數組名只是相當於一個const修飾的指針,除此之外並沒有任何其他詳解。所以

原创 JAVA IO(1) Reader與Writer

流操作分爲兩種 :1、字節流                               2、字符流:字節流讀取文字字節數據後,不直接操作而是先查找指定的編碼表,獲取對應的文字,                              

原创 C語言多維數組與指針的關係

此篇博客分爲三個主題: 一、一維數組與指針 二、二維數組與指針 三、高維數組與指針 指針與數組密切相關,深刻理解二者關係不僅可以更加靈活運用數組,更可幫助深入理解指針。 一、一維數組與指針 我們首先來定義一個一位數組: int arr[

原创 JAVA 集合List迭代器及其子類

List中除了vector(1.0版本出現,後併入集合)全是非同步:效率高 Vector:底層數組,也自動增長縮短(100%延長),同步的(線程安全,效率低)。所以幾乎不用,增刪查都很慢,垃圾。 ArrayList:底層數組,50%延長,

原创 JVM常用垃圾收集器總結

一、新生代收集器 Serial收集器(單線程+複製算法) Serial收集器爲單線程收集器,當其GC線程執行清理工作時,用戶線程必須全部停止。由於桌面應用一般分配給JVM的內存不是很大,停頓時間一般在幾十毫秒不會給用戶造成太大影響,因此可

原创 JVM類加載機制

JVM的類加載分爲三個部分:加載、連接(驗證、準備、解析)、初始化。類的加載是線程安全的! 加載: 加載分爲三個步驟: 1、根據類的全限定類名將該類以二進制流的方式讀入。可以重寫ClassLoader的loadClass()方法來改寫獲取

原创 《OSTEP》讀書分享 簡介

若有錯誤歡迎指正~     在開始學習操作系統之前瞭解很多書,最終在無數大佬的推薦下使用了Operating System:Three Easy Pieces這本書。在看完這本書的第一章後更加堅定的認爲這是一本好書:代碼有力能夠反映問題、

原创 《OSTEP》讀書筆記 虛擬化(3)調度算法

       當進入中斷處理程序後(比如完成I/O操作),內核就要決定切換到哪一個進程繼續運行。然而怎樣決定運行哪一個進程就需要調度器使用調度算法來決定了。調度算法並不是產生於計算機科學中,而是產生於操作管理中並借鑑應用到計算機中。   

原创 第二、三範式與BC範式的區別

在正式開始之前,先來明確以下幾個概念: 1、碼:能唯一確定一條記錄的一個/多個屬性。碼包括主碼和候選碼。任意一個候選碼也能作爲主鍵。其中主碼/候選碼的任意一個               真子集都不能確定一條記錄。 2、主屬性:構成主碼或

原创 [轉 深度好文]Java併發 Volatile關鍵字解析

轉自:https://www.cnblogs.com/dolphin0520/p/3920373.html volatile關鍵字雖然從字面上理解起來比較簡單,但是要用好不是一件容易的事情。由於volatile關鍵字是與Java的內存模型

原创 Java 深入理解泛型的強制轉型及自動轉型

前言:Java的泛型真是狗屎! 一、泛型裏的強制轉換 在閱讀 Core Java 和 ArrayList 源碼時,一直有一個問題困擾着我:既然泛型都會被擦出成raw type(這裏被擦除爲Object),那麼爲什麼還會有(T) 或(T[