国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java語言深入:對 java.lang 的研究下

2019-11-18 11:59:05
字體:
來源:轉載
供稿:網友

  5、 System
  
  System類保存靜態方法和變量的集合。標準的輸入,輸出和java運行時錯誤輸出存儲在變量in,out和err中。由System類定義的方法列在表14-11中。注重當所做操作是安全方式所不答應的時,許多方法引發一個安全異常(SecurityException)。應當注重的另一點是:Java 2不贊成使用runFinalizersonExit( )方法。該方法是在Java 1.1中增加的,同時也被證實是不可靠的。
  
  讓我們看一看System類的一些普遍用法。
  
  表11 由Sysem定義的方法
  
  方法 描述
  
  static void arraycopy(Object source, int  sourceStart, Object target, int targetStart,  int size) 復制數組。被復制的數組由source傳遞,而source中開始復制數組時的下標由sourceStart傳遞。接收復制的數組由target傳遞。而target中開始復制數組時的下標由targetStart傳遞。Size是被復制的元素的個數
  
  static long currentTimeMillis( ) 返回自1970年1月1日午夜至今的時間,時間單位為毫秒。
  
  static void exit(int exitCode) 暫停執行,返回exitCode值給父進程(通常為操作系統)。按照約定,0表示正常退出,所有其他的值代表某種形式的錯誤
  
  static void gc( ) 初始化垃圾回收
  
  static PRoperties getProperties( ) 返回與Java運行系統有關的屬性類(Properties class)將在第15章中介紹)
  
  static String getProperty(String which) 返回與which有關的屬性。假如期望的屬性沒有被發現,返回一個空對象(null object)
  
  static String getProperty(String which,  String default) 返回一個與which有關的屬性。假如期望的屬性沒有被發現,則返回default
  
  static SecurityManager getSecurityManager( ) 返回當前的安全治理程序,假如沒有安裝安全治理程序,則返回一個空對象(null object)
  
  static native int identityHashCode(Object obj) 返回obj的特征散列碼
  
  static void load(String libraryFileName) 載入其文件由libraryFileName指定的動態庫,必須指定其完全路徑
  
  static void loadLibrary(String libraryName) 載入其庫名為libraryName的動態庫
  
  static String mapLibraryName(String lib) 對應名為lib的庫,返回一個指定平臺的名字(在Java 2中新增加的)
  
  static void runFinalization( ) 啟動調用不用的但還不是回收站中的對象的finalize( )方法。
  
  static void setErr(PrintStream eStream) 設置標準的錯誤(err)流為iStream
  
  static void setIn(InputStream iStream) 設置標準的輸入(in)流為oStream
  
  static void setOut(PrintStream oStream) 設置標準的輸出(out)流eStream
  
  static void setProperties(Properties sysProperties) 設置由sysProperties指定的當前系統屬性
  
  Static String setProperty(String which, String v) 將v值賦給名為which的屬性(在Java 2中新增加的)
  
  static void setSecurityManager ( SecurityManager secMan) 設置由secMan指定的安全治理程序
  
  5.1、 使用currentTimeMillis( )記錄程序執行的時間
  
  可以發現System類的一個非凡有意義的用法是利用currentTimeMillis( )方法來記錄你的程序的不同部分的執行時間。currentTimeMillis( )方法返回自從1970年1月1號午夜起到現在的時間,時間單位是毫秒。假如要記錄你的程序中一段有問題程序的運行時間可以在這段程序開始之前存儲當前時間,在該段程序結束之際再次調用currentTimeMillis( )方法。執行該段程序所花費的時間為其結束時刻的時間值減去其開始時刻的時間值。下面的程序說明了這一點:
  
  // Timing program execution.
  
  class Elapsed {
  
  public static void main(String args[]) {
  
  long start, end;
  
  System.out.println("Timing a for loop from 0 to 1,000,000");
  
  // time a for loop from 0 to 1,000,000
  
  start = System.currentTimeMillis(); // get starting time
  
  for(int i=0; i < 1000000; i++) ;
  
  end = System.currentTimeMillis(); // get ending time
  
  System.out.println("Elapsed time: " + (end-start));
  
  }
  
  }
  
  這里是程序運行的一個輸出樣本(記住你的程序的運行結果可能與此不同):
  
  Timing a for loop from 0 to 1,000,000
  
  Elapsed time: 10
  
  5.2、 使用arraycopy( )
  
  使用arraycopy( )方法可以將一個任意類型的數組快速地從一個地方復制到另一個地方。這比使用Java中編寫的循環要快的多。下面是一個用arraycopy( )方法復制兩個數組的例子。首先,將數組a復制給數組b,接下來,數組a中的所有元素向后移一位,然后數組b中元素向前移一位。
  
  // Using arraycopy().
  
  class ACDemo {
  
  static byte a[] = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74 };
  
  static byte b[] = { 77, 77, 77, 77, 77, 77, 77, 77, 77, 77 };
  
  public static void main(String args[]) {
  
  System.out.println("a = " + new String(a));
  
  System.out.println("b = " + new String(b));
  
  System.arraycopy(a, 0, b, 0, a.length);
  
  System.out.println("a = " + new String(a));
  
  System.out.println("b = " + new String(b));
  
  System.arraycopy(a, 0, a, 1, a.length - 1);
  
  System.arraycopy(b, 1, b, 0, b.length - 1);
  
  System.out.println("a = " + new String(a));
  
  System.out.println("b = " + new String(b));
  
  }
  
  }
  
  正如從下面的輸出中看到的那樣,可以使用相同的源和目的在任一方向進行復制:
  
  a = ABCDEFGHIJ
  
  b = MMMMMMMMMM
  
  a = ABCDEFGHIJ
  
  b = ABCDEFGHIJ
  
  a = AABCDEFGHI
  
  b = BCDEFGHIJJ
  
  5.3 、 環境屬性
  
  下面的屬性在Java 2的所有環境中可以使用:
  
  file.separator java.vendor.url os.arch
  
  java.class.path java.version os.name
  
  java.class.version java.vm.name os.version
  
  java.ext.dirs java.vm.specification.name Path.separator
  
  java.home java.vm.specification.vendor User.dir
  
  java.specification.name java.vm.specification.version User.home
  
  java.specification.vendor java.vm.vendor User.name
  
  java.specification.version java.vm.version
  
  java.vendor line.separator
  
  可以通過調用System.getProperty( )方法來獲得不同環境變量的值。例如下面的程序顯示當前用戶目錄的路徑:
  
  class ShowUserDir {
  
  public static void main(String args[]) {
  
  System.out.println(System.getProperty("user.dir"));
  
  }
  
  }
  
  6、 Object
  
  正如我們在第1部分所提及的,Object類是其他所有類的一個超類。表14-12給出了Object類中定義的方法,這些方法對于每一個對象都是可用的。
  
  表12 由Object定義的方法
  
  方法 描述
  
  Object clone( )  Throws   CloneNotSupportedException 創建一個與調用對象一樣的新對象
  
  Boolean equals(Object object) 假如調用對象等價于object返回true
  
  void finalize( )  throws Throwable 默認的finalize( )方法。經常被子類重載
  
  final Class getClass( ) 獲得描述調用對象的Class對象
  
  int hashCode( ) 返回與調用對象關聯的散列碼
  
  final void notify( ) 恢復等待調用對象的線程的執行
  
  final void notifyAll( ) 恢復等待調用對象的所有線程的執行
  
  String toString( ) 返回描述對象的一個字符串
  
  final void wait( )  throws InterruptedException 等待另一個執行的線程
  
  final void wait(long milliseconds)  throws InterruptedException 等待直至指定毫秒數的另一個執行的線程
  
  final void wait(long milliseconds,       int nanoseconds)  throws InterruptedException 等待直至指定毫秒加毫微秒數的另一個執行的線程
  
  7、 使用clone( )和Cloneable接口
  
  由Object類定義的絕大部分方法在本書其他部分討論。而一個非凡值得關注的方法是clone( )。clone( )方法創建調用它的對象的一個復制副本。只有那些實現Cloneable接口的類能被復制。
  
  Cloneable接口沒有定義成員。它通常用于指明被創建的一個答應對對象進行位復制(也就是對象副本)的類。假如試圖用一個不支持Cloneable接口的類調用clone( )方法,將引發一個CloneNotSupportedException異常。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌邑市| 永平县| 西乌珠穆沁旗| 合作市| 顺平县| 皋兰县| 乐昌市| 桦甸市| 洛扎县| 武邑县| 遂川县| 衡阳市| 呼图壁县| 平定县| 双柏县| 拉萨市| 白山市| 黄浦区| 兰州市| 姜堰市| 新竹市| 濮阳市| 会理县| 万源市| 翼城县| 拉萨市| 腾冲县| 黔西| 财经| 壶关县| 阜平县| 沙湾县| 阿克苏市| 株洲县| 修水县| 新昌县| 恩平市| 阳信县| 玉屏| 吴桥县| 海门市|