容易忽視但是功能灰常強大的Java API

這幾天看了一些用java編寫的程式碼,發現了很多以前不知道的api功能。原以為自己還算得上是一個java語言的中級學習者,現在看來自己只是一個java初級學習者,對java的認識一直只是停留在java的表層,解決一些應用問題只是毫無新意地將一些已知的常用介面、資料結構等翻來覆去地使用,沒有更深地去瞭解這門語言。事實上java提供了很多功能非常強大的介面,能夠很方便地為我們解決一些實際的問題,下面就具體介紹幾個我最近瞭解的java API功能。一.

java.lang.InstantiationException:(執行個體化異常)

首先看一下異常:java.lang.InstantiationException: com.ibm.msdk.ui.session.view.actions.SImportAction    at java.lang.Class.newInstance0(Class.java:340)    at java.lang.Class.newInstance(Class.java:308)    at

Java學習之路:不走彎路,就是捷徑(2)

2.軟體開發學習路線       兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進也不保守並非中庸之道,而是找尋學習軟體開發的正確路線與規律。從軟體開發人員的生涯規劃來講,我們可以大致分為三個階段,軟體工程師→軟體設計師→架構設計師或專案管理師。不想當元帥計程車兵不是好士兵,不想當架構設計師或專案管理師的程式員也不是好的程式員。我們應該努力往上走。讓我們先整理一下開發應用軟體需要學習的主要技術。    

Java程式員面試陷阱大全

談談final, finally, finalize的區別  final—修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載  finally—再異常處理時提供 finally

使用Java程式的泛型應該注意的幾個地方

1、不可以用一個本地類型(如int float)來替換泛型2、運行時類型檢查,不同類型的泛型類是等價的(Pair與Pair是屬於同一個類型Pair),這一點要特別注意,即如果a instanceof Pair==true的話,並不代表a.getFirst()的傳回值是一個String類型3、泛型類不可以繼承Exception類,即泛型類不可以作為異常被拋出4、不可以定義泛型數組5、不可以用泛型構造對象,即:first = new T();

JAVA基礎知識一

JAVA相關基礎知識1、物件導向的特徵有哪些方面  

java記憶體配置機制

 通過這幾天對一個記憶體溢出程式的監控,學習了程式運行時對記憶體的使用機制,在這裡和大家分享下。        Java程式運行在JVM(Java  Virtual Machine,Java虛擬機器)上,可以把JVM理解成Java程式和作業系統之間的橋樑,JVM實現了Java的平台無關性,由此可見JVM的重要性。所以在學習Java記憶體配置原理的時候一定要牢記這一切都是在JVM中進行的,JVM是記憶體配置原理的基礎與前提。        一個完整的Java程式運行過程會涉及以下記憶體地區:   

java實現的KMP演算法

