Time of Update: 2018-12-08
引起java.lang.OutOfMemoryError: Java heap space異常,可能是由JAVA的堆棧設定太小的原因根據網上的答案大致有以下兩種解決方案:1、在D:/apache-tomcat-6.0.18/bin/catalina.bat最前面加入:set JAVA_OPTS=-Xms200m -Xmx512m注意:只有startup.bat啟動tomcat,設定才會生效,如果利用windows的系統服務啟動tomcat服務,上面的設定就不生效了, 就是說set
Time of Update: 2018-12-08
Thread類中run()和start()方法的區別如下:run()方法:在本線程內調用該Runnable對象的run()方法,可以重複多次調用;start()方法:啟動一個線程,調用該Runnable對象的run()方法,不能多次啟動一個線程; package com.ljq.test;public class ThreadTest {/** * 觀察直接調用run()和用start()啟動一個線程的差別 * * @param args
Time of Update: 2018-12-08
自從有了設計模式的概念後一直想買本模式方面的書,所以買了《C#設計模式》,但是讀了幾個月的時間發現自己還只是看了簡單工廠,工廠,抽象工廠和單件模式,已經被此書搞得暈頭轉向了(書也爛,自己水平也低)。所以只得再考慮買本好書了,可設計模式的書大多是C++和Java寫的,VB起家的我C++水平實在夠嗆,所以考慮範圍也就定在了Java設計模式方面的書。前段時間在天級網看到《Java設計模式專輯》,感覺很好,特別是閻宏博士寫的幾篇文章十分精彩,所以很想買他寫的《java與模式》。然後我注意看了不少書評,感
Time of Update: 2018-12-08
關於Java AOP和dotnet attribute, 有的人說, AOP是概念, attribute是技術, 不能混為一談, 不過如果你想在不影響原有class hiberarchy的條件下, 用橫切的方法去影響class或method的行為, 當你對.net程式員提這個要求, 他們想到的是attribute, 如果你對java程式員說, 他們肯定會說AOP, 所以無論是概念還是技術, 只要他們乾的是有相同之處, 我們就不用去太在乎他的名字. 只專著他們的功能好了. 首先,
Time of Update: 2018-12-08
層級: 初級chris, 畢業於中國人民大學資訊學院2003 年 6 月 27 日很多人用java進行文檔操作時經常會遇到一個問題,就是如何獲得word,excel,pdf等文檔的內容?我研究了一下,在這裡總結一下抽取word,pdf的幾種方法。用jacob其實jacob是一個bridage,串連java和com或者win32函數的一個中介軟體,jacob並不能直接抽取word,excel等檔案,需要自己寫dll哦,不過已經有為你寫好的了,就是jacob的作者一併提供了。 jacob
Time of Update: 2018-12-08
經一個朋友介紹,發現了一個很好的Java環境下的查錯工具findBugs。這個工具的真的很棒,使用這個工具發現了我代碼中一些小BUG,人畢竟是人,就是會犯錯誤,工具比人強。令人吃驚的是,這個工具檢查可能導致Connection、Statement、ResultSet這些資源類忘記關閉的BUG,這個功能特彆強。例如:Conneciton conn = ...;Statement stmt = conn.createStatement();ResultSet rs =
Time of Update: 2018-12-08
昨天項目更新功能但是報了一個永久儲存地區溢出的錯,導致我所有被SSH調用的方法都不可用,讓我很是鬱悶了一番,不過這個問題很普遍。網上一搜,解決方案一大堆。之所以報這個錯,原因:PermGen space(記憶體的永久儲存地區)這一部分用於存放Class和Meta的資訊,Class在被 Load的時候被放入PermGen space地區,它和和存放Instance的Heap地區不同,GC不會在主程式運行期對PermGen
Time of Update: 2018-12-08
要擷取對其他包的存取權限,所有的類必須有公用許可權或包許可權。如果將某個成員類聲明為protected,那麼它的.class檔案就會認為是公有類。如果將某個成員類聲明為private,那麼它的.class檔案就會認為是包內類。每個嵌套類和內部累都被存放在自己的.class檔案裡。.class檔案名稱先是封閉類的名字,緊跟著$符號,然後是被封閉類的名字匿名類是用數字來標記的舉例:Equation2.java檔案,產生的.class檔案有:Equation2.class
Time of Update: 2018-12-08
在安裝好Java SDK後,還需要設定一些系統變數,系統變數的設定可以在系統屬性-進階-環境變數中進行 JAVA_HOME=JAVA安裝目錄CLASSPATH=… 庫路徑,可以是目錄或jar檔案,如C:\j2sdk1.4.0_01\lib\dt.jar;d:\java,注意兩個路徑間用分號隔開 如果要使用tomcat,則應該設定CATALINA_HOME=TOMCAT安裝目錄
Time of Update: 2018-12-08
jstack Dump 記錄檔中的線程狀態dump 檔案裡,值得關注的線程狀態有:死結,Deadlock(重點關注) 執行中,Runnable 等待資源,Waiting on condition(重點關注) 等待擷取監視器,Waiting on monitor entry(重點關注)暫停,Suspended對象等待中,Object.wait() 或
Time of Update: 2018-12-08
經常我們要刪除集合中的某些元素。有些可能會這麼寫。複製代碼 代碼如下: public void operate(List list){ for (Iterator it = list.iterator(); it.hasNext();) { String str = (String)it.next(); if (str.equals("chengang")){ list.remove(str); } } } 這種寫法一運行就會報如下異常: Exception in
Time of Update: 2018-12-08
覺得作者寫得太好了,不得不收藏一下。對這個例子的理解://型別參數不能用基本類型,T和U其實是同一類型。//每次放新資料都成為新的top,把原來的top往下壓一級,通過指標建立連結。//末端哨兵既是預設構造器建立出的符合end()返回true的節點。複製代碼 代碼如下://: generics/LinkedStack.java// A stack implemented with an internal linked structure.package generics;public
Time of Update: 2018-12-08
java在圖形處理時調用了本地的圖形處理庫。在利用Java作圖形處理(比如:圖片縮放,圖片簽名,產生報表)時,如果運行在windows上不會出問題。如果將程式移植到Linux/Unix上的時候有可能出現圖形不能顯示的錯誤。提示資訊:"Can't connect to X11 window server"這是由於Linux的圖形處理需要一個X Server伺服器。解決辦法:1.如果伺服器上安裝有圖形介面,可以通過設定環境變數:DISPALY=127.0.0.1:0.0解決。2.
Time of Update: 2018-12-08
繼承類的構建過程是向外擴散的,子類初始化了,父類一定也初始化了複製代碼 代碼如下:class Art{ Art(){ System.out.println("Art"); }}class Drawing extends Art{ Drawing(){ System.out.println("Drawing"); }}public class Cartoon extends Drawing { Cartoon(){ System.out.println("Cartoon"); }
Time of Update: 2018-12-08
規則1(無繼承情況下):對於靜態變數、靜態初始化塊、變數、初始化塊、構造器,它們的初始化順序依次是(靜態變數、靜態初始化塊)>(變數、初始化塊)>構造器證明代碼:複製代碼 代碼如下:public class InitialOrderTest { // 靜態變數 public static String staticField = "靜態變數"; // 變數 public String field = "變數"; // 靜態初始化塊 static {
Time of Update: 2018-12-08
我們經常在項目中使用繼承,但是往往不太明白,程式啟動並執行順序以及原理,尤其是使用上轉型對象的時候,以及父類子類中都有static變數和方法時,不知道先運行誰。我也是寫了一個例子。總結了一下。複製代碼 代碼如下:父類:public class TestStatic { public static String name="china"; { System.out.println("========方法體========"); } static{
Time of Update: 2018-12-08
複製代碼 代碼如下:class Parent { // 靜態變數 public static String p_StaticField = "父類--靜態變數"; // 變數(其實這用對象更好能體同這一點,如專門寫一個類的執行個體) //如果這個變數放在初始化塊的後面,是會報錯的,因為你根本沒有被初始化 public String p_Field = "父類--變數"; // 靜態初始化塊 static {
Time of Update: 2018-12-08
現在再回過頭理解,結合自己的體會, 選用最佳的方式描述這些演算法,以方便理解它們的工作原理和程式設計技巧。本文適合做java面試準備的材料閱讀。先附上一個測試報告:Array length: 20000bubbleSort : 766 msbubbleSortAdvanced : 662 msbubbleSortAdvanced2 : 647 msselectSort : 252 msinsertSort : 218 msinsertSortAdvanced : 127
Time of Update: 2018-12-08
複製代碼 代碼如下:public String reverse(char[] value){ for (int i = (value.length - 1) >> 1; i >= 0; i--){ char temp = value[i]; value[i] = value[value.length - 1 - i]; value[value.length - 1 - i] = temp; }
Time of Update: 2018-12-08
代碼如下所示:複製代碼 代碼如下:/***ConnectionUtil .java***/package com.cai.jdbc;import java.sql.Connection; import java.sql.DriverManager;import java.util.Properties ;public class ConnectionUtil { /** * 1 *在方法中固化串連參數 * @return 資料庫連接 */ public Connection