Time of Update: 2018-12-04
、基礎問答 1.下面哪些類可以被繼承? java.lang.Thread (T) java.lang.Number (T) java.lang.Double (F) java.lang.Math (F) java.lang.Void (F) java.lang.Class (F) java.lang.ClassLoader
Time of Update: 2018-12-04
名字很玄乎,請不要被我的XX嚇到,這句台詞,好像很熟,定是經常縈繞耳旁。其實,我不懂JAVA,而且,JAVA是我所"抵制"的2種語言之一,另一種我就不說了,人各有志,哪位覺得我不對的,就當成一陣風,散了就算了。但是,世事難料,盡然就讓我碰上了它,可能是上天註定的,逃避總不是辦法,唯有迎接挑戰,最起碼,待我學成歸來時,在我的履曆表上又多了一項"精通",不知道現在是否還有剛畢業時的"執著",學完一本《譚》書,竟敢就對世界宣告,我會C了,而且還不是一般的會,起碼得算個精通吧。不為別的,就是想做個小遊戲
Time of Update: 2018-12-04
文章目錄 概述記憶體回收機制原理finalize()方法
Time of Update: 2018-12-04
什麼叫Java記憶體模型?http://baike.baidu.com/view/8657411.htm通過訪問以上的URL,我們瞭解了Java記憶體模型的概念。簡單來說,每個線程操作變數的時候,都會從主記憶體中拷貝變數的副本儲存到自己的工作記憶體中,然後計算,最後再存入工作記憶體中。問題來了,如果有兩個線程:線程A和線程B。線程A從主記憶體中取出變數count的值為1,然後進行加1操作,這時線程B也從主記憶體中取count進行加2操作。然後線程A把2存入主記憶體的變數count內,線程B也存入
Time of Update: 2018-12-04
/* * 當前檔案:DesEncrypt.java * 建立日期:2005-7-29 * 版 本 號:1.0 * 作者:kang1 * */ import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import
Time of Update: 2018-12-04
/**//*引用外圍類對象:在外圍類名稱後面跟一個句點和this關鍵字來實現.eg:在類Sequence.SSelector中,通過Sequence.this,內部類任何方法都能擷取那個指向外圍類Sequence的被儲存的引用. *對象要想產生其自身內的內部類的對象,必須在new中提供一個引用,指向那個外圍類對象.eg:Contents con = parcel.new Contents();等效於Contents con = parcel.getContents(); *建立內部類對象,不能想
Time of Update: 2018-12-04
1.注釋:編譯時間, /*和*/之間的所有東西都會被忽略. 在連續注釋內容的每一行都以一個*開頭.2.注釋文檔:將代碼和文檔放到同一個檔案中有利於二者的統一管理, 這就需要特殊的注釋文法和一個提取注釋的工具.提取注釋的工具:javadoc, 尋找程式中的特殊注釋標籤, 解析由這些標籤標記的資訊, 同時將毗鄰注釋的類名or方法名提取出來.javadoc輸出的是一個html檔案. 有個javadoc, 就有了建立文檔的標準.注釋文法:javadoc只能在/**和*/注釋中出現.
Time of Update: 2018-12-04
class Yao...{ public static void main(String[] args)...{ System.out.println("Yao想參加奧運會"); } static American american = new American();}class American...{ American()...{ System.out.println("American不希望Yao參加奧運會"); }}執行結果:A
Time of Update: 2018-12-04
複用代碼(代碼重用機制)java問題解決是圍繞著類展開的. 可以通過建立新類來複用代碼(利用現有類形成新類). 有兩種方法可以達到這一目的: (1)在新類中產生現有類的對象. 由於新類是由現有類的對象所組成, 所以這種方法稱為組合. 該方法只是複用了現有程式碼的功能, 而非它的形式.(2)按照現有類的形式來建立新類. 採用現有類的形式並在其中添加新代碼.
Time of Update: 2018-12-04
記憶體回收行程只知道釋放那些由new分配的記憶體。一旦記憶體回收行程準備回收new對象,將首先調用finalize()方法,該方法能在記憶體回收時刻做一些清理工作。這意味著在你不需要某個對象之前,如果必須執行某些動作,那麼你得自己去做(finalize()方法)。通常不能指望finalize(),必須建立其他的"清理"方法,並且明確的調用它們。finalize()作用:對象"終結條件"的驗證。class finalizeTest...{ public static void main(St
Time of Update: 2018-12-04
儲存對象有很多種方式,數組在其中有什麼特別之處呢?數組和其它容器之間的區別主要有兩方面:效率和類型。第一,效率:在Java中,數組是一種效率最高的儲存和隨機訪問對象引用序列的方式。**數組就是一個簡單的線性序列。但當建立一個數組對象(將數組看作對象),數組的大小就被固定了,並且這個數組的生命週期也是不可改變的。通常是建立一個特定大小的數組,在空間不足的時候再建立一個新的數組,然後把舊數組中的所有引用移到新數組中。在C++中,容器類vector的確知道自己儲存的對象是何類型,不過它有一個缺點:C+
Time of Update: 2018-12-04
設計模式是在大量的實踐總結和理論化之後優選的代碼結果,編程風格,以及解決問題的思考方式.設計模式就像是經典的棋譜,不同的棋局我們用不同的棋譜.單態設計模式:採取一定的方法保證在整個軟體系統中,對某個類只能產生一個對象執行個體,並且該類只提供一個取得其對象的執行個體方法.在java中實現單態模式只需要執行以下三步: 1.將類的構造方法的存取權限聲明為private.這樣就不能用new操作符在類的外部產生類的對象了,但在類內部仍可以產生該類的對象. 2.在類內部產生一個靜態執行個體. 3.
Time of Update: 2018-12-04
物件導向的三種基本特徵:資料抽象、繼承和多態。資料抽象即抽象資料類型(abstract data type,
Time of Update: 2018-12-04
由於Java中的所有事物都是對象, 所以許多動作就變得更加容易, 載入動作僅僅是其中之一.Java中每個類的編譯代碼都存在於它自己的獨立的檔案中. 該檔案只在需要使用程式碼時才會被載入. 可以說:"類的代碼在初次使用時才載入". 這通常是指直到類的第一個對象被構建時才發生載入, 但是當訪問static欄位方法時, 其也會發生載入.初次使用之處也是static初始化發生之處. 所有的static對象和static程式碼片段都會在載入時依程式中的順序(即定義類時的書寫順序)而依次初始化. 當然,
Time of Update: 2018-12-04
如果不需要內部類對象與其外圍類對象之間有聯絡,那麼可以將內部類申明為static.稱為嵌套類.嵌套類相當於外部定義的類.這種類很少使用.普通的內部類對象隱式地儲存了一個引用,指向建立它的外圍類對象.然而,當內部類是static時就不是這樣了.嵌套類意味著:1.要建立嵌套類的對象,並不需要其外圍類的對象;2.不能從嵌套類的對象中訪問非靜態外圍類對象;3.普通內部類的欄位和方法,只能放在類的外部層次上,所以普通內部類不能有static成員,也不能包含嵌套類.但是嵌套類可以包含所有這些東西.為什麼普通
Time of Update: 2018-12-04
java.lang.OutOfMemoryError: GC overhead limit exceeded原因:常見的有以下幾種:1.記憶體中載入的資料量過於龐大,如一次從資料庫取出過多資料;2.集合類中有對對象的引用,使用完後未清空,使得JVM不能回收;3.代碼中存在死迴圈或迴圈產生過多重複的對象實體;4.使用的第三方軟體中的BUG;5.啟動參數記憶體值設定的過小;常見錯誤提示:1.tomcat:java.lang.OutOfMemoryError: PermGen
Time of Update: 2018-12-04
import java.awt.Dimension;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;/******************************************************************
Time of Update: 2018-12-04
掌握了包的知識後,就可以建立自己的工具庫來減少或消除重複的程式碼了。例如:給System.out.println()建立一個別名來減少輸入負擔。package edu.foresthe.mytools;public class P { public static void rint(String s) { System.out.print(s);}public static void rintln(String s) { System.out.println(
Time of Update: 2018-12-04
package servlet;import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; import javax.servlet.ServletException; import
Time of Update: 2018-12-05
這學期剛開的Java,感覺對物件導向的思想還是沒能很好的理解,下午無意翻了一下《Java編程思想》,Bruce Eckel在第二章寫到Everything is an Object,這句話寫得很簡單,但不知道自己什麼時候才能真正理解並很好的運用它! 呵呵,廢話就不多說了,下面把自己做的Java作業貼出來,現階段講的都是概念性的東西,下面的答案大部分是書上的原話,少量是自己的理解組織出來的!肯定有不少錯誤或者理解不到位的地方,希望大家能指出來,謝謝! 說明一下,