### 概述
在API中System類介紹的比較簡單,我們給出定義,System中代表程序所在系統,提供了對應的一些系統屬性信息,和系統操作。System類不能手動創建對象,因為構造方法被private修飾,阻止外界創建對象。System類中的都是static方法,類名訪問即可。在JDK中,有許多這樣的類。
### 常用方法
#### currentTimeMillis()
獲取1970年至今的毫秒值 , long型.
~~~
System.out.println(System.currentTimeMillis());
~~~
~~~
1523431212444
~~~
#### exit()
~~~
System.exit(int)
~~~
終止當前正在運行的Java虛擬機 . 數傳入一個數字即可。通常傳入0記為正常狀態,其他為異常狀態
### gc()
用來運行JVM中的垃圾回收器,完成內存中垃圾的清除。
完成類
~~~
public class Test {
public void finalize()
{
System.out.println("垃圾回收了");
}
}
~~~
測試
~~~
new Test();
System.gc();
~~~
結果
~~~
垃圾回收了
~~~
#### arraycopy()
* object src 要復制的源數組
* int srcPos 數組源的起始索引
* object dest 復制后的目標數組
* int destPos 目標數組起始索引
* int length 復制長度
~~~
int[] arr1 = {0,2,3};
int[] arr2 = {4,5,6};
System.arraycopy(arr1,1,arr2,0,2);
for(int i=0;i< arr2.length;i++){
System.out.println(arr2[i]);
}
~~~
結果
~~~
2
3
6
~~~
實際上是對目標數組的內容進行了替換 .
#### getProperties()
用來獲取指定鍵(字符串名稱)中所記錄的系統屬性信息 .
~~~
System.out.println(System.getProperties());
~~~
~~~
{java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=C:\Java\jdk1.7.0_72\jre\bin, java.vm.version=24.72-b04, java.vm.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, path.separator=;, java.vm.name=Java HotSpot(TM) Client VM, file.encoding.pkg=sun.io, user.country=CN, user.script=, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=, java.vm.specification.name=Java Virtual Machine Specification, user.dir=C:\Users\Artisan\Desktop\Java, java.runtime.version=1.7.0_72-b14, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=C:\Java\jdk1.7.0_72\jre\lib\endorsed, os.arch=x86, java.io.tmpdir=C:\Users\Artisan\AppData\Local\Temp\, line.separator=
, java.vm.specification.vendor=Oracle Corporation, user.variant=, os.name=Windows 8.1, sun.jnu.encoding=GBK, java.library.path=C:\Java\jdk1.7.0_72\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;D:\wamp\Apache24\bin;D:\wamp\PHP7;C:\Program Files\MySQL\MySQL Utilities 1.6\;C:\ProgramData\ComposerSetup\bin;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Redis\;C:\Java\jdk1.7.0_72\bin;C:\Program Files\MySQL\MySQL Server 5.7\bin;C:\Users\Artisan\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\Artisan\AppData\Local\Programs\Python\Python36\;C:\Users\Artisan\AppData\Local\Microsoft\WindowsApps;C:\Users\Artisan\AppData\Roaming\Composer\vendor\bin;C:\Users\Artisan\AppData\Roaming\npm;., java.specification.name=Java Platform API Specification, java.class.version=51.0, sun.management.compiler=HotSpot Client Compiler, os.version=6.3, user.home=C:\Users\Artisan, user.timezone=, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=UTF-8, java.specification.version=1.7, java.class.path=C:\Java\jdk1.7.0_72\jre\lib\charsets.jar;C:\Java\jdk1.7.0_72\jre\lib\deploy.jar;C:\Java\jdk1.7.0_72\jre\lib\ext\access-bridge-32.jar;C:\Java\jdk1.7.0_72\jre\lib\ext\dnsns.jar;C:\Java\jdk1.7.0_72\jre\lib\ext\jaccess.jar;C:\Java\jdk1.7.0_72\jre\lib\ext\localedata.jar;C:\Java\jdk1.7.0_72\jre\lib\ext\sunec.jar;C:\Java\jdk1.7.0_72\jre\lib\ext\sunjce_provider.jar;C:\Java\jdk1.7.0_72\jre\lib\ext\sunmscapi.jar;C:\Java\jdk1.7.0_72\jre\lib\ext\sunpkcs11.jar;C:\Java\jdk1.7.0_72\jre\lib\ext\zipfs.jar;C:\Java\jdk1.7.0_72\jre\lib\javaws.jar;C:\Java\jdk1.7.0_72\jre\lib\jce.jar;C:\Java\jdk1.7.0_72\jre\lib\jfr.jar;C:\Java\jdk1.7.0_72\jre\lib\jfxrt.jar;C:\Java\jdk1.7.0_72\jre\lib\jsse.jar;C:\Java\jdk1.7.0_72\jre\lib\management-agent.jar;C:\Java\jdk1.7.0_72\jre\lib\plugin.jar;C:\Java\jdk1.7.0_72\jre\lib\resources.jar;C:\Java\jdk1.7.0_72\jre\lib\rt.jar;C:\Users\Artisan\Desktop\Java\out\production\Java;C:\Program Files\JetBrains\IntelliJ IDEA 2018.1\lib\idea_rt.jar, user.name=Artisan, java.vm.specification.version=1.7, sun.java.command=com.dome.Main, java.home=C:\Java\jdk1.7.0_72\jre, sun.arch.data.model=32, user.language=zh, java.specification.vendor=Oracle Corporation, awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, sharing, java.version=1.7.0_72, java.ext.dirs=C:\Java\jdk1.7.0_72\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext, sun.boot.class.path=C:\Java\jdk1.7.0_72\jre\lib\resources.jar;C:\Java\jdk1.7.0_72\jre\lib\rt.jar;C:\Java\jdk1.7.0_72\jre\lib\sunrsasign.jar;C:\Java\jdk1.7.0_72\jre\lib\jsse.jar;C:\Java\jdk1.7.0_72\jre\lib\jce.jar;C:\Java\jdk1.7.0_72\jre\lib\charsets.jar;C:\Java\jdk1.7.0_72\jre\lib\jfr.jar;C:\Java\jdk1.7.0_72\jre\classes, java.vendor=Oracle Corporation, file.separator=\, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.desktop=windows, sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86}
~~~

