原创 關於Java數組,你該瞭解這些

一、數組的概述 數組(Array),是多個相同類型數據按一定順序排列的集合,並使用一個名字命名,並通過編號的方式對這些數據進行統一管理。 數組的常見概念 數組名 下標(或索引) 元素 數組的長度 數組本身是引用數據類型,而

原创 多維數組和矩陣之順時針打印二維數組

題目描述: 輸入一個矩陣,按照從外向裏以順時針打印出每一個數字,例如:輸入如下矩陣, 則依次打印出的數字爲: 1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10 算法思路 打印順序如圖所示: 順時針打

原创 多維數組與矩陣之子矩陣的最大累加和

問題描述 給定一個矩陣matrix,其中的值有正、有負、有0,返回子矩陣的最大累加和。 例如,matrix爲: 其中最大累加和的子矩陣爲: 2 2 所以返回4。 算法思路 對矩陣按列求和存到數組裏,然後再求此數組的子數組的最大累

原创 設計模式之觀察者模式詳解(Observer Pattern)

模式的定義與特點 定義 觀察者模式(又被稱爲發佈-訂閱(Publish/Subscribe)模式,屬於行爲型模式的一種,它定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態變化時,會通知所有的

原创 設計模式之狀態模式詳解(State Pattern)

在軟件開發過程中,應用程序中的有些對象可能會根據不同的情況做出不同的行爲,我們把這種對象稱爲有狀態的對象,而把影響對象行爲的一個或多個動態變化的屬性稱爲狀態。當有狀態的對象與外部事件產生互動時,其內部狀態會發生改變,從而使得其行爲

原创 利用反射實現一個servlet處理多個請求

前言: 最近在用jsp+sevlet+Mysql知識寫一個簡單的博客系統,剛開始寫的時侯沒有了解到反射機制,所以便使用一個servlet處理一個請求的方式,這種方式無疑是不行的當你有成千上萬個請求的時候難道要寫成千上萬個servl

原创 設計模式之代理模式詳解(Proxy Pattern)

基本介紹 代理模式:爲一個對象提供一個替身,以控制對這個對象的訪問。即通過代理對象訪問目標對象. 這樣做的好處是:可以在目標對象實現的基礎上,增強額外的功能操作,即擴展目標對象的功能。 被代理的對象可以是遠程對象、創建開銷大

原创 Mybatis 批量更新—MySQL設置支持批量更新

今天寫數據庫批量更新時,碰到了一個令人窒息的問題。什麼都準備好,sql語句也測試好了,但是一運行就是報sql語句語法有錯誤,後來花了一兩個小時才找到到底怎麼回事? 原來是還要設置MySQL支持批量操作!!! 接下來展示一下整個批量

原创 設計模式之策略者模式詳解(Strategy Pattern)

其他設計模式 設計模式之建造者模式理解 設計模式之橋接模式理解 設計模式之適配器模式理解 設計模式之裝飾者模式詳解 設計模式之組合模式詳解 設計模式之外觀模式詳解(Facade Pattern) 設計模式之享元模式詳解(FlyWe

原创 多維數組與矩陣之子數組的最大累加和

問題描述 給定一個數組arr,返回子數組的最大累加和 例: arr = [1,-2,3,5,-2,6,-1];所有子數組中[3,5,-2,6]可以累加出最大的和爲12,所以返回12。 算法思路 注:首先解釋一下什麼是子數組?即一段

原创 Java最大公約數與最小公倍數

題目描述 輸入兩個正整數m和n,求其最大公約數與最小公倍數。 比如:12和20的最大公約數爲4,最小公倍數是60。 解題思路 首先我們需要了解什麼是最大公約數、最小公倍數? 如果數a能被數b整除,a就叫做b的倍數,b就叫做a的約數

原创 設計模式之適配器模式理解

基本介紹 配器模式(Adapter Pattern)將某個類的接口轉換成客戶端期望的另一個接口表示,主的目的是兼容性,讓原本因接口不匹配不能一起工作的兩個類可以協同工作。其別名爲包裝器(Wrapper) 適配器模式屬於結構型模式

原创 JdbcTemplate獲取插入數據時的自增主鍵ID

Spring JdbcTemplate利用GeneratedKeyHolder提供了一個方法,可以實現在插入一條記錄時,返回自增主鍵的id int update(PreparedStatementCreator psc, Key

原创 設計模式之享元模式詳解(FlyWeight Pattern)

在面向對象程序設計過程中,有時會面臨要創建大量相同或相似對象實例的問題。創建那麼多的對象將會耗費很多的系統資源,它是系統性能提高的一個瓶頸。 例如,圍棋和五子棋中的黑白棋子,圖像中的座標點或顏色,局域網中的路由器、交換機和集線器

原创 Java保留2位小數的方法總結

今天練習算法的時候,遇到保留兩位小數的要求,不會,腫麼辦?百度一波,get到了幾種方法,在此總結一下。 本文介紹的方法 使用java.math.BigDecimal 使用java.text.DecimalFormat 使用jav