Time of Update: 2018-07-27
一直以為java線程開得越多效率越高,後來知道了執行的效率和cpu核心數有關,今天試了下多核cpu下多線程的計算: 本機i5四核,分別開啟1、4、10、20、40、100、400個線程做100W次,md5運算,結果如下: 全部任務執行完畢,總耗時:38368ms,threadSize:1,section:1000000全部任務執行完畢,總耗時:17293ms,threadSize:4,section:250000全部任務執行完畢,總耗時:15107ms,threadSize:10,
Time of Update: 2018-07-27
介紹了在java中,JSON字串與java對象的相互轉換執行個體詳解,非常不錯,具有參考借鑒價值 在開發過程中,經常需要和別的系統交換資料,資料交換的格式有XML、JSON等,JSON作為一個輕量級的資料格式比xml效率要高,XML需要很多的標籤,這無疑佔據了網路流量,JSON在這方面則做的很好,下面先看下JSON的格式, JSON可以有兩種格式,一種是對象格式的,另一種是數組對象,
Time of Update: 2018-07-27
今天有同學問我Java怎麼用鍵盤輸入十六進位數轉換成十進位數輸出,我查了一下,發現網上的部分回答不夠清楚,很多人不理解為什麼輸入人後斷行符號就報錯了(代碼無誤)。如下: public static void main(String argv)throws Exception { Scanner sc = new Scanner(System.in); System.out.print("\n請輸入一個16進位數:");
Time of Update: 2018-07-27
JDBC(Java Database Connectivity)提供串連各種關聯式資料庫的統一介面,可以為多種關聯式資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC為工具/資料庫開發人員提供了一個標準的API,據此可以構建更進階的工具和介面,使資料庫開發人員能夠用純 Java API 編寫資料庫應用程式,同時,JDBC也是個商標名。 EJB(Enterprise JavaBeans)使得開發人員方便地建立、部署和管理跨平台的基於組件的公司專屬應用程式。 Java
Time of Update: 2018-07-27
1.網路模型 A:電腦網路之間以何種規則進行通訊,就是網路模型研究問題。 B:網路模型一般是指 OSI(Open System Interconnection開放系統互相連線模型)參考模型 TCP/IP參考模型 C:網路參考模型圖 網路模型7層概述:
Time of Update: 2018-07-27
import java.io.*; import java.util.*; public class FileOperator { public FileOperator() { }
Time of Update: 2018-07-27
J2EE叢集開發部署實戰 概述
Time of Update: 2018-07-27
System.currentTimeMillis()產生一個當前的毫秒,這個毫秒其實就是自1970年1月1日0時起的毫秒數,Date()其實就是相當於Date(System.currentTimeMillis());因為Date類還有構造Date(long date),用來計算long秒與1970年1月1日之間的毫秒差。 得到了這個毫秒數,我們自己也可以算起現在的年月日周時,但是這不是我們去計算的,因為有Calendar。Calendar最終出的結果就是年月日周時時區。 System.
Time of Update: 2018-07-27
有次系統維護我做了一個很小的改動,卻出了出乎意料的錯誤,很是困惑, 原程式樣本如下: for(int i =0;i<resultList.size();i++){ Map resultMap = new HashMap(); resultMap = (Map)resultList.get(i); resultGetList.add(resultMap); } System.out.println("resultGetList =
Time of Update: 2018-07-27
@Inherited:原註解,用於修飾自訂註解的metadata 使用此註解修飾自訂註解時,效果是可以讓自訂註解有繼承特性,當將帶有@Inherited的註解使用在A類名上(B的父類),則subClass B類自動繼承該註解。 註:將帶有@Inherited的註解使用在類的方法,屬性則是無效的。即使用在父類的方法和屬性上,子類不會繼承該註解。大家可能暈了,這裡說的繼承是superClass-A 類或者方法上帶有註解,subClass-B上不帶註解,這時當B extends A
Time of Update: 2018-07-27
Java列印輸出數組和集合 在java中是可以直接列印輸出數組和集合的,不需要我們編寫迴圈來列印輸出。 數組可以通過Arrays.toString(int[] )函數來輸出;而因為List Set Map等集合類都實現了toString()方法,所以可以直接列印輸出。 例如以下代碼 import java.util.ArrayList;import
Time of Update: 2018-07-27
1. 根據ice檔案產生對應的java檔案, cmd命令切換到ice檔案目錄,執行 slice2java xx.ice ice檔案可以指定報名 [["java:package:com.company.ice"]] 2.工程中引入Ice.jar, 該jar包在ice安裝目錄lib下面可找到. 3.demo代碼 Communicator communicator =
Time of Update: 2018-07-27
之前使用rpc都是webservice、hessian、dubbo之類,現在公司裡使用ICE,以前都沒有怎麼聽過的,自己花一些時間學習下ice,並寫一個demo,java裡基礎的資料類型傳輸都沒太大問題,對象的傳輸卻麻煩一些,自己在查了很多資料才實現,網上很少找到一個傳輸物件類型的完整執行個體。費話不多說,現在貼代碼。 slice檔案,hello.ice: module com{ module test{
Time of Update: 2018-07-27
public class MyQueue {private long[] arr;private int elements;private int front;private int end;public static void main(String[] args) {MyQueue mq = new MyQueue(4);mq.insert(23);mq.insert(45);mq.insert(32);mq.insert(24);System.out.println(mq.isEmpty(
Time of Update: 2018-07-27
接手了一個新工程,碰到一個問題,就是使用java的File.listFiles 方法擷取路徑下的檔案,問題是:擷取的中文檔案名稱是亂碼。。。體現出來的癥狀是通過java的File API找不到檔案。 最初就懷疑是環境問題,第一步排查環境變數: # linux 的 proc 中匯出環境變數 cat /proc/10643/environ| tr '\0' '\n' 註:自己替換一下進程ID 發現沒LANG,就給配置加上了: export LANG=
Time of Update: 2018-07-27
/* * java中的流程式控制制語句: * 三大類: * 順序結構語句:最簡單的 * 代碼是從main()方法中依次從上往下執行 * 選擇結構語句 * if語句 * switch語句 * 迴圈結構語句 * for:普通for迴圈 * java進階特性:集合:增強for迴圈
Time of Update: 2018-07-27
當 JAVA 程式違反了 JAVA 的語義規則時,JAVA 虛擬機器就會將發生的錯誤表 示為一個異常。違反語義規則包括 2 種情況。一種是 JAVA 類庫內建的語義檢查。 例如數組下標越界,會引發 IndexOutOfBoundsException;訪問 null 的對象時會
Time of Update: 2018-07-27
不要上來就學Struts/WebWork/Spring/Hibernate/iBATIS等等架構,先瞭解一下下面一些技術,對於學習架構來說是十分重要的。 一是Java的反射機制和自省機制。大部分架構都用到這兩種機制,因為它們都要實現通過設定檔自動完成類的識別和載入,所以必須要使用反射和自省。尤其是自省機制,對於大家瞭解JSP中的一些知識也是很有協助的。比如,如果在EL中使用 ${user.name} 那麼,user這個對象中如果沒有name這個屬性行不行。
Time of Update: 2018-07-27
Thread Affinity 為什麼需要線程的CPU親和性 應用通過多線程的方式執行,多數情況下線程能夠被合理的調度。但在某些情況下某個重要的線程被暫停,而時間片被分配給了一個無關重要的線程。當一個線程每次被暫停休眠,然後被喚醒之後,需要重新載入“cache line”(cpu L1/L2 cache)。當線程的工作時間很短暫,需要被頻繁的被喚醒,意味著整個流程執行都很慢,有可能比單線程情況下慢2-5倍。
Time of Update: 2018-07-27
1.直接插入排序 直接插入排序演算法是排序演算法中最簡單的,但在尋找插入位置時的效率不高。基本思想就是將一個待排序的數字在已經排序的序列中尋找找到一個插入位置進行插入。直接插入排序的演算法重點在於尋找插入位置。例: 原有序表:(9 15 23 28 37) 20 找插入位置 : (9 15 ^ 23 28 37) 20 新有序表: (9 15 20 23 28 37) 2.希爾排序 希爾排序(Shell