原创 Java工程師面試1000題111-120

111、說說你對Java中反射的理解。 Java中的反射是可以讓我們在運行時獲取類的方法、屬性、父類、接口等類的內部信息的機制。也就是說,反射本質上是一個“反着來”的過程。我們通過new創建一個類的實例的時候,實際上是由Java虛擬機根據

原创 SparkSQL實戰8——綜合實戰完成日誌分析4

需求、按流量統計主站最受歡迎的TopN課程並保存到MySQL 創建一張表: create table day_video_traffics_topn_stat( day varchar(8) not null, cms_id bigin

原创 SparkSQL實戰6——綜合實戰完成日誌分析2

需求、統計最受歡迎的topN課程 import org.apache.spark.sql.{DataFrame, SparkSession} import org.apache.spark.sql.functions._ /**

原创 SparkSQL實戰7——綜合實戰完成日誌分析3

需求:按地市統計主站最受歡迎的TopN課程 //按照地市進行統計TopN課程 def cityAccessTopNStat(spark:SparkSession,accessDF:DataFrame):Unit = {

原创 Java工程師面試1000題91-100

91、JVM的類加載機制是什麼?有哪些實現方式? 類加載機制:類的加載指的是將類的.class文件中的二進制數據讀入到內存中,將其放在運行時數據區的方法去內,然後在堆區創建一個java.lang.Class對象,用來封裝在方法區內的數據結

原创 Java工程師面試1000題101-110

101、爲什麼要使用線程池? 線程池的作用就是限制系統中執行線程的數量。根據系統的環境情況,可以手動的或者自動的設置線程數量,少了浪費系統資源,多了造成系統擁擠效率不高。使用線程池控制線程數量,其他線程排隊等候,一個任務執行完畢,再從隊列

原创 SparkSQL實戰5——綜合實戰完成日誌分析1

1、離線處理架構圖: 2、數據處理流程: 數據採集:使用Flume採集web日誌信息到HDFS中去 數據清洗:將髒數據清理,使用Spark、hive、MapReduce等分佈式計算框架 數據處理:按照我們的需要進行相應業務的統計和分析,

原创 Java工程師面試1000題81-90

81、說一說你知道的JVM的垃圾收集算法。 標記-清除算法 複製算法 標記-整理算法 分代收集算法 82、再說說標記-清除算法。 標記-清除算法分爲“標記”和清除兩個階段;首先需要標記出所有需要回收的對象,在標記完成後統一回收所有被標記的

原创 Java工程師面試1000題71-80

71、什麼是線程安全和線程不安全? 線程安全就是多線程訪問時,採用了加鎖機制,當一個線程訪問該類的某個數據時,進行保護隔離,使其他線程不能進行訪問,直到該線程讀取完,其他線程纔可以使用,不會出現數據不一致或者數據污染。 線程不安全就是不提

原创 Java工程師面試1000題61-70

61、Map中的key和value可以爲null嗎? HashMap對象的key和value均可以爲null; HashTable對象的key和value均不可以爲null。 且兩者的key值均不能重複,若添加key相同的鍵值對後,後面的

原创 Java工程師面試1000題51-60

51、講一講ArrayList的內部實現。 回答這樣的問題,不要光回答個皮毛,可以詳細介紹一下ArrayList內部是如何實現數組的增加和刪除的,要知道,數組在創建的時候長度是固定的,那麼我們往ArrayList中不斷添加對象的時候,它是

原创 SparkSQL實戰4——外部數據源API

1、產生背景 每一個Spark應用程序往往都會以加載一個數據源開始,保存數據結束。爲了讓用戶可以方便地從不同的數據源(json、parquet、rdbms),經過混合處理(json join parquet)再將處理結果以特定的格式(js

原创 Java工程師面試1000題41-50

41、什麼是Java序列化?如何實現Java序列化? 序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化,可以對流化後的對象進行讀寫操作,也可以將流化後的對象傳輸與網絡之間。序列化是爲了解決在對對象流進行讀寫操作時所

原创 SparkSQL實戰3——DataFrame和Dataset

1、前言 DataFrame並不是Spark最新提出使用的,DataFrame最早是在R、Python語言中使用的。 Dataset是一個分佈式的數據集;而DataFrame是一個以列(包括列名、列的類型、列值)的形式構成的分佈式數據集,

原创 記一次使用Jedis客戶端獲取不到資源(Could not get a resource from the pool)的填坑經歷

經歷描述:本人聯合一狗蛋開發一個小APP,本人負責服務器的開發,狗蛋負責APP的開發。登錄驗證使用到了Redis做Token緩存,於是使用了Jedis庫來操作阿里雲服務器上的Redis。項目一開始,我便隨便從網上找了別人封裝好了的Jedi