Time of Update: 2018-12-06
1. 棧(stack)與堆(heap)都是Java用來在Ram中存放資料的地方。與C++不同,Java自動管理棧和堆,程式員不能直接地設定棧或堆。 2. 棧的優勢是,存取速度比堆要快,僅次於直接位於CPU中的寄存器。但缺點是,存在棧中的資料大小與生存期必須是確定的,缺乏靈活性。另外,棧資料可以共用,詳見第3點。堆的優勢是可以動態地分配記憶體大小,生存期也不必事先告訴編譯器,Java的垃圾收集器會自動收走這些不再使用的資料。但缺點是,由於要在運行時動態分配記憶體,存取速度較慢。 3.
Time of Update: 2018-12-06
1.編譯原始碼時,發生的問題 首先使用java -version查看,如果可以正確顯示版本,表示你的jdk的路徑是正確的。也就是說你的Path是正確的。 而ClassPath的設定是錯誤的。 Path和ClassPath到底有什麼區別呢?其時這個非常簡單,但是也非常重要。 Paht其時是一個公用的環境變數,他的作用就是為在DOS環境下執行一些命令提路徑。比如:
Time of Update: 2018-12-06
ObjectWeb Consortium 宣布發布 Lomboz 3.3 RC1版本,Lomboz 3.3 RC1是基於Eclipse Europa(Eclipse 3.3)的一個開源的J2EE外掛程式,它將很多Java應用伺服器、J2EE組件和Web應用開發整合到Eclipse中,可以協助Java開發人員使用Eclipse建立、測試、部署J2EE應用。 該新版本中最顯著的特徵就是加強了對SOA, BPEL, Enterprise
Time of Update: 2018-12-06
問題一:我聲明了什麼! String s = "Hello world!"; 許多人都做過這樣的事情,但是,我們到底聲明了什嗎?回答通常是:一個String,內容是“Hello world!”。這樣模糊的回答通常是概念不清的根源。如果要準確的回答,一半的人大概會回答錯誤。 這個語句聲明的是一個指向對象的引用,名為“s”,可以指向類型為String的任何對象,目前指向"Hello
Time of Update: 2018-12-06
剛剛開始接觸java數組的人都會聽到一句類似的話:java是純物件導向的語言,他的數組也是一個對象。於是乎,我就按照一個對象的方式來使用數組,心安理得。直到我接觸到C的數組後,才發現將數組作為一個類來使用在實現上是多麼的“不自然”。首先我們看一下表面現象,數組建立的時候採用的是如下語句:MyClass[] arr = new MyClass[9];而普通類採用的是如下語句:MyClass obj = new
Time of Update: 2018-12-06
前幾天被電話面試,問Java的參數傳遞方式,我說只有一種方式,就是by
Time of Update: 2018-12-06
修飾符(存取範圍大小順序) public 完全公開 protected 同一package或者子類中 無同一package private 本class 抽象class不能同時被static修飾符修飾 interface裡面方法預設為public abstract修飾 變數預設為public static final修飾 abstract和final,abstract和static,abstract和private不能同時指定
Time of Update: 2018-12-06
擷取方法的調用者如果你寫了一個超級複雜超級大的項目,在項目後期調試修改的時候,突然想知道到底是哪些類調用了ImportantClass中的Important方法,你會怎麼做呢?首先,你可能說:我用不到!如果這樣的話,到這裡你就可以return了。做法一:最常規有效做法,使用IDE的全目錄全文檢索搜尋方法名。當然這樣是最有效快速的。但是如果有很多別的類中也定義了Important方法,你就會得到很多垃圾搜尋結果。同時你只能搜尋到目錄下的結果,而對於運行時調用Important方法的地方你就無所適從
Time of Update: 2018-12-06
java集合架構介面宏觀結構: java集合架構是一個設計優美的集合架構,為java編程提供了很大的協助,並且附有高效的實現.使得模組之間可以使用介面進行互動,從而使得程式有很大的擴充性.java集合架構是包含在java標準庫裡面的,任何支援java的地方都支援.一些需要注意的小問題:
Time of Update: 2018-12-06
Java類載入內幕 作者: ∣來源:it專家java技術∣原文地址∣2005-10-19 類載入是java語言提供的最強大的機制之一。儘管類載入並不是討論的熱點話題,但所有的編程人員都應該瞭解其工作機制,明白如何做才能讓其滿足我們的需要。這能有效節省我們的編碼時間,從不斷調試ClassNotFoundException,
Time of Update: 2018-12-06
對與java中的final變數,java編譯器是進行了最佳化的。每個使用了final類型變數的地方都不會通過串連而進行訪問。比如說Test類中使用了Data類中一個final的int數字fNumber=77,這時候,java編譯器會將77這個常數編譯到Test類的指令碼或者常量池中。這樣,每次Test類用到fNumber的時候,不會通過引用串連到Data類中進行讀取,而是直接使用自己儲存在類檔案中的副本。用程式說話:Test.java:public class Test{ public
Time of Update: 2018-12-06
http://www.blogjava.net/sean/archive/2005/08/09/9630.html最近看到BlogJava上有人在討論為什麼Java範型不支援數組http://www.blogjava.net/myqiao/archive/2005/08/08/9580.html 我想這個問題的答案是:因為這樣做會破壞型別安全。核心的問題在於Java範型和C#範型存在根本區別:Java的範型停留在編譯這一層,到了運行時,這些範型的資訊其實是被抹掉的;而C#的範型做到了MSIL這一
Time of Update: 2018-12-06
Java NIO使用了作業系統層對對非阻塞IO的支援。不再是基於Stream的資料轉送,而是基於Buffer的資料轉送。NIO最大的改變有:非阻塞IO,可以減少線程數量;Buffer傳輸資料機制,這個應該是為了迎合底層實現,提高效率;同樣也是因為使用了底層直接的IO API,所以IO的效率也提高了。Buffer作為資料的載體,Java NIO中為每種基礎資料型別 (Elementary Data
Time of Update: 2018-12-06
byte 是一個單位元組整數,8位的有符號整數,也就是-127-127之間 byte b; b=3; b=b*3 //這裡JAVA自動進行了一次向上的類型轉換,將相X的結果轉換成了int類型,而將一個int賦給byte出現精度丟失這裡有個知識點(類型自動轉換)b=b*3這裡,JAVA在編譯時間為了保證精度,會自動對byte進行向int的轉換,以保證結果的精度,所以實際上b*3之後的結果是一個int類型,而將一個int類型賦值給一個byte會導致精度丟失,因此這裡會編譯不通過。==&
Time of Update: 2018-12-06
.構造方法 如果你寫的類不提供構造方法,則JAVA編譯會自動為你的類提供一個預設的構方法,並為你的類的各種欄位提供預設值 各種預設值為 數值型 0 boolean false char '\0' 對象 null 提個名稱 欄位:欄位是你在類中定義的各種變數和常量 屬性:屬性就是對這個類進行操作的方法2.方法重載(overload)
Time of Update: 2018-12-06
Java初學者---Java的學習路徑(全集) 一、 JDK (Java Development Kit)JDK是整個Java的核心,包括了Java運行環境(Java Runtime
Time of Update: 2018-12-06
今天開始學習Java,這次是因為加入新項目,所以要徹底地,完整地,系統地學習一遍。 先安裝好的JDK。 然後想用命令列嘗試編譯一個*.java的源檔案。失敗。 百度之後,需要添加一些系統變數。 設定收入本博,如下: Win95/98,在\autoexec.bat的最後面添加(估計永遠都不會用到這兩位元老層級的OS): JAVA_HOME=c:\j2sdk1.4.1PATH=%JAVA_HOME%\bin;%PATH%CLASSPATH=.;%JAVA_HOME%\lib註:
Time of Update: 2018-12-06
1. Comments: Java provides the following types of comments: a. in-line comment: // b. multi-line comment: /* ... */ c. doc comment: /** .. */ 2. Identifier rules: Valid identifiers must start with a letter, a dollar sign, or an
Time of Update: 2018-12-06
1.java程式啟動時,把pid資訊寫出到檔案:1 public static long getPID() {2 String processName =3 java.lang.management.ManagementFactory.getRuntimeMXBean().getName();4 return Long.parseLong(processName.split("@")[0]);5
Time of Update: 2018-12-06
主要差異如下:1、 對於待加密解密的資料,各自的填充模式不一樣 C#的模式有:ANSIX923、ISO10126、None、PKCS7、Zero,而Java有:NoPadding、PKCS5Padding、SSL3Padding2、 各自預設的3DES實現,模式和填充方式不一樣C#的預設模式為CBC,預設填充方式為PKCS7; java的預設模式為ECB,預設填充方式為PKCS5Padding3、