Time of Update: 2018-12-03
綜合評價:中偏上語言表達良好,能夠較為清楚的描述自身的工作,多次網上發表論文,討論相關技術知識近一年工作經驗,從事應用開發兼技術選型把控,但對技術方面的理解比較薄弱對開發設計思想及原則有一定的研究和想法,但缺乏實踐理解並不深刻,更多的還是理論學習性格平穩,溝通能力較強,對技術設計方面知識較為感興趣對服務端Java平台較為感興趣,不太願意從事用戶端開發碩士生有較強的技術鑽研和掌握新知識能力可接受平時加班,但對於周末加班比較敏感建議崗位:
Time of Update: 2018-12-03
養成好的代碼編寫習慣非常重要,比如正確地、巧妙地運用java.lang.String類和java.util.Vector類,它能夠顯著地提高程式的效能。下面我們就來具體地分析一下這方面的問題。在java中,使用最頻繁、同時也是濫用最多的一個類或許就是java.lang.String,它也是導致代碼效能低下最主要的原因之一。請考慮下面這個例子: String s1 = "Testing String";String s2 = "Concatenation Performance";String
Time of Update: 2018-12-03
[推薦]使用Java語言編寫程式最容易犯的21種錯誤作者:Jack1.Duplicated Code 代碼重複幾乎是最常見的異味了。他也是Refactoring的主要目標之一。代碼重複往往來自於copy-and-paste的編程風格。與他相對應OAOO是一個好系統的重要標誌。 2.Long method 它是傳統結構化的“遺毒”。一個方法應當具有自我獨立的意圖,不要把幾個意圖放在一起。 3.Large Class 大類就是你把太多的責任交給了一個類。這裡的規則是One Class One
Time of Update: 2018-12-03
Java類載入內幕作者:Binildas Christudas
Time of Update: 2018-12-03
讀The Java Language
Time of Update: 2018-12-03
JAVA中的序列化和還原序列化 1 簡介 對象序列化(Serializable)是指將對象轉換為位元組序列的過程,而還原序列化則是根據位元組序列恢複對象的過程。 序列化一般用於以下情境: 1.永久性儲存對象,儲存對象的位元組序列到本地檔案中; 2.通過序列化對象在網路中傳遞對象; 3.通過序列化在進程間傳遞對象。
Time of Update: 2018-12-03
現在多核CPU是主流。利用多核技術,可以有效發揮硬體的能力,提升輸送量,對於Java程式,可以實現並發垃圾收集。但是Java利用多核技術也帶來了一些問題,主要是多線程共用記憶體引起了。目前記憶體和CPU之間的頻寬是一個主要瓶頸,每個核可以獨享一部分快取,可以提高效能。JVM是利用作業系統的"輕量級進程"實現線程,所以線程每操作一次共用記憶體,都無法在快取中命中,是一次開銷較大的系統調用。所以區別於普通的最佳化,針對多核平台,需要進行一些特殊的最佳化。代碼最佳化線程數要大於等於核心數如果使用多線程
Time of Update: 2018-12-03
以下程式碼片段顯示可以如何使用 JavaUI來開啟 Java 編輯器並顯示 Java 編譯單元的特定成員。 void showMethod(IMember member) { ICompilationUnit cu = member.getCompilationUnit(); IEditorPart javaEditor = JavaUI.openInEditor(cu); JavaUI.revealInEditor(javaEditor,
Time of Update: 2018-12-03
1.ICompilationUnit originalUnit = ...;// Get original compilation unit擷取ICompilationUnit執行個體的方式很簡單,此處不再詳述。2.originalUnit.becomeWorkingCopy(new SubProgressMonitor(monitor,
Time of Update: 2018-12-03
org.eclipse.jdt.core.formatter.CodeFormatter 用來格式化代碼的類摘錄自開源軟體源碼 private static CodeFormatter getCodeFormatter() { Map options = DefaultCodeFormatterConstants.getEclipseDefaultSettings(); options.put(JavaCore.COMPILER_COMPLIANCE,
Time of Update: 2018-12-03
//step1:擷取ICompilationUnit IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();IProject project = root.getProject("test");try {project.open(null /* IProgressMonitor */);} catch (CoreException e) {// TODO Auto-generated catch
Time of Update: 2018-12-03
類的成員變數有2種:一種是被static關鍵字修飾的變數,叫類變數或靜態變數,另一種是沒有被static關鍵字修飾的變數,叫執行個體變數。 靜態變數和執行個體變數的區別在於:1.類的靜態變數在記憶體中只有一個,Java虛擬機器在載入類的過程中為靜態變數分配記憶體,靜態變數位於演繹法我,被類的所有執行個體共用。靜態變數可以直接通過類名被訪問。靜態變數的生命週期取決於類的生命週期,當載入類的時候靜態變數被建立並分配記憶體,當卸載類的時候,靜態變數被銷毀並撤銷所佔記憶體。 2.類的每個執行個體都有相應
Time of Update: 2018-12-03
簡介:類載入器(class loader)是Java中的一個很重要的概念。類載入器負責載入Java類的位元組代碼到Java虛擬機器中。本文首先詳細介紹了Java類載入器的基本概念,Java虛擬機器內建的幾種類載入器,以及Java開發中CLASSPATH設定中的一些誤區。類載入器是Java語言的一個創新,也是Java語言流行的重要原因之一。它使得Java類可以被動態載入到Java虛擬機器中並執行。類載入器從JDK1.0就出現了,最初是為了滿足Java Applet的需要而開發出來的。Java
Time of Update: 2018-12-03
在ide開發中,我們經常可能會需要預覽Java代碼(可能自己提供的java代碼模板),jdt中已經提供了這樣的支援,支援文法高亮等,它本質上是對TextViewer的封裝。可能如下:JavaPreview是抽象類別,我們可以使用其子類 org.eclipse.jdt.internal.ui.preferences.formatter.CompilationUnitPreview.直接上代碼:/** * Create contents of the dialog. * * @param
Time of Update: 2018-12-03
有時候,可能需要在自己定義的視圖或對話方塊中展示workspace中的元素。UI效果可能如下:此對話方塊的核心UI代碼為:@Overrideprotected Control createDialogArea(Composite parent) {getShell().setText("在TreeViewer中展示Java元素");Composite container = (Composite) super.createDialogArea(parent);TreeViewer viewer
Time of Update: 2018-12-03
在Java程式中,對象可以被顯式或者隱含地建立。有4種地建立對象的方式:1.new。這是最常用的建立對象的方式 2.運行反射機制。調用java.lang.Class或者java.lang.reflect.Constructor類的newInstace()方法 3.調用clone方法 4.運行還原序列化手段,調用java.io.ObjectInputStream對象的readObject()方法 5.Factory 方法(上面四種方式的封裝)
Time of Update: 2018-12-03
局部變數 局部變數的生命週期取決於所屬的方法何時調用及結束調用1.當Java虛擬機器(確切地說,是Java虛擬機器中的某個線程)調用一個方法時,會為這個方法中的局部變數分配記憶體。 2.當Java虛擬機器(確切地說,是Java虛擬機器中的某個線程)結束調用一個方法時,會結束這個方法中的局部變數的生命週期。 所以一般情況下下面這種方式代碼沒有必要:public class Sample{ public void test(){ Person p = new
Time of Update: 2018-12-03
相同點:1.都需要方法同名2.都可以用於抽象方法和非抽象方法之間 不同點:1.方法覆蓋要求參數簽名必須一致,而方法重載要求參數簽名必須不一致2.方法覆蓋要求傳回型別一致,而方法重載對此不做限制。3.方法覆蓋只能用於子類覆蓋父類的方法,方法重載用於同一個類的所有方法(包括從父類中繼承而來的方法)。4.方法覆蓋對方法的存取權限的拋出異常有特殊的要求,而方法重載在這方面沒有任何限制。5.父類的一個方法只能被覆蓋一次,而一個方法在所在的類中可以被重載多次。
Time of Update: 2018-12-03
覆蓋方法必須滿足多種約束:1.子類方法的名稱、參數簽名和傳回型別必須與父類方法的名稱、參數簽名和傳回型別一致 2.子類方法不能縮小父類方法的存取權限。但存取權限可擴大。比如由預設到public。 3.子類方法不能拋出比父類方法更多的異常。但可以拋出比父類更少的異常,或不拋出異常。 4.方法覆蓋只存在於子類和父類之間。在同一個類中只能被重載,不能被覆蓋。 5.父類的靜態方法不能被子類覆蓋為非靜態方法。 6.靜態方法不能被覆蓋,但子類可以定義和父類一樣的靜態方法,但只是相當於子類新定義了一個方法。
Time of Update: 2018-12-03
Java預設支援XML.XML在Java中佔據重要地位. XML通常用來幹什麼? 1.資料交換,通常用在異質系統中.比如一方系統是用java做的,另一方系統是用Delphi做的.2.設定檔.遍觀J2ee開發裡面的Servlet,EJB,Struts,Hibernate.都是利用XML檔案進行配置的.雖然Properties檔案也可以.但XML通常作為首選. XML的優點? 1.結構化 2.簡單 3.可擴充 4.內容與顯示分離 5.資料互連 DTD&Schema? 對XML檔案進行完整性條件約束.