原创 《java多線程編程核心技術》讀書筆記2.2:volatile關鍵詞

第二章 對象及變量的併發訪問 在我們講解volatile這個關鍵詞時,我們首先要,瞭解一下變量在內存中工作的過程: java程序在運行的過程當中有主內存和線程內存之分:程序在啓動的時候會將所有的變量加載到主內存當中,線程在運行時有一下

原创 《java多線程編程核心技術》讀書筆記3:線程間的通信

第三章:線程間的通信   Wait()方法:線程放棄鎖,進入等待狀態; Notify()方法:喚起任意一個等待的線程,只喚起一個,而且是隨機的。 NotifyAll()方法:喚起所有等待的線程,這些線程,爭搶(鎖)運行的權利;當調用not

原创 《編程之美》讀書筆記-1.5快速找出機器故障

題目:假設一個機器只存儲一個標號爲ID的記錄,假設每份數據保存2個備份,這樣就有2個機器存儲了相同的數據。其中ID是小於10億的整數 問題1、在某個時間,如果得到一個數據文件ID的列表。是否能夠快速的找到這個表中僅出現一次的ID?即快速找

原创 《java多線程編程核心技術》讀書筆記2.1

第二章 對象及變量的併發訪問 本節主要總結了一些synchronized的使用方法: 在java中:“非線程安全”的問題存在於“實例變量”中,如果是方法內部的私有變量,則不存在“非線程安全“的問題。 synchronized加在方法的

原创 《java多線程編程核心技術》讀書筆記6:線程中的異常處理

第七章:拾遺增補 SimpleDateFormat這個類主要負責日期的轉換與格式化,但是在多線程中,使用此類容易造成數據轉換及處理的不準確,因爲SimpleDateFormat類並不是線程安全的。 在多線程的環境下如果每一個線程都使用相

原创 leetcode14:Longest Common Prefix

leetcode14:Longest Common Prefix Write a function to find the longest common prefix string amongst an array of strings

原创 readResolve方法

在Java中,序列化可以用於對象的深克隆,此時克隆出來的對象和原來的對象不是同一個對象,但是有時需要用到單例模式,但是反序列化並不滿足,所以Java提供了readResolve方法,來保證反序列化以後的對象和原對象是同一個對象。 pr

原创 《java多線程編程核心技術》讀書筆記5:定時器Timer類的使用

第5章:定時器Timer 在JDK庫中,Timer類主要負責計劃任務的功能,也就是在指定的時間開始執行某一任務,Timer類的主要任務就是設置計劃任務,但封裝任務 的類是TimerTask,執行計劃任務的代碼要放到TimerTask的子類

原创 leetcode15:3Sum

3Sum 我覺得做算法題,一般在不能一下子給出最終的解得時候,應該循序漸進的結局問題,先給出一個近似正確的答案,並進行不斷地修正,一步一步的逼近最終得答案,就向這道題一樣,可以先實現有重複解得程序,再在這個程序的基礎上實現無重複的解。

原创 DCL雙檢查機制

DCL雙檢查鎖機制 雙檢查鎖就是在同步代碼塊調用之前檢查一遍,載再在同步代碼塊內部再檢查一遍。雙重保險 public class ServiceA { private volatile static ServiceA service

原创 《java多線程編程核心技術》讀書筆記1

第一章:java多線程技能 在學習線程之前我們首先要清楚一下進程的概念:            進程是操作系統結構的基礎,是系統進行資源分配的和調度的獨立單位。windows上一個運行的word,一個瀏覽器程序就稱之爲一個進程。 線

原创 《java多線程編程核心技術》讀書筆記4:Lock的使用

第四章:Lock的使用 在Java中,除了通過synchronized關鍵字進行同步處理意外,Java還提供了另外的方法進行同步,這就是Lock這個類;       Lock lock = new ReentrantLock();  

原创 (2)Android插件化編程思想

本篇博客是學習《Android插件化開發指南》的一個總結 1. 插件化的優勢 a> 快速修復應用中的bug,不需要重新發版本 b> 快速響應需求,能夠將應用業務的變化動態的發佈給用戶 其實以上的兩個優點也可以總結成一個,就是用戶重新不要重

原创 (1)Android動態權限申請

原文鏈接:https://www.jianshu.com/p/2324a2bdb3d4 Android權限的申請有兩種方式,靜態獲取和動態獲取。 靜態獲取:是在APP安裝的時候一次性獲取App所

原创 通過Launcher啓動應用的過程分析

通過Launcher啓動應用的過程分析 通過Lanucher啓動 應用時會調用Lanucher的onClick方法。 Lanucher.java /** * Launches the intent refer