原创 Collection集合概覽

Container taxonomy 上圖是Java容器分類圖,初看這張圖可能會有點龐大,但是實際上只有三個組件:Map, List, and Set。 我們解讀一下其中的組件: 1.黑色粗線框所代表的是我們常用的容器組件,

原创 Maven依賴配置和依賴範圍

Maven依賴配置 一個dependency的聲明可以包含以下元素: <dependencies> <dependency> <groupId>org.apache.kafka</groupId>

原创 如何中斷一個線程?

一、瞭解interrupt、interrupted、isInterrupted public void interrupt(); Thread#interrupt()並不能真正的中斷線程,而是通知線程應該中斷了。具體到底中斷還是

原创 會計基礎理論

一、會計的基本假設 會計主體,是指會計工作爲其服務的特定單位或組織。 持續經營,是指會計主體的生產經營活動將無限期地延續下去,在可以預見的未來,會計主體不會因清算、解散、倒閉而不復存在。 會計分期,是指將會計主體持續不斷的經營過

原创 Java讀取文件數據

晚上在研習循環結構程序設計[注]的時候,有一節是關於文件操作的。要求從文件中讀入數據,求出它們的最小值、最大值和平均值。入門算法對我們不是問題,不過文件讀取還是值得寫一下的。 注:相關PDF下載地址是http://downloa

原创 Java反射獲取父類中的元素

我們知道,可以通過getDeclaredField和getField方法可以反射獲取class中的元素,他們的區別在於getField只能訪問公有變量,而getDeclaredField則可以訪問定義的所有變量,包括protect

原创 垃圾收集器

垃圾收集器 如果說收集算法是內存回收的方法論,那麼垃圾回收器就是內存回收的具體實現。 不同廠商、不同版本的虛擬機所提供的垃圾收集器可能有很大差別,並且一般會根據應用特點和要求組合出各個年代所使用的收集器。 HotSpot虛擬機

原创 Spark核心--RDD

RDD RDD(Resilient Distributed Datasets)即彈性分佈式數據集,它是Spark的核心概念,我們從以下幾點來理解它: 1. RDD由多個Partition構成,是分佈在集羣中的只讀對象的集合。

原创 Spark運行模式

我們先看一個完整的實例wordcount import org.apache.spark._ import SparkContext._ object WordCount { def main(args: Array[St

原创 Spring事務管理

Transactional註解屬性 public @interface Transactional { String value() default ""; // 該屬性用於設置事務的傳播行爲 Propa

原创 對象創建、內存佈局和訪問定位

對象創建 在語言層面上,創建對象通常僅是一個new關鍵字而已,而在虛擬機中,對象的創建又是怎樣一個過程呢? 虛擬機遇到一條new指令時,首先將去檢查這個指令的參數是否能在常量池中定位到一個類的符號引用。如果沒有,則先執行相應的類

原创 Mybatis插入時間沒有時分秒只有年月日

起因 前幾天單元測試發現,數據庫中的日期類型字段只插入了不帶時分秒的值。 Debug下來確認,入庫前實體字段裏存的時間值是正常的,立即猜測問題出在Mybatis裏。xxxMapper.xml裏是這麼寫的, <if test="

原创 MyBatis在Oracle中插入數據的返回值

在使用MyBatis做持久層時,insert和update語句默認返回影響行數。可從MyBatis源碼中得到證實,如下。 public int update(Statement statement) throws SQLExc

原创 Dubbo超時配置

超時機制 Dubbo是阿里開源的分佈式遠程調用方案(RPC),由於網絡或服務端不可靠,會導致調用出現一種不確定的中間狀態(超時)。爲了避免超時導致客戶端資源(線程)掛起耗盡,必須設置超時時間。 Provider可以配置的Consu

原创 自動裝箱和拆箱

自動裝箱和拆箱是什麼 在Java中,數據類型可以分爲兩大類:Primitive Type(原始類型)和Reference Type(引用類型)。基本類型的數值不是對象,不能調用對象的toString()、hashCode()、ge