Java集合源碼–ArrayList的解析

ArrayList可以看作是對一個數組的封裝,實現可變數組。 1.ArrayList的基本欄位 //儲存真正元素的數組,這裡可能大家會感到奇怪,為什麼把這數組標記為transient,這 //樣序列化時不能序列化這個數組了。所以之後就只能才能手動序列化儲存ArrayList裡 //的元素值了。雖說數組裡儲存的都是對象的引用,序列化的時候,也會把真正的對象序 //列化儲存起來的。但是如果是直接不用transient修飾這個數組,那麼序列化時,那些

Java集合源碼—-LinkedList解析

LinkedList的實現其實是一個帶啞前端節點的雙向迴圈鏈表。 1.LinkedList的欄位 private transient Entry<E> header = new Entry<E>(null, null, null); //Entry是一個LinkedList的內部類,其實就是鏈表上的節點,包含兩個指標,一個指向 //前面節點,一個指向後面節點    private static class Entry<E> { E element;

排序演算法思想及Java實現

import java.util.Arrays;/** *@author 255166 *@version Feb 27, 2012 10:39:00 AM */public class SortAlgorithm {/** * 對數組的i,j位置的內容交換 * @param inputArray * @param i * @param j * @return */public static int[] exchangeValue(int[] inputArray, int i, int j)

Java 效能最佳化

1.慎用異常。    異常對效能不利。拋出異常首先要建立一個新的對象。Throwable介面的建構函式調用名為fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法檢查堆棧,收集調用跟蹤資訊。只要有異常被拋出,VM就必須調整呼叫堆疊,因為在處理過程中建立了一個新的對象。異常只能用於錯誤處理,不應該用來控製程序流程。2.不要重複初始設定變數。    預設情況下,調用類的建構函式時,

JAVA中Stack和Heap的區別

1.Java中對象都是分配在heap(堆)中。從heap中分配記憶體所消耗的時間遠遠大於從stack產生儲存空間所需的時間。 (1)每個應用程式運行時,都有屬於自己的一段記憶體空間,用於存放臨時變數、參數傳遞、函數調用時的PC值的儲存。這叫stack。 (2)所有的應用可以從一個系統共用的空間中申請供自己使用的記憶體,這個共用的空間叫heap。 (3)stack中的對象或變數只要定義好就可使用了,應用程式結束時會自動釋放。

JAVA 環境安裝

安裝,配置j2sdk: 執行j2sdk安裝程式,按預設設定進行安裝,也可自訂路徑,但需修改下面的配置 配置j2sdk: 配置環境變數: 我的電腦->屬性->進階->環境變數->系統變數中添加以下環境變數: JAVA_HOME=C:/Program Files/Java/jdk1.5.0_04 CLASSPATH=%JAVA_HOME%/lib/dt.jar; %JAVA_HOME%/lib/tools.jar; path=%JAVA_HOME%/bin;

JAVA 編譯找不到符號

 通常情況下,我們在編寫java檔案時,會有引用到自已定義的一些類,如果按通常的javac *.java的形式來編譯會出現找不到符號的錯誤。以下提供了兩種方法,以供參考假如在d:/web/wsh下有a.java和b.java兩個檔案,在b.java檔案中有引用了a.java。下面是編譯的方法方法一:進入d:/web/wsh下: javac a.java然後退出wsh目錄即進入d:/wsh下 javac wsh/b.java即可編譯成功!方法二:通過使用javac

Java字元編碼根本原理

Java開發中,常常會遇到亂碼的問題,一旦遇到這種問題,常常就很扯蛋,每個人都不願意承認是自己的代碼有問題。其實編碼問題並沒有那麼神秘,那麼不可捉摸,搞清Java的編碼本質過程就真相大白了。 先看個圖:  其實,編碼問題存在兩個方面:JVM之內和JVM之外。  1、Java檔案編譯後形成class這裡Java檔案的編碼可能有多種多樣,但Java編譯器會自動將這些編碼按照Java檔案的編碼格式正確讀取後產生class檔案,這裡的class檔案編碼是Unicode編碼(具體說是UTF-16編碼)。 

Java 中的映像旋轉

 Java 中的映像旋轉  通過AffineTransform.getScaleInstance(double sx, double sy) 可以得到一個執行旋轉操作的AffineTransform 執行個體,再用它做參數,構造一AffineTransformOp 對象,再調用其filter(BufferedImage src,BufferedImage dst)方法,即可用來對BufferedImage做旋轉變換。  

java 同步 非同步

所謂非同步輸入輸出機制,是指在進行輸入輸出處理時,不必等到輸入輸出處理完畢才返回。所以非同步同義語是非阻塞(None Blocking)。 網上有很多網友用很通俗的比喻  把同步和非同步講解的很透徹 轉過來 舉個例子:普通B/S模式(同步)AJAX技術(非同步)           同步:提交請求->等待伺服器處理->處理完畢返回 這個期間用戶端瀏覽器不能幹任何事           非同步:  請求通過事件觸發->伺服器處理(這是瀏覽器仍然可以作其他事情)->處理完畢 

Mozilla Rhino:使用java語言來解釋和執行javascript指令碼)

