Time of Update: 2018-07-25
Jacoco是一個Java程式碼涵蓋範圍統計工具,見:http://www.eclemma.org/jacoco/ JaCoCo is a free code coverage library for Java, which has been created by the EclEmma team based on the lessons learned from using and integration existing libraries for many years.
Time of Update: 2018-07-25
一、效能最佳化的一般概念 人們普遍認為Java程式總是比C程式慢,對於這種意見,大多數人或許已經聽得太多了。實際上,情況遠比那些陳舊的主張要複雜。許多 Java程式確實很慢,但速度慢不是所有Java程式的固有特徵。許多Java程式可以達到C或C++中類似程式的效率,但只有當設計者和程式員在整個開發過程中密切注意效能問題時,這才有可能。 本文的主要目的是討論如何最佳化Java
Time of Update: 2018-07-25
wait/notify 機制是為了避免輪詢帶來的效能損失。 為了說清道理,我們用“圖書館借書”這個經典例子來作解釋。 一本書同時只能借給一個人。現在有一本書,圖書館已經把這本書借了張三。 在簡單的synchrnozed 同步機制下,李四如果想借,先要去圖書館查看書有沒有還回來。李四是個心急的人,他每天都去圖書館查;而張三看書看得慢,過了半個月才把書還回來,結果李四在這半個月裡全都白跑了,浪費了不少交通車費
Time of Update: 2018-07-25
今天看了一片博文,講Java多線程之線程的協作,其中作者用程式執行個體說明了生產者和消費者問題,但我及其他讀者發現程式多跑幾次還是會出現死結,百度搜了下大都數的例子也都存在bug,經過仔細研究發現其中的問題,並解決了,感覺有意義貼出來分享下。 下面首先貼出的是有bug的代碼,一個4個類,Plate.java: package
Time of Update: 2018-07-25
工作中會帶一些實習生或新人,大多缺乏經驗,項目調試是他們很頭疼的問題,代碼出了問題往往就束手無策了,很影響工作效率。其實代碼調試是有步驟可循的,代碼出了問題要做的第一件事情是定位問題,只有知道問題出在哪才能解決。 一個Java Web項目通常是由前端和後端組成的,請求是由前端發送給後台代碼處理的,所以我們要做的第一件事情就是確定問題出在前端還是後端,先要保證前端發送給後端的請求參數是對的,有些同學在請求參數不對或者請求根本沒有到達背景情況下盲目地去檢查後台代碼是不對的。
Time of Update: 2018-07-25
樣本程式由三個類構成,主要實現一下功能:每輸入一行字串,就請求一個線程去類比處理 第一個是TestThreadPool類,它是一個測試程式,用來類比用戶端的請求,當你運行它時,系統首先會顯示線程池的初始化資訊,然後提示你從鍵盤上輸入字串,並按下斷行符號鍵,這時你會發現螢幕上顯示資訊,告訴你某個線程正在處理你的請求,如果你快速地輸入一行行字串,那麼你會發現線程池中不斷有線程被喚醒,來處理你的請求,在本例中,
Time of Update: 2018-07-25
java將InputStream轉為String public static String inputStream2String(InputStream is, String charset) {ByteArrayOutputStream baos = null;try {baos = new ByteArrayOutputStream();int i = -1;while ((i = is.read()) != -1) {baos.write(i);}return
Time of Update: 2018-07-25
/** * 任務完成 * @param task */public synchronized void onTaskFinished(DownloadTask task); 寫單線程下載模組時遇到這樣一個問題,對集合的並行作業出現異常。一想到並發,就想到加鎖,那麼就在介面上面加個同步關鍵字。但是eclipse會提示你,這是非常操作,不允許這麼幹。 Illegal modifier for the interface method onTaskFinished; only
Time of Update: 2018-07-25
http://hi.baidu.com/pjww/blog/item/01741d7fa563210a28388a95.html import java.io.*;import java.util.*; public class Main { public static void main(String args[]) throws
Time of Update: 2018-07-25
一 . 把編譯好的.so庫考到android工程下面,注意檔案夾結構不能改變。否則載入庫則出現找不到的問題。 工程圖如下圖所示: 二 .在java檔案中載入靜態庫檔案 注意靜態庫載入名稱,去掉首碼lib和尾碼.so
Time of Update: 2018-07-25
public void test() throws Exception{ File file = new File("c:/test.log"); RandomAccessFile rf = new RandomAccessFile(file,
Time of Update: 2018-07-25
Java讀取Properties檔案時碰到兩問題 1. 資源檔中的key對應的value過長時,書寫不方便,需要換行,若直接斷行符號則斷行符號後的內容被忽略 2.資源檔中的key對應的value需要換行顯示時,若直接斷行符號,則同樣丟掉斷行符號後的部分 針對上述問題找到如下解決辦法: 1. 內容過長需要換行時拼接個/斜杠,這樣/後的內容後正常顯示 2.若內容本身需要換行時則用/n代替斷行符號 package apistudy; import
Time of Update: 2018-07-25
下文可以直接拿來運行使用,也可以直接下載附件包,編譯直接運行就可以看到效果。 //ObjectSort package sort; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ObjectSort { /**
Time of Update: 2018-07-25
提高系統並發吞吐能力是構建高效能服務的重點和痛點。通常review代碼時看到synchronized是我都會想一想,這個地方可不可以最佳化。使用synchronized使得並發的線程變成順序執行,對系統並發吞吐能力有極大影響,我的博文 http://maoyidao.iteye.com/blog/1149015 介紹了可以從理論上估算系統並發處理能力的方法。
Time of Update: 2018-07-25
core java -- 概念篇 如果需要知道哪些unicode字元屬於java中的 字母 ,可以使用Charactor類的javaIdentifierStart 和 javaIdentifierPart 方法進行檢測 const 是java的保留字,但目前還沒有使用 整數被0除 將會產生一個異常 而浮點數被0除得到無窮大或NaN Strictfp —— Java 關鍵字。
Time of Update: 2018-07-25
http://www.blogjava.net/amigoxie/archive/2007/11/09/159413.html 原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml
Time of Update: 2018-07-25
我們都知道,java中的Map結構是key-->value索引值對儲存的,而且根據Map的特性,同一個Map中不存在兩個Key相同的元素,而value不存在這個限制。換句話說,在同一個Map中的Key是唯一的,而value不唯一。Map是一個介面
Time of Update: 2018-07-25
在我們平時的開發工作中, 經常需要讀寫流,在這個過程最讓人蛋疼的就是各種try和catch, 然後到最後你還不能忘記關閉流,以免造成資源流失,這一整套下來感覺顯得特別的臃腫。下面是一個簡單的樣本 : // 老的資源開啟檔案BufferedReader br = null;try {br = new BufferedReader(new FileReader("/Users/mrsimple/update_hosts.py"));StringBuilder sb =
Time of Update: 2018-07-25
Java中對象數組的排序 By icycandy, at 2009/03/06 09:43:00 在Java中排序似乎沒有C++中那麼方便,搜尋了很久看了很多文章,大概都是說要用Arrays或ArrayList或List或Collection等來實現,最頭疼的是原始碼要分開多個檔案(這應該是一個好習慣,可是ACM只允許提交一個源檔案)。 最終在這篇文章的提示下依葫蘆畫瓢,原始碼在一個檔案中就可以了,對於一些不太複雜的情況還是挺好的。
Time of Update: 2018-07-25
1. 首先需要下載到對應的 log4j.jar(http://jakarta.apache.org/log4j/) 檔案,例子使用的版本是 log4j-1.2.8.jar,將對應的 log4j.jar 檔案載入到項目的庫路徑. 2. 建立對應的log和conf 目錄,在 main 函數中啟用配置,使用這句: DOMConfigurator.configure("./conf/log4j.xml"); log4j.xml 檔案的配置參考如下: