原创 kettle工具使用及集成

kettle簡介 Kettle是一款免費開源的基於Java的企業級ETL工具,功能強大簡單易用,無可抗拒。 kettle有兩個比較重要且常用的腳本文件:1)轉換(Transformation)和作業(Job),其中轉換是對數據處理的容器

原创 HashMap的實現原理

1. HashMap的數據結構 數據結構中有數組和鏈表來實現對數據的存儲,但這兩者基本上是兩個極端。       數組 數組存儲區間是連續的,佔用內存嚴重,故空間複雜的很大。但數組的二分查找時間複雜度小,爲O(1);數組的特點是:尋址容

原创 github常用指令

本站爲 Git 學習參考手冊。目的是爲學習與記憶 git 使用中最重要、最普遍的命令提供快速翻閱。 這些命令以你可能需要的操作類型劃分,並且將提供日常使用中需要的一些常用的命令以及參數。 本手冊將從入門到精通指導大家。

原创 java中的反射機制

(一)什麼是反射: 反射就是把java類中的各種成分映射成一個個的java對象(加載類,然後解刨出類的各個組成部分)。例如,一個類由: 成員變量,方法,構造方法,包等等信息,利用反射技術可以對一個類進行解剖,把各個組成部分映射成一個個對象

原创 java多線程之ThreadLocal

在線程同步中,我們可以使用鎖機制,或者通過CAS。但是還有一種方法就是ThreadLocal。這裏先舉一個生活中的例子, 比如,讓100個人填寫個人信息表,如果只有一支筆的話,那麼大家就得挨個填寫,爲了讓每個人都能完成的填寫,我們就需要

原创 使用scrapy+IP代理+多線程爬蟲對拉鉤網在杭州互聯網職位信息的抓取

這是本人第一次寫博客,難免會有很多寫的不妥的地方,歡迎大家給予指導,來互相 學習!本篇博客涉及的代碼在本人的 github上【地址】,歡迎隨時訪問! 本人寫這個爬蟲程序的初衷是想分析一下拉鉤網上杭州互聯網職位的一些狀況,主要從一下幾個

原创 java線程池原理講解及常用創建方式

(一)什麼是線程池 其實線程池的概念和數據庫鏈接池的概念類似。線程池的作用就是爲了避免系統頻繁地創建和銷燬線程。在線程池中, 總有幾個活躍的線程,當你需要使用線程是,可以從池子中隨便拿一個空閒線程,當完成工作是,並不是關閉線程,而是 將這

原创 java對互斥同步的優化

本人在看《實戰java高併發程序設計》關於java虛擬機對鎖優化時,感覺介紹的不是很清晰。本人在結合之前自己看的 《深度理解java虛擬機》一書,然後整理出本人對java虛擬機對鎖的優化的理解,在這裏本人着重介紹CAS,鎖偏向、輕量級鎖、

原创 java多線程之重入鎖ReentrantLock

在講重入鎖(ReentrantLock)之前,相信大家都synchronized很熟悉了,它也是同步控制的一個重要鎖,決定了一個線程 是否可以訪問臨界資源,同時synchronized配合Object.wait()和Object.noti

原创 java中的代理和動態代理講解

在說到動態代理模式,我們首先說一說什麼是代理模式。 什麼是代理模式: Proxy Pattern(即:代理模式),23種常用的面向對象軟件的設計模式之一 代理模式的定義:這裏先舉一個例子,假設某人要找對象,但是由於某些原因不能直接去

原创 java虛擬機動態類型語言支持

這篇博客是根據《深入理解java虛擬機》的講解和本人對動態類型語言的一些認識,來深度剖析一下java虛擬機對動態類型語言的支持! (一)什麼是動態類型語言 在講解java虛擬機對動態類型語言支持之前,我們首先要弄明白動態類型語言是什麼?它

原创 java中自動裝箱拆箱的陷阱

本人曾經實習面試的時候遇到的一個java自動裝箱的陷阱,當時就是不太明白,回來自己琢磨了一下這個問題,在此作爲總結, 希望讓剛開始接觸java的同學以後避免這個坑! 好了廢話不多說,直接貼出這段代碼: public static voi