Time of Update: 2018-12-04
多線程是這樣一種機制,它允許在程式中並發執行多個指令流,每個指令流都稱為一個線程,彼此間互相獨立。 線程又稱為輕量級進程,它和進程一樣擁有獨立的執行控制,由作業系統負責調度,區別在於線程沒有獨立的儲存空間,而是和所屬進程中的其它線程共用一個儲存空間,這使得線程間的通訊遠較進程簡單。一:理解多線程多線程是這樣一種機制,它允許在程式中並發執行多個指令流,每個指令流都稱為一個線程,彼此間互相獨立。
Time of Update: 2018-12-04
今天打算把程式修改成為多線程的,在測試中發現了幾個地方,來反映下,先看代碼吧: class TestMain extends Thread {public TestMain() {super("現線程1");}public void run() {for(int i = 0; i < 10; i ++) {System.out.println(Thread.currentThread().getName() + "::" + i);try {Thread.sleep(100);}
Time of Update: 2018-12-04
在包含訪問資料庫代的代理類中綜合運用各種設計模式:工廠化方法,數目訪問對象,各種ORM技術(Hibernate,EJB);MVC:M:模型。代表了該應用程式的核心功能,負責處理使用者的資料,實現商務邏輯;V:視圖。代表了介面。C:控制器。負責接收使用者的請求和資料,接著做出判斷將請求和資料交由哪一個模型來處理,最後調用視圖來顯示模型返回的資料。 Java
Time of Update: 2018-12-04
1、不可以用一個本地類型(如int float)來替換泛型2、運行時類型檢查,不同類型的泛型類是等價的(Pair與Pair是屬於同一個類型Pair),這一點要特別注意,即如果a instanceof Pair==true的話,並不代表a.getFirst()的傳回值是一個String類型3、泛型類不可以繼承Exception類,即泛型類不可以作為異常被拋出4、不可以定義泛型數組5、不可以用泛型構造對象,即:first = new T();
Time of Update: 2018-12-04
通過這幾天對一個記憶體溢出程式的監控,學習了程式運行時對記憶體的使用機制,在這裡和大家分享下。 Java程式運行在JVM(Java Virtual Machine,Java虛擬機器)上,可以把JVM理解成Java程式和作業系統之間的橋樑,JVM實現了Java的平台無關性,由此可見JVM的重要性。所以在學習Java記憶體配置原理的時候一定要牢記這一切都是在JVM中進行的,JVM是記憶體配置原理的基礎與前提。 一個完整的Java程式運行過程會涉及以下記憶體地區:
Time of Update: 2018-12-04
/** * */package com.baseframework;/** * @author sunyanan KMP演算法 * */public class KMPAlgorithm {/** * 計算模式串的next函數 * * @param desStr * 模式串 * @return 模式串的next函數,用數組來儲存 */private static int[] kmpNext(String desStr) {int len = desStr.length();
Time of Update: 2018-12-04
一些基礎知識:1.try程式碼片段包含可能產生例外的代碼;2.try程式碼片段後跟有一個或多個程式碼片段;3.每個catch程式碼片段聲明其能處理的一種特定的異常並提供處理的方法;4.當異常發生時,程式會終止當前的流程,根據擷取異常的類型去執行相應的catch程式碼片段,有多個合格catch時,只執行第一個;5.finally段的代碼無論是否發生異常都會執行。6.在一個try語句塊中,基類異常的捕獲語句不可以寫在子類異常捕獲語句的上面。 看一個例子: /** * @author Lansine
Time of Update: 2018-12-04
Sun公司的官方文檔: 52.36MBhttp://192.18.108.236/ECom/EComTicketServlet/BEGIN563125A4040D7E0A8C7CE6BF23AA6C5C/-2147483648/1939857567/1/790250/790238/1939857567/2ts+/westCoastFSEND/jdk-6-doc-oth-JPR/jdk-6-doc-oth-JPR:1/jdk-6-doc.zip Windows Help格式的文檔:
Time of Update: 2018-12-04
如果是在WINDOWS的ECLIPSE中,運行HBASE的MAPREDUCE,會出現異常,這是由於預設運行MAPREDUCE任務是在本地運行,而由於會建立檔案賦許可權是按照UNIX的方式進行,因此會報錯:java.lang.RuntimeException: Error while running command to get file permissions : java.io.IOException: Cannot run program "ls": CreateProcess error=
Time of Update: 2018-12-04
package arrays.file;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import
Time of Update: 2018-12-04
package arrays.compara;import java.util.Arrays;public class Student { public static void main(String[] args) { Stu[] stus = new Stu[]{ new Stu(156,34,"ad"), new Stu(153,24,"cc"), new Stu(126,37,"ab"), new Stu(176,45,"as"), new Stu(156
Time of Update: 2018-12-04
package com.happy.system;import java.io.IOException;public class CmdCommand { public static void main(String[] args) { try { // cmd /c dir 是執行完dir命令後關閉命令視窗。 // cmd /k dir 是執行完dir命令後不關閉命令視窗。 // cmd /c start dir 會開啟一個新視窗後執行dir指令,原視窗會關閉。 //
Time of Update: 2018-12-04
/** * @author happy * */public class MaxValue {public static void main(String[] args) {int[] arrInt = new int[] { 233, 5, 432, 5, 903, 56, 35, 23, 35 };String arrStr = "";int max = arrInt[0];int min = arrInt[0];for (int i = 0; i < arrInt.length;
Time of Update: 2018-12-04
在Java程式中截獲控制台輸出 內容: 一、Java管道流 1.1 注意事項一 1.2 注意事項二 1.3 注意事項三 1.4 解決問題 二、捕獲Java控制台輸出 三、捕獲其他程式的控制台輸出 參考資料 關於作者 俞良松 (javaman@163.net) 軟體工程師,獨立顧問和自由撰稿人 2001 年 10 月
Time of Update: 2018-12-04
Comparator和Comparable在排序中的應用當需要排序的集合或數組不是單純的數字型時,通常可以使用Comparator或Comparable,以簡單的方式實現對象排序或自訂排序。一、Comparator強行對某個對象collection進行整體排序的比較函數,可以將Comparator傳遞給Collections.sort或Arrays.sort。介面方法:/** * @return o1小於、等於或大於o2,分別返回負整數、零或正整數。 */ int
Time of Update: 2018-12-04
使用linux命令首先要獲得root,執行命令時記得加上 busybox 。一般我們在用java IO的基本方法不能把檔案放到usb檔案,可以用linux命令來做。ProcessBuilder pb = new ProcessBuilder("/system/bin/sh"); //java.lang.ProcessBuilder: Creates operating system processes. pb.directory(new File("/"));//設定shell的目前的目錄。
Time of Update: 2018-12-04
使用m2eclipse匯入現有maven項目時報錯 java.lang.NullPointerException at org.apache.maven.plugin.DefaultPluginDescriptorCache$CacheKey.<init>(DefaultPluginDescriptorCache.java:165) at
Time of Update: 2018-12-04
恍然間,發現自己在這個行業裡已經摸爬滾打了五年了,原以為自己憑藉項目經驗和工作經曆,怎麼著也應該算得上是一個業界資深人士了但是今年在換工作的過程中卻遭到了重大的挫折。在此,只想給大家分享一下心情,看看大家有沒有相似的經曆,和類似的感悟。面試官對我的回覆大致是這樣的。“我們不需要熟練工,我們需要在某個領域擁有超過常人的積累認知, 擁有整套思維模式和優秀認知事物能力的人”…他很誠懇地告訴我“你還年輕,真的應該好好地靜下心來,深入地研究一些東西,自己寫一些東西。
Time of Update: 2018-12-04
package com.hmw.picMark; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.
Time of Update: 2018-12-04
今天我用MySQL Migration Toolkit ,說是沒有安裝JRE ,就是java虛擬機器有沒有搞錯,我裝jdk7了這種事經常遇到,你裝高版本的JRE 他老兄說你沒有裝很多人就這樣去裝好幾個版本的JRE 作為高手必須知道問題出在哪兒? 開啟命令列輸出如下: MySQL Generic Runtime Environment 2.0.12 Type 'help' or '?' for help. Type 'quit' to exit the shell.Lua Shell