原创 5、設計模式分爲 3 大類型共 23 種

創建型:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。   結構型:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。   行爲型:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式

原创 2、Mysql 創建索引

一、爲什麼需要索引? 索引是數據表種一個或者多個列進行排序的數據結構 索引能夠大幅提升檢索速度 創建、更新索引本身也會耗費空間和時間 二、查找結構進化史 線性查找:一個個找;實現簡單;太慢 二分查找:有序;簡單;要求是有序的,插入特別慢

原创 9\ JAVA 對象內存結構

  HotSpot虛擬機中,對象在內存中存儲的佈局可以分爲三塊區域:對象頭(Header)、實例數據(Instance Data)和對齊填充(Padding)。  對象頭 markWord 用於存儲對象自身的運行時數據, 如哈希碼(H

原创 1、spark-數據傾斜問題

轉: http://lxw1234.com/archives/2016/05/663.htm 數據傾斜調優, 使用各種技術方案解決不同類型的數據傾斜問題,以保證spark作業的性能。 現象: 絕大多數task執行都非常塊,但是個別task

原创 1、JVM內存模型,哪些是線程共有的,哪些是線程私有的。

詳解 JVM 內存模型 JVM 內存模型主要指運行時的數據區,包括 5 個部分,如下圖所示    棧也叫方法棧,是線程私有的,線程在執行每個方法時都會同時創建一個棧幀,用來存儲局部變量表、操作棧、動態鏈接、方法出口等信息。調用方法時執行入

原创 3、spark shuffle原理

  轉: https://www.jianshu.com/p/009f325e34a2 總結 前提: 每一個job提交後都會生成一個ResultStage和若干個ShuffleMapStage 其中ResultStage表示生成作業的最終

原创 4、hive 各種order排序的區別

1、 order by  排序,全局排序,默認升序, 只有一個reducer, 導致運行緩慢, 需要較長的計算時間。 2、 sort by   局部排序,其在數據進入reducer前完成排序,因此如果用sort by 進行排序,並且設置

原创 7、Exception和Error有什麼區別?

exception 和 error都是繼承了 throwable類,在java中只有 throwable類型的實例纔可以被拋出  throw活着 捕獲  catch,它是異常處理機制的基本組成類型,  exception和error 體現

原创 4、面試題思考: 什麼是事務(ACID)?

事務(Transaction)是由一系列對系統中數據進行訪問與更新的操作所組成的一個程序 執行邏輯單元(Unit)。 狹義上的事務特指數據庫事務。一方面,當多個應用程序併發訪問數據庫時,事務可以在這些應用程序之間提供一個隔離方法,以防止彼

原创 8、NoClassDefFoundError 和 ClassNotFoundException 有什麼區別?

classnotfoundexception 當程序運行的過程中嘗試使用類加載器去加載class文件的時候,如果沒有在classpath中查找到指定的類,就會拋出classnotfoundexception。一般情況下,當我們使用 cla

原创 1、 經典排序算法

十大排序算法可以說是每個程序員都必須得掌握的了,花了一天的時間把代碼實現且整理了一下,爲了方便大家學習,我把它整理成一篇文章,每種算法會有簡單的算法思想描述,爲了方便大家理解,我還找來了動圖演示;這還不夠,我還附上了對應的優質文章,看完不

原创 3、MyISAM 和 INNODB的區別是什麼

區別: 1. InnoDB支持事務,MyISAM不支持,對於InnoDB每一條SQL語言都默認封裝成事務,自動提交,這樣會影響速度,所以最好把多條SQL語言放在begin和commit之間,組成一個事務;  2. InnoDB支持外鍵,而

原创 8、Hive/HiveQL常用優化方法全面總結(下篇)

本文接上篇(https://www.jianshu.com/p/8e2f2f0d4b6c)繼續講解Hive/HiveQL常用優化方法,按照目錄,會從“優化SQL處理join數據傾斜”說起。 優化SQL處理join數據傾斜 上篇已經多次提到

原创 6、談談你對 Java 平臺的理解?“Java 是解釋執行”,這句話正確嗎?

典型回答: java本身是一種面向對象的語言,最顯著的特性有兩個方面,一試所謂的  書寫一次,到處運行, write once ,run  anywhere ,能夠非常容易的獲得跨平臺能力,  另外就是垃圾回收 gc    garbage

原创 2、spark-簡單優化

1、 原則一:避免創建重複的RDD 原則二:儘可能複用同一個RDD 原則三:對多次使用的RDD進行持久化 原則四:儘量避免使用shuffle類算子 原則五:使用map-side預聚合的shuffle操作 建議使用reduceByKey或者