原创 JVM調優總結(十)-調優方法

JVM調優工具 Jconsole,jProfile,VisualVM Jconsole : jdk自帶,功能簡單,但是可以在系統有一定負荷的情況下使用。對垃圾回收算法有很詳細的跟蹤。詳細說明參考這裏 JProfiler:商業軟

原创 JVM調優總結(八)-典型配置舉例2

常見配置彙總 堆設置   -Xms:初始堆大小   -Xmx:最大堆大小   -XX:NewSize=n:設置年輕代大小   -XX:NewRatio=n:設置年輕代和年老代的比值。如:爲3,表示年輕代與年老代比值爲1:3,年

原创 JVM調優總結(九)-新一代的垃圾回收算法

垃圾回收的瓶頸     傳統分代垃圾回收方式,已經在一定程度上把垃圾回收給應用帶來的負擔降到了最小,把應用的吞吐量推到了一個極限。但是他無法解決的一個問題,就是Full GC所帶來的應用暫停。在一些對實時性要求很高的應用場景下,GC暫

原创 JAVA和JVM運行原理揭祕

這裏和大家簡單分享一下JAVA和JVM運行的原理,Java語言寫的源程序通過Java編譯器,編譯成與平臺無關的‘字節碼程序’(.class文件,也就是0,1二進制程序),然後在OS之上的Java解釋器中解釋執行,而JVM是java的核心

原创 JVM調優總結(七)-典型配置舉例1

以下配置主要針對分代垃圾回收算法而言。   堆大小設置 年輕代的設置很關鍵 JVM中最大堆大小有三方面限制:相關操作系統的數據模型(32-bt還是64-bit)限制;系統的可用虛擬內存限制;系統的可用物理內存限制。32位系統下,

原创 JVM調優總結(十一)-反思

垃圾回收的悖論     所謂“成也蕭何敗蕭何”。Java的垃圾回收確實帶來了很多好處,爲開發帶來了便利。但是在一些高性能、高併發的情況下,垃圾回收確成爲了制約Java應用的瓶頸。目前JDK的垃圾回收算法,始終無法解決垃圾回收時的暫停問

原创 JVM調優總結(一):基礎概念、數據類型、堆與棧

數據類型     Java虛擬機中,數據類型可以分爲兩類:基本類型和引用類型。基本類型的變量保存原始值,即:他代表的值就是數值本身;而引用類型的變量保存引用值。“引用值”代表了某個對象的引用,而不是對象本身,對象本身存放在這個引用

原创 JVM調優總結(四)- 垃圾回收面臨的問題

如何區分垃圾     上面說到的“引用計數”法,通過統計控制生成對象和刪除對象時的引用數來判斷。垃圾回收程序收集計數爲0的對象即可。但是這種方法無法解決循環引用。所以,後來實現的垃圾判斷算法中,都是從程序運行的根節點出發,遍歷整個對象

原创 JVM調優總結(十二)-參考資料

能整理出上面一些東西,也是因爲站在巨人的肩上。下面是一些參考資料,供大家學習,大家有更好的,可以繼續完善:)   · Java 理論與實踐: 垃圾收集簡史   · Java SE 6 HotSpot[tm] Virtual Ma

原创 JVM調優總結(三)- 基本垃圾回收算法

可以從不同的的角度去劃分垃圾回收算法: 按照基本回收策略分 引用計數(Reference Counting): 比較古老的回收算法。原理是此對象有一個引用,即增加一個計數,刪除一個引用則減少一個計數。垃圾回收時,只用收集計數爲0的

原创 通過JVM原理理解字符串的比較

Java中的字符串也是一連串的字符,但是與許多其他的計算機語言將字符串作爲字符數組處理不同,Java將字符串作爲String類型對象來處理。將字符串作爲內置的對象處理允許Java提供十分豐富的功能特性以方便處理字符串。 JVM運行時

原创 oracle的sql簡單筆記

一.簡單語句; set linesize 200;   (設置行的大小) set pagesize 200;    (設置頁面的大小) rename stu3 to student;  (重命名錶) rollback     (恢復) c

原创 Java編譯器優化方法簡介

你對Java編譯器優化的概念和方法是否熟悉,這裏和大家分享一下,Java應用程序的編譯過程與靜態編譯語言(例如C或C++)不同。靜態編譯器直接把源代碼轉換成可以直接在目標平臺上執行的機器代碼,不同的硬件平臺要求不同的編譯器。Java編譯

原创 JVM調優總結(六)-分代垃圾回收詳述2

分代垃圾回收流程示意 選擇合適的垃圾收集算法 串行收集器 用單線程處理所有垃圾回收工作,因爲無需多線程交互,所以效率比較高。但是,也無法使用多處理器的優勢,所以此收集器適合單處理器機器。當然,此收集器也可以用在小數據量(1

原创 Java中可變長參數的使用及注意事項

在Java5 中提供了變長參數(varargs),也就是在方法定義中可以使用個數不確定的參數,對於同一方法可以使用不同個數的參數調用 1. 可變長參數的定義 使用...表示可變長參數,例如print(String... args){