原创 Redis數據庫--快速入門手冊

注:本篇博客的所有測試環境均爲Ubuntu16.04之下,本篇博客總結自Redis教程。 數據庫的安裝與配置 Ubuntu下安裝 $sudo apt-get update $sudo apt-get install redis

原创 Java網絡爬蟲(五)--使用Jsoup的select語法進行元素查找

使用Jsoup進行元素的查找有兩種方法。有使用DOM方法來遍歷一個文檔,也有使用選擇器語法來查找元素,而後者類似於CSS或jQuery的語法來查找和操作元素。對於這兩個方法到底使用哪個感覺好上手我覺得因人而異,在我嘗試了兩種方法之

原创 JVM--Class類文件結構(一)

不知道大家有沒有對.java文件進行編譯之後生成的.class文件好奇過。 我們都知道Java中的class文件是經過Java編譯器對Java類文件進行編譯後的產物。我想有不在少數的C程序員在學習Java之後在認知上會粗略的認爲C

原创 Java網絡爬蟲(十三)--PhantomJs的使用及性能優化

先說點題外話吧,在我剛開始學習爬蟲的時候,有一次一個學長給了我一個需求,讓我把京東圖書的相關信息抓取下來。恩,因爲真的是剛開始學習爬蟲,並且是用豆瓣練得手,抓取了大概500篇左右的影評吧,然後存放到了mysql中,當時覺得自己厲害

原创 Java網絡爬蟲(七)--實現定時爬取與IP代理池

注:對代碼及思路進行了改進—Java網絡爬蟲(十一)–重構定時爬取以及IP代理池(多線程+Redis+代碼優化) 定點爬取 當我們需要對金融行業的股票信息進行爬取的時候,由於股票的價格是一直在變化的,我們不可能手動的去每天定時定

原创 查找--理解哈希算法並實現哈希表

我們喜歡使用數組進行數據的查找,就是因爲數組是一種“隨機存取”的數據結構,我們根據數組的起始地址和數組元素的下標值就可以直接計算出每一個數組元素的存儲位置,所以它的查找時間是O(1),而與數組的個數無關。 我們在這個思想的基礎上,

原创 Java網絡爬蟲(九)--海量URL去重之布隆過濾器

簡介布隆過濾器 當我們要對海量URL進行抓取的時候,我們常常關心一件事,就是URL的去重問題,對已經抓取過的URL我們不需要在進行重新抓取。在進行URL去重的時候,我們的基本思路是將拿到的URL與已經抓取過的URL隊列進行比對,看

原创 JVM--解析Java內存區域及數據的內存分配與線程安全之間的一些聯繫

最近一直在看《Java多線程編程核心技術》的第二章,主要講的是線程共享變量與線程私有變量以及如何寫出線程安全的代碼。看這部分一開始沒太注意,只是記住了一條規則,“類中的成員變量,也叫實例變量,也叫全局變量,它是非線程安全,是所有線

原创 查找--二叉查找樹分析與實現

爲什麼我們需要掌握這些“高端”的樹型結構 事實上,大型數據庫的組織結構一般採用樹型結構,我們必須要解決頻繁更新數據的能力,要求支持高效的動態查找能力,包括記錄的插入,刪除,精確匹配查詢,範圍查詢和最大值、最小值查詢。但是由於數據庫

原创 Spring--關於《Spring實戰》中第5章SpringMVC中表單驗證無效問題

原文地址:關於SpringMVC中表單驗證無效問題

原创 Spring--java.lang.ClassNotFoundException: org.apache.commons.dbcp2.BasicDataSource問題解決

IDEA報錯如下: Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp2.BasicDataSource at org.apache.cat

原创 Java網絡爬蟲(十)--使用多線程提升爬蟲性能的思路小結

在開始說正事之前我先給大家介紹一下這份代碼的背景,以免大家有一種霧裏看花的感覺。在本系列的前幾篇博客中有一篇是用多線程進行百度圖片的抓取,但是當時使用的多線程是非常粗略的,只是開了幾個線程讓抓取的速度提升了一些(其實提升了很多),

原创 Spring--《Spring實戰》The temporary upload location [/tmp/uploads] is not valid

在看《Spring實戰》第七章的時候,需要上傳文件,書上說的是將上傳的圖片保存在/tmp/uploads這個目錄下,因此我給項目的根路徑下創建了/tmp/uploads這個目錄,但是卻出現了標題中的錯誤,經過一番鬥爭之後,明白了問

原创 C語言--一個實參與形參賦值引發的思考

首先來看一段代碼: #include<stdio.h> void foo(const char **p) { } void main(int argc, char **argv) { foo(argv);

原创 Java併發--DCL雙檢查鎖機制中的volatile

作爲被面試官最喜歡問到的23種設計模式之一,我們不得不熟練掌握單例模式以及洞悉多線程環境下,單例模式所存在的非線程安全問題以及它的解決方式。 注:這篇文章主要講述多線程環境下單例模式存在的非線程安全問題,並不詳細講述單例模式。