原创 JVM運行時的內存

Java堆從GC的角度可以分爲:新生代(Eden 區、From Survivor 區和 To Survivor 區)和老年代(java8 取消了永久代,採用了 Metaspace)。 一、新生代是用來存放新生的對象,一般佔據堆的1/3空間。

原创 快速排序

一、原理 1. 從待排序區間選擇一個數,作爲基準值(index);2. Partition: 遍歷整個待排序區間,將比基準值小的(可以包含相等的)放到基準值的左邊,將比基準值大的(可以包含相等的)放到基準值的右邊;3. 採用分治思想,對左右

原创 冒泡排序

一、冒泡排序的原理 冒泡排序:將待排序的一組數分爲有序區間和無序區間。先在無序區間通過相鄰數的比較,將無序區間的最大數依次冒泡到最上面,持續這個過程,直到整組數有序。 二、圖解分析 以[3, 0, 5, 4, 1, 2]爲例,進行冒泡排序。

原创 希爾排序

1.希爾排序希爾排序法又稱縮小增量法。是直接排序的優化。 2.基本思想希爾排序法的基本思想是:先選定一個整數,把待排序文件中所有記錄分成一個組,所有距離爲一樣的記錄分在同一組內,並對每一組內的記錄進行排序。然後取整數一半的值,重複上述分組和

原创 無頭雙向鏈表的實現

1.頭插法 public void addFirst(int data) { //頭插 DLinkedNode newNode = new DLinkedNode(data);//加入的新節點 DLink

原创 數據結構之無頭單向非循環鏈表

鏈表:是一種物理存儲結構上非連續存儲結構。 無頭單向非循環鏈表示意圖:下面就來實現這樣一個無頭單向非循環的鏈表。 1.頭插法 public void addFirst(int elem) { LinkedNode node

原创 對Java方法、方法重載的理解

一、方法 1.什麼是方法方法就是一個代碼片段,在其他地方被引用,類似於C語言當中的“函數”。2.方法的命名規則必須以字母、下劃線或‘$’符號開頭;可以包括數字,但不能以他開頭。3.方法的基本語法 // 方法定義 public static

原创 Java變量的基本知識

1.整型變量Java中整型變量有四種:byte、short、int、long。①int(整型變量):在Java中,一個int變量佔四個字節,與操作系統沒有直接關係。②long(長整型變量):初始化設定的值後面加上L/l,例如long a=1

原创 Linux指令

一、1.進入目錄需要的權限(以一個例子來看)①先創建一個文件haha,並用命令chmod 000 haha設置成無權限。②分別加上r、w、x權限,發現只有加上x權限才能進入目錄。③所以進入目錄需要x(可執行)權限。2.在目錄中執行一些文件動

原创 對指針的初級理解

一.什麼是指針指針是一個變量,用來存放地址的變量。有如下代碼:#include <stdio.h>int main(){int a = 10;int p = &a;return 0;}對於這個有這樣一個圖解:這裏的p就是一個一級指針,它指向

原创 對c語言操作符的總結

操作符的分類有算術操作符、移位操作符、位操作符、賦值操作符、單目操作符、關係操作符、邏輯操作符、條件操作符、逗號操作符、下表引用、函數調用和結構成員,下面我就對這些操作符做一個總結。 一.算術操作符算術操作符有“+”、“-”、“*”、

原创 輸出100至200之間的素數

素數定義爲在大於1的自然數中,除了1和它本身以外不再有其他因數。源代碼如下圖: 最後結果:

原创 新的開始

這是我來51CTO的第一天,來這主要是爲了能有一個讓我一直堅持下去的事,也希望在這能見證我的成長。近期的一個目標吧就是堅持一週能有四天的時間看看與編程相關的東西,寫寫程序。