原创 java多線程(1)Thread和Runnable

在java開發中不可避免用到多線程情況,比如web中常見的Servlet、Struts2都是運用到多線程,多線程的根本目的是爲了更快的執行。其他常用到的多線程比如設計到大量I/O操作,用多線程可明顯提升效率。 java中最基礎的併

原创 java基礎之談談==和equals

判斷對象是否相等是我們在項目中經常用到的,也是入門java必學的知識。今天就來談談==和equals的作用和區別。 1.==如何判斷相等 先看一下一段代碼: int i1 = 1; int i2

原创 nginx的使用之反向代理(1)

Nginx是一款輕量級的網頁服務器、反向代理器以及電子郵件代理服務器。其將源代碼以類BSD許可證的形式發佈,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。 nginx是目前服務端常用的工具,本文系列總結nginx的使用

原创 搭建https服務--獲取https證書(1)

HTTP是明文的,很容易通過抓包等方式,獲取到請求信息。導致信息被泄露,串改。HTTPS相對於HTTP,多了安全加密。客戶端採用公匙加密,服務端採用私匙解密。採用HTTPS能夠很大程度地提升服務安全性,而且升級到HTTPS並不複雜。 H

原创 抓取淘寶天貓的商品的促銷價格

通過商品的url獲取促銷價,天貓淘寶的促銷價並不是直接生成的,而是通過js間接生成的。所以通過jsoup等工具無法抓取。 首先是嘗試使用htmlUnit,因爲其可以,模擬瀏覽器運行js、css。經試驗,htmlunit確實可以運行js,

原创 nginx的使用-負載均衡(2)

nginx的一個重要功能就是負載均衡,當單個服務不足以支撐時就可以使用負載均衡,多個服務共同支持請求。 以下是負載均衡的簡單配置,將www.xxoo.com分流至139.224.29.240:8280和127.0.0.1:8080。<s

原创 搭建https服務--部署服務(2)

、 上一節介紹了HTPPS協議,以及獲取HTPP證書的方法。這一節將介紹如何部署HTPPS服務。 這邊以常用的linux+nginx爲例。 1.首先將在startssl獲取的證書,上傳至服務器。 2.修改nginx的配置,並且重啓ngi

原创 oracle常用命令整理

oracle常用命令整理 建表 CREATE TABLE table_name( EPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14), L

原创 java poi 在excel中插入圖片

java web中導出excel數據是常見的功能,最近遇到一個需求是在excel中插入圖片。處理excel及其他微軟辦公系列軟件常用的就是apach

原创 爲什麼Hashtable ConcurrentHashmap不支持key或者value爲null

在很多java資料中,都有提到 ConcurrentHashmap HashMap和Hashtable都是key-value存儲結構,但他們有一個不同點是 ConcurrentHashmap、Hashtable不支持key或者va

原创 spring配置出現前綴 "tx" 未綁定、前綴 "mvc" 未綁定等情況

在進行spring整合配置時,啓動項目日誌提示“元素 “tx:annotation-driven” 的前綴 “tx” 未綁定等情況. 是因爲沒有在配置文件中定義tx開頭的命名空間。 以tx爲例,可在spring的配置文件中,添

原创 大話java的代理模式

1.代理模式的介紹 代理模式是java中常見,也是重要的一種模式,比如spring中的aop就是代理模式的一種應用。 那麼代理模式究竟有什麼作用?代理模式就是“控制和管理對象的訪問”。相對於簡單粗暴地直接訪問對象、調用對象的方

原创 Oracle分頁後數據出錯的問題

有客戶反映,某個功能的前3頁數據是一樣的,後來檢查發現確實如此。看看sql的查詢結果,確實是前三頁一樣的,感覺sql也沒什麼問題,上網查詢資料發現,是因爲排序字段的問題。 SELECT * FROM ( S

原创 java多線程(7)wait()、notify()和notityALL()

wait wait方法是Object中的方法,這個方法的功能特性: 1).執行wait方法的前提是當前線程已經獲取到對象的鎖,也就是wait方法必須在synchronized修飾的代碼塊或者方法中使用。 2).執行wait之後,會失去

原创 java多線程(6)線程池

池的概念在java中也是常見,還有連接池、常量池等,池的作用也是類似的,對於對象、資源的重複利用,減小系統開銷,提升運行效率。 線程池的主要功能: 1.減少創建和銷燬線程的次數,提升運行性能,尤其是在大量異步任務時 2.可以更合理地管