- 環境
- Java基礎
- 數據類型
- 基本類型
- 引用類型
- Array
- Class
- ArrayList
- 流程控制
- ASCII碼表
- 面向對象
- 概述
- 變量
- this
- 修飾符
- 封裝
- 繼承
- final
- static
- 接口
- 接口
- 抽象類
- overload
- 接口和抽象類區別
- 案例
- 多態
- 構造方法
- super
- 匿名對象
- 內部類
- 靜態導入
- 包的聲明和訪問
- 代碼塊
- 代理設計模式
- 靜態代碼塊
- Object類
- lambda表達式
- 枚舉
- 定義枚舉
- 常用方法
- 枚舉常量
- 異常
- 可變參數
- Properties
- 概述
- Properties和持久化有關的方法
- 反射
- 類加載器
- 概述
- Class類
- 獲取構造方法并運行
- 獲取成員變量并改值
- 獲取成員方法并運行
- 反射泛型擦除
- 反射通過配置文件運行
- 常用 API
- Date類
- DateFormat類
- Calendar類
- Math類
- String類
- object類
- System類
- 正則表達式
- BigInteger類
- BigDecimal類
- Arrays工具類
- StringBuffer類
- 基本類型包裝類
- 自動裝箱和自動拆箱
- 框架集合
- collection接口
- 概述
- 接口方法
- 迭代器
- 迭代器并發異常
- 增強for循環
- 泛型
- hashCode和equals
- List接口
- 概述
- ArrayList
- LinkedList
- vector
- Set接口
- 概述
- 對象的哈希值
- HashSet
- LinkedHashSet
- 保證自定義元素的唯一性(重寫)
- ArrayList和HashSet的contains原理
- Map接口
- 概述
- Map集合常用方法
- 迭代Map
- Map存儲自定義類型
- HashMap
- LinkedHashMap
- Hashtable
- 嵌套Map遍歷
- 方法的可變參數
- collections工具類
- 集合嵌套
- 集合特點總結
- Collection集合工具類
- Arrays工具類
- File類
- 概述
- 獲取方法
- 創建和刪除
- 判斷方法
- 其他方法
- 文件過濾器
- IO流
- 字節流
- 概述
- 字節流
- 字節流復制文件
- 字節緩沖流
- 復制單級文件夾
- 使用字節流讀取中文的亂碼問題
- 字符編碼表
- 方便程序員的IO流
- 轉換流
- 概述
- OutputStreamWriter類
- InputStreamWriter類
- 轉換流和其他子類的區別
- 序列化流
- 概述
- 序列化接口以及版本號問題
- transient
- 打印流
- 多線程
- 概述
- main線程介紹
- 開啟線程方式一:Thread類
- 開啟線程方式二:Runnable類
- 線程的執行原理
- 使用哪種方式好
- 使用匿名內部類創建線程
- 線程安全
- ThreadLocal
- 網絡編程
- XML
- 概述
- 語法
- 元素標簽
- 屬性
- 轉義字符
- CDATA區
- XML約束
- DTD約束
- 三種引入DTD的方式
- DTD語法
- Schema約束
- JDBC
- 概述
- JDBC原理
- JDBC查詢操作
- JDBCUtils
- 預處理對象
- JDBC連接池
- 概述
- DBCP
- C3P0
- DBUtils操作
- ArrayHandler
- ArrayListHandler
- BeanHandler
- BeanListHandler
- ColumnListHandler
- MapHandler
- MapListHandler
- ScalarHandler
- 事務
- 事務概述
- 原生JDBC完成轉賬
- DBUtils完成轉賬
- 事務特性
- 三層思想
- 概述
- JavaWEB
- tomcat
- servlet
- 概述
- 映射servlet
- Servlet接口
- HttpServlet類
- load-on-startup
- servletContext
- ServletRequest
- ServletResponse
- Cooike&Session
- servlet三大域對象
- JSP
- 概述
- jsp內置對象
- 指令
- page
- include
- taglib
- JSP中的四個域對象
- jsp的一個動作標簽
- EL表達式
- 概述
- 獲取域中數據
- 執行運算
- el表達式中的內置對象
- jsti標簽
- 概念
- jstl分類
- Filter過濾器
- 概述
- 生命周期
- url-pattern配置
- filter的chain過濾鏈
- filter-mapping子標簽
- 全局統一錯誤頁面
- filterConfig
- 自動登錄實例
- 全局統一編碼
- Listener監聽器
- 概念
- 監聽器分類
- 監聽三個對象的創建和銷毀
- 監聽三個對象屬性的變化
- 監聽javabean在session中的狀態變化
- 定時器
- 概念
- calendar日歷
- 郵件
- 概述
- JSON
- 數據結構
- 堆棧結構
- 隊列結構
- 數組結構
- 鏈表結構
- 基礎加強
- 面試題:增強一個對象的方法有幾種方式?
- 裝飾者增強
- 動態代理
- 動態代理
- 動態代理細節
- 使用動態代理解決字符集編碼
- 注解
- 概述
- 擴展的自定義注解
- 類加載器
- 全盤負責托管機制
- 開發模式
- 問題
- lambda
- 函數式編程思想概述
- String字符串