Mustang 的指令碼引擎JSR 233 為 Java 設計了一套指令碼語言 API。這一套 API 提供了在 Java 程式中調用各種指令碼語言引擎的介面。任何實現了這一介面的指令碼語言引擎都可以在 Java 程式中被調用。在 Mustang 的發行版本中包括了一個基於 Mozilla Rhino 的 JavaScript 指令碼引擎。Mozilla RhinoRhino 是一個純 Java 的開源的 JavaScript 實現。他的名字來源於 O'Reilly 關於 JavaScript

java幾種簡單的設計模式

單例設計模式//單例public class Student { private Student(){} private static Student instance = new Student(); public Student getInstance() { return instance; }}組合設計模式//組合public class Coder { private Computer com; public

Java守護線程

當JVM中所有的線程都是守護線程的時候,JVM就可以退出了;如果還有一個或以上的非守護線程則不會退出。 和普通線程寫法的區別就是:setDaemon(true); 下面是例子public class DeamonThread extends Thread {public void run() {try {Thread.sleep(1000);System.out.println("線程執行了");} catch (Exception e)

代碼改布局的高度等Caused by: java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams

 轉自:http://blog.163.com/smilecatflower_18z/blog/static/19262704520120974119643/最近,在android中用代碼動態改變某種布局(組件)的高度時,會遇到如題所示的類轉換異常。上網查了一下,如下所示:These supply parameters to the parent of this view specifying how it should be arranged. There are many

Regex在javascript和java中如何使用

Regex只要有兩個功能: 模式的檢驗與替換 在開始之前先簡單介紹一下Regex的基礎,以下為我做的摘錄: 表示匹配元素的符號'.' 符號匹配所有字元,包括空格、Tab字元甚至分行符號。'[]' 方括弧裡面指定參與匹配的字元. eg. Regex“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。'(|)' “|”操作符的基本意義就是“或”運算. eg.要匹配“toon”,使用“t(a|e|i|o|oo)n”。這裡不能使用[],因為[]只允許匹配單個字元。'^'

java 快速排序

在網上找來找去,基本都是用c語言實現的快速排序,或者用java寫的但是不夠簡潔。於是自己就用java寫了一個。我們知道快速排序的時間複雜度平均為O(nlog2n),喜歡基本無序的情況,代碼如下:public class quickSort {/** * @param 快速排序 */public static void main(String[] args) { int data[] = {23,4,3,12,12,54,9,80,31}; quickSort qu =

【總結】Java和Unicode字元集

        現今使用的絕大多數作業系統都採用ASCII代碼集表示字元。ASCII最初使用7位碼錶示大小寫字母、數字0~9以及若干控制字元,如NUL和EOT。在西歐,使用者希望代碼集能表示他們本國字元集的所有字元,ASCII代碼集因而被擴充到8位,即增加至128個字元,用於表示英文中不存在的各種西歐語言的字元。這種擴充的8位代碼位ISO8859-Latin-1代碼集。        Java需要使用更普遍的解決方案,用於支援擁有數千個表意文字的亞洲語言。這種解決方案選用的是Unicode。Un

java 調用webservice的各種方法總結

 一、利用jdk web服務api實現,這裡使用基於 SOAP message 的 Web 服務     1.首先建立一個Web services EndPoint: package Hello;   import javax.jws.WebService;   import javax.jws.WebMethod;   import javax.xml.ws.Endpoint;  @WebService public class Hello { @WebMethod public

java 讀取propertites

 a.properties檔案內容usename=殿堂之路passwords=清華大學城java代碼::package p;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class PRO { private static Properties pro = new Properties();   public static void main(String[]

java中的編碼與解碼

import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;public class UTFEncode { public static String change(String str) throws UnsupportedEncodingException {  str = URLDecoder.decode(str, "unicode");   

總頁數: 4058 1 .... 800 801 802 803 804 .... 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.