原创 大數據知識二-大數據組件

離線計算組件 1.1 hive  hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供簡單的sql查詢功能,可以將sql語句轉換爲MapReduce任務進行運行。 其優點是學習成本低,可以通過類S

原创 大數據基礎一

整個大數據處理的體系,按我的理解可以分爲兩個部分,一個是分佈式存儲系統、另一個是分佈式計算框架。分佈式存儲系統主流是HadoopDFS,其他還有Ceph和Swift。分佈式計算框架主流是MapReduce,Storm和Spark。    

原创 Spring AOP 實現原理

什麼是AOPAOP(Aspect-OrientedProgramming,面向方面編程),可以說是OOP(Object-Oriented Programing,面向對象編程)的補充和完善。OOP引入封裝、繼承和多態性等概念來建立一種對象層

原创 新隨筆管理 query 的ready() 與indow.onload()的區別

做web開發時常用query中$(document).ready()和JavaScript中的Bwindo.onload方法,兩者都是要在頁面加載完成以後加載的方法,但是這兩者還是有很大區別的。最近遇到了這樣的問題,查詢了多篇文章,做一下

原创 JAVA線程池原理詳解

線程池的優點1、線程是稀缺資源,使用線程池可以減少創建和銷燬線程的次數,每個工作線程都可以重複使用。2、可以根據系統的承受能力,調整線程池中工作線程的數量,防止因爲消耗過多內存導致服務器崩潰。線程池的創建1 public ThreadPo

原创 java內存之可見性volatile

如果一個線程對共享變量的修改,能夠被其它線程看到,那麼就能說明共享變量在線程之間是可見的。如果一個變量在多個線程的工作內存中都存在副本,那麼這個變量就是這幾個線程的共享變量。Java內存模型(Java Memory Model,JMM)描

原创 java中CheckException和UnCheckException的區別

在java中,異常分爲兩種,運行時異常(也就是uncheckException)和已檢查異常checkException,運行時異常包括平常遇到的各種異常,如空指針異常,數據格式異常等一系列異常,這種異常是可以不捕獲的,可通過throws

原创 Spirng IOC與DI

學習過Spring框架的人一定都會聽過Spring的IoC(控制反轉) 、DI(依賴注入)這兩個概念,對於初學Spring的人來說,總覺得IoC 、DI這兩個概念是模糊不清的,是很難理解的,今天和大家分享網上的一些技術大牛們對Spring

原创 java分佈式緩存技術

開發中大型Java軟件項目時,很多Java架構師都會遇到數據庫讀寫瓶頸,如果你在系統架構時並沒有將緩存策略考慮進去,或者並沒有選擇更優的緩存策略,那麼到時候重構起來將會是一個噩夢。本文主要是分享了5個常用的Java分佈式緩存框架,這些緩存

原创 java內存的可見性volatile之一

volatile兩大作用1、保證內存可見性2、防止指令重排此外需注意volatile並不保證操作的原子性。(一)內存可見性1 概念JVM內存模型:主內存和線程獨立的工作內存Java內存模型規定,對於多個線程共享的變量,存儲在主內存當中,每

原创 TCP/IP和UDP的區別之二

TCP、UDP詳解1、傳輸層存在的必要性       由於網絡層的分組傳輸是不可靠的,無法瞭解數據到達終點的時間,無法瞭解數據未達終點的狀態。因此有必要增強網絡層提供服務的服務質量。2、引入傳輸層的原因       面向連接的傳輸服務與面

原创 線程池之一

爲什麼用線程池創建/銷燬線程伴隨着系統開銷,過於頻繁的創建/銷燬線程,會很大程度上影響處理效率例如:記創建線程消耗時間T1,執行任務消耗時間T2,銷燬線程消耗時間T3如果T1+T3>T2,那麼是不是說開啓一個線程來執行這個任務太不划算了!

原创 TCP HTTP UDP 區別之一

TCP   HTTP   UDP: 這是通信協議,也就是通信時所遵守的規則,只有雙方按照這個規則“說話”,對方纔能理解或爲之服務。 socket: 這是爲了實現以上的通信過程而建立成來的通信管道,其真實的代表是客戶端和服務器端的一個通信進

原创 ps aux|grep xxx詳解

linux命令ps aux|grep xxx詳解 要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程, 而ps命令(Process Status)就是最基本同時也是非常強大的進程查看命令. 使用該命令

原创 Java線程的什麼週期的5種狀態及切換

ava中的線程的生命週期大體可分爲5種狀態。1. 新建(NEW):新創建了一個線程對象。2. 可運行(RUNNABLE):線程對象創建後,其他線程(比如main線程)調用了該對象的start()方法。該狀態的線程位於可運行線程池中,等待被