/** * */package com.baseframework;/** * @author sunyanan KMP演算法 * */public class KMPAlgorithm {/** * 計算模式串的next函數 * * @param desStr * 模式串 * @return 模式串的next函數,用數組來儲存 */private static int[] kmpNext(String desStr) {int len = desStr.length();

java對大檔案的處理思路

1:常用的我們都是讀入到檔案流,然後再流中操作。這樣對於小檔案是沒問題的,對於大檔案,因為要把檔案對象轉換成流,所以只要對大檔案操作用到流肯定就溢出了,這裡介紹2個方法,其實都差不多2:一個是nio中的記憶體映射,一次可以映射int的最大數字,32位下也就2G了。故對這2G進行操作,具體的映射請看相關資料,也是用RandomAccessFile。3:自己用RandomAccessFile類,自己設定buffer,一次讀取buffer大小的位元組自己處理。

Java IO流讀寫檔案的幾個注意點

平時寫IO相關代碼機會挺少的,但卻都知道使用BufferedXXXX來讀寫效率高,沒想到裡面還有這麼多陷阱,這兩天突然被其中一個陷阱折騰一下:讀一個檔案,然後寫到另外一個檔案,前後兩個檔案居然不一樣?     解決這個問題之後,總結了幾個注意點。注意點一:Reader/Writer讀寫二進位檔案是有問題的:[java] view plaincopyprint?public void copyFile1() {         File srcFile = new File("E://atest/

java枚舉類型的優勢在哪裡?

    最近在做一個項目,其中涉及到一組操作,命名為: 1. “add”; 2. "logicDel"  3. "physicDel"  4. "update" 按照大家耳熟能詳的方式將這四種操作作為 final 的屬性進行聲明。                 public final String ADD = "add"                               ...於是就產生了這樣的代碼: if (ADD.equals(commandStr)){...}        

JAVA classpath, 糾正我一直以來錯誤的認知

如何調在CLI中使用java tool(JDK中的java命令)調用一個打包在jar中的類,我想大多數人都能給出籠統的方案:java -classpath xxxxx com.test.classA這個答案只能說太籠統,再追問一句,如果這個類還依賴若干jar包,並且這些jar包,包括classA所在的jar包都放在路徑/root/lib/ 下,classpath內容應該是什嗎?我給我的答案是 -classpath=/root/lib,

一個java程式的virtual memory 和 resident memory

最近吃了virtual memory的苦頭,一直接到報告說我們的產品時不時會重啟,並且報告說是“使用的memory超過了5G”。重啟是我們產品的機制,我們會監控記憶體,超過一定限度會進行GC並重啟應用,可是超過5G這也太誇張了,而且報告出狀況的環境都沒有多大的負載。這個問題一直被認為是記憶體泄露,苦於無法重現一直無法解決,最近忽然在一個客戶的環境中重現了,趕緊研究!最終發現我們的監控機制是有問題的:代碼是這樣判斷的, 當 virtual memory > 5 * Xmx(java

Java異常發生時程式的執行順序

一些基礎知識:1.try程式碼片段包含可能產生例外的代碼;2.try程式碼片段後跟有一個或多個程式碼片段;3.每個catch程式碼片段聲明其能處理的一種特定的異常並提供處理的方法;4.當異常發生時,程式會終止當前的流程,根據擷取異常的類型去執行相應的catch程式碼片段,有多個合格catch時,只執行第一個;5.finally段的代碼無論是否發生異常都會執行。6.在一個try語句塊中,基類異常的捕獲語句不可以寫在子類異常捕獲語句的上面。 看一個例子: /** * @author Lansine

java 文檔 工具 下載

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格式的文檔:

Java對象初始化順序

初始化 順序應該是.父靜態變數-->子靜態變數-->父非靜態變數-->父靜態代碼塊-->父建構函式------>子非變數-->子靜態代碼塊-->子建構函式 以上是網上盛傳的其實應該是這樣:(大家自己寫代碼驗證)1.  父類靜態成員和靜態初始化塊 ,按在代碼中出現的順序依次執行 2.  子類靜態成員和靜態初始化塊 ,按在代碼中出現的順序依次執行 3.  父類執行個體成員和執行個體初始化塊 ,按在代碼中出現的順序依次執行 4.  父類構造方法 5. 

java.io.IOException: Cannot run program “ls”: CreateProcess error=2,錯誤解決方案

如果是在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=

java代碼沒有main方法也可以運行!

下面的代碼在cmd模式下通過javac命令編譯,java命令運行Hello world可以正常輸出。public class Test { static{ System.out.println("Hello World!"); System.exit(0); }}在網上看見了這段沒有main方法也可以執行的代碼的時候,為了弄清楚java中代碼的運行先後順序原因,寫了如下兩段測試代碼。public class TestStatic {/*

淺談Java記憶體回收

記憶體回收,是java同c++的一個重大區別,也是編寫java程式不用指標的一個重要保證。在c++中,當一個對象不再有價值的時候,我們需要手動的清除這個對象,以釋放空間。在java中,這個工作由記憶體回收行程自動完成,程式員不必考慮難纏的對象回收問題。一、記憶體回收的好處:  記憶體回收使程式員從釋放記憶體的重擔中解脫,可以把更多的精力放在編程和邏輯上,提高了效率。  記憶體回收保證了程式的正常運行,不會出現如c++中的因為對象忘記釋放而產生的記憶體泄露等諸多問題。二、記憶體回收的基本方法:

Java學習推薦書目

一、基礎類1、《Thinking in java》,入門第一位是建立正確的概念。2、《Core Java》,我沒系統讀過,這本書更貼近實踐,更多API的介紹,同樣,更新也更頻繁。二、進階類1、《Effective Java》,在熟悉文法、API之後,你需要知道最佳實務和陷阱,沒有比這本更好的。2、《Java Puzzlers》,通過謎題介紹一些你可能沒有注意到的邊角料,作為趣味讀物也不錯3、《深入Java虛擬機器》,翻譯一般,但不可不讀,最好結合最新的JVM規範來讀。三、特定領域1、網路編程:(

總頁數: 4058 1 .... 550 551 552 553 554 .... 4058 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.