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
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
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
標註:可用於增強地圖功能,並向使用者提供正確的訊息。標註不僅僅局限於添加文本來說明地圖的特性 getLabelRendition方法用於返回圖元標註的樣式屬性。 LabelProperties 類包含控制如何繪製用於每個圖層的標註的方法。藉助於此類中的方法,可以控制標註的內容、可見度、外觀和相對重要性。 LabelProperties labelProp = myLayer.getLabelProperties(); Rendition labelRend =
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
實現原理: 長串連的維持,是要用戶端程式,定時向服務端程式,發送一個維持串連包的。 如果,長時間未發送維持串連包,服務端程式將中斷連線。用戶端: Client通過持有Socket的對象,可以隨時(使用sendObject方法)發送Massage Object(訊息)給服務端。&
Time of Update: 2018-07-25
簡單解釋就是: 短串連:建立串連,發送資料包,關閉串連 長串連:建立串連,發送資料包,發送心跳包,發送資料包,發送心跳包,發送心跳包。。。。。。 所以又頻繁的資料收發的話,短串連會頻繁建立TCP串連,而對於長串連,則始終用的是同一個TCP串連 package com.tree.demo.socket;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;
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 檔案的配置參考如下: