原创 JAVA拾遺 - 線程的三種簡單實現

線程是程序中的執行線程。java虛擬機允許應用程序併發地運行多個執行線程。每個線程都有一個優先級,高優先級線程的執行優先於低優先級的線程。當某個線程中運行的代碼創建一個新Thread對象時,該新線程的初始化優先級被設定爲創建線程的

原创 JAVA拾遺 - 並查集算法的實現與改進

並查集 並查集所需要實現的主要有一下幾個功能 1.建立新的集合 2.查找某個元素屬於哪個集合 3.合併兩個集合 我們希望它的算法複雜度達到O(1),那麼具體應該如何實現呢? 方法 UF(int n) //建立並查集 int co

原创 淺談尾遞歸

在《數據結構與算法分析:C描述》(Data Structures and Algorithm Analysis In C)的第三章中,以打印鏈表爲例,提到了尾遞歸(tail recursion)並指出了尾遞歸是使用遞歸極其不當的例

原创 LintCode 245 子樹 出現錯誤的一些思考

有兩個不同大小的二進制樹: T1 有上百萬的節點; T2 有好幾百的節點。請設計一種算法,判定 T2 是否爲 T1的子樹。 注意事項:若 T1 中存在從節點 n 開始的子樹與 T2 相同,我們稱 T2 是 T1 的子樹。也就是說

原创 JAVA拾遺 - 使用Java實現數列棧和鏈表棧

最近有點忙,沒來得及更新博客... 正好在看Alg PartI 的公開課,就發一批課堂練習湊個數吧... 抽象 棧主要有三個功能,我們可以用一個抽象類去規定他 package StackQueueBag; /** * Cr

原创 JAVA拾遺 - 如何有效地避免OOM:善於利用軟引用和弱引用

轉載自   http://www.cnblogs.com/dolphin0520/p/3784171.html   想必很多朋友對OOM(OutOfMemory)這個錯誤不會陌生,而當遇到這種錯誤如何有效地解決這

原创 JAVA拾遺 - ConcurrentHashMap源碼閱讀

說實話在這段時間的編程裏,多線程用的少,但是這是JAVA裏面非常重要的一個部分,所以找了個機會看了點書。但是看完書後覺得還不夠,書裏面也就講了它主要的對外接口,所以就想進入源碼裏面看看,順便複習一下。 繼承 Concurrent

原创 JAVA拾遺 - ArrayList\LinkedList\HashMap源碼解析與閱讀

本文轉載自: 文/absfree(簡書作者) 原文鏈接:http://www.jianshu.com/p/f174d49b391c 著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。 本文會從源碼(JDK 1.8)

原创 玩耍 - JAVA寫的五子棋

package game; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import

原创 LintCode A + B 問題 : 理解不使用運算符計算加乘

給出兩個整數a和b, 求他們的和, 但不能使用 + 等數學運算符。 這是來自http://www.lintcode.com/zh-cn/problem/a-b-problem/的問題 很容易就聯想到位運算,但是不能用加減乘除,只

原创 LintCode 374 螺旋矩陣的解決方法

最近在開心刷LintCode,其實我覺得刷題的目的就是鍛鍊你的解決問題的能力,不同的思想會帶來不同的解決方案,找到最好的那個就是程序員的工作。但在找到最好的之前,你至少需要一點思想。 題目梗概 給定一個包含 m x n 個要素的

原创 Effective Java 閱讀 (1-3)

Effective Java 閱讀 (1-3) 真正開始閱讀這本書之後,我才發現我對這門語言的認識是多麼膚淺。 這是這個系列的第一篇博客,寫於2016年8月28日21:31:25,今天我從快遞小哥手上接過這本書,突然就有一種神祕

原创 JAVA拾遺 - 優先隊列的探討以及其在KNN算法中的應用

這幾天導師安排寫一個微博簽到數據依據地理座標的分類,所以有一段時間沒有更新博客了,不過正好也在這次代碼的寫作中學習了一些新的姿勢,寫這篇博客跟大家分享下心得。 優先隊列 定義 所謂的優先隊列,就是在普通隊列的基礎上,對於每個點

原创 JAVA拾遺 - volatile關鍵字和原子性的探討

機房又只有我一個人...無聊到點開CSDN寫一篇文章吧~記錄下最近的學習 之前在學習JAVA的過程中有點模糊的地方,最近一個一個拔掉釘子,還是滿開心的。 在看到多線程後就發現有個非常不能理解的東西,比如說這篇文章即將講到的vol

原创 JAVA拾遺 - 希爾排序

package Elementary_Sorts; /** * Created by coco1 on 2016/9/18. * 希爾排序(Shell Sort)是插入排序的一種。 * 也稱縮小增量排序,是直接插入排序算法