原创 Java多線程案例生產者消費者

概述 在中國併發這個詞已經非常常見了,比如雙十一購物狂歡節的淘寶,過年回家的春運12306,這都是我們生活中的併發。在短時間內大量集中的訪問一個服務器。然而Java又是解決併發的一把好手,下面簡單介紹一下多線程案例的經典案例,生產

原创 Java數據結構 -- 鏈表

生活中的鏈表 鏈表其實是一個一環扣一環的東西,最簡單明瞭的就是我們的鏈子了,它就是一個一環扣一環的東西 鏈表介紹 鏈表在內存中的圖解可以用下圖來表示 鏈表是以節點的方式存儲,是一個鏈式存儲。 每個節點都有一個data域,和

原创 Java所有類的超類Object

概述 Object類是Java中所有類的始祖,在Java中每個類都是由它擴展而來的。 如果沒有明確指出超類,Object被默認是這個類的超類。 Object的用途 可以使用Object類型的變量引用任何類型的變量 public v

原创 逆波蘭表達式實現簡單計算器功能

問題概述 我們完成一個逆波蘭計算器,要求完成如下任務 輸入一箇中綴表達式,轉成後綴表達式(逆波蘭表達式),使用stack計算結果 要求支持小括號,和多位整數,我們暫時不考慮小數問題 逆波蘭表達式書寫 逆波蘭表達式(Revers

原创 Java數據結構----稀疏數組

我們先看一個實際的需求: 編寫一個五子棋盤程序,並存在退出後存盤功能和續上盤的功能。 解決方案 方案一:將這個棋盤模擬成一個二維數組,將數據存儲起來。 方案二:使用稀疏數組,將棋盤存儲起來,並達到一個數據壓縮的效果。 解決方

原创 字符串匹配KMP算法實現

應用場景 已知有一個字符串str1 = "BBCABCDABABCDABCDBDE"和另外一個字符串str2 = "ABCDABD" 現在需要你來判斷str1是否包含str2,如果包含返回一個true,不存在返回一個false

原创 Java的GC垃圾回收機制

什麼是GC垃圾回收 垃圾回收(Garbage Collection)是Java虛擬機(JVM)垃圾回收器提供的一種用於在空閒時間不定時回收無任何對象引用的對象佔據的內存空間的一種機制。 注意:垃圾回收回收的是無任何引用的對象佔據的

原创 Java數據結構---隊列

首先我們來看一個隊列在實際生活中的場景 我們在銀行辦理業務,是不是會看到這樣一種場景,有一隊人正整齊的排着隊,在窗口前,等待辦理業務,其實這就是隊列在實際應用中的一個體現。 隊列的特點 隊列的是Java數據結構中的一種,它的一個

原创 Java排序算法基數排序(桶排序)

概述 Java中排序算法是非常重要的一部分,這裏簡單分析下基數排序(桶排序)的實現思路及其代碼實現。 常見排序算法時間複雜度表 排序算法 平均時間複雜度 最差情形 穩定度 額外空間 備註 冒泡排序 O(n^2) O(

原创 Spring事物註解@Transactional失效場景

概述 @Transactional註解相信大家都不陌生,平時在開發中spring框架中經常用到的事物註解。 他的作用就是控制程序執行的原子性,保證程序要提交就一起提交,如果出現錯誤,則一起進行回滾操作。 但是在使用@Transac

原创 設計模式Java原型模式

原型模式基本介紹 原型模式(prototype模式)是指:用原型實例指定創建對象的種類,並且通過拷貝這些原型,創建新的對象 原型模式是一種創建型設計模式,允許一個對象在創建另外一個可定製的對象,無需知道如何創建的細節 工作原理:

原创 MySQL SQL語句優化explain關鍵字

概述 在目前這個大數據,大流量時代,我們的網站不光流量大,數據量也會非常的巨大。在巨大的數據量中精確找出我們需要的數據,這個對我們數據庫壓力比較大。而我們在不考慮進行分庫分表的操作時,進行SQL語句優化是一個很好的解決辦法,下面介

原创 jsoup使用教程

jsoup是一款Java的html解析工具,主要是對html和xml文件進行解析 在寫爬蟲的時候,當我們用HttpClient之類的框架,得到目標網頁的源碼後,需要從網頁源碼中取得我們想要的內容。就可以使用jsoup輕鬆獲取想要的

原创 Java零拷貝問題

概述 零複製(英語:zero-copy;也叫做零拷貝)技術是指計算機執行操作時,cpu不需要先將數據從某處內存複製到另外一個特定區域。這種技術通常通過網絡傳輸文件時節省CPU週期和帶寬。 傳統IO傳輸模型 傳統IO分析 在Jav

原创 HashMap如何添加元素詳解

Map接口結構 map接口是一個雙邊隊列,擁有key,value兩個屬性,其中key在存儲的集合中不允許重複,value可以重複。 MapHashMapLinkedHashMapHashtable實現map接口實現map接口繼承H