Tomcat Manager Status



相关名词解释

Status-JVM :
Free memory 剩余内存
Total memory 总内存
Max memory 最大内存

Status-HTTP :
Max threads 最大线程数
Current thread count 当前线程数
Current thread busy 当前繁忙线程数
Max processing time 最大处理时间
ms Processing time 最短处理时间
Request count 请求书
Error count 错误数
Bytes received 接收字节
Bytes sent 发送字节




JVM区域总体分两类,heap区和非heap区。 
heap区又分为: 
- Eden Space(伊甸园)、 
- Survivor Space(幸存者区)、 
- Old Gen(老年代)。
非heap区又分: 
- Code Cache(代码缓存区); 
- Perm Gen(永久代); 
- Jvm Stack(java虚拟机栈); 
- Local Method Statck(本地方法栈);
下面我们对每一个内存区域做详细介绍。 
Eden Space字面意思是伊甸园,对象被创建的时候首先放到这个区域,进行垃圾回收后,不能被回收的对象被放入到空的survivor区域。
Survivor Space幸存者区,用于保存在eden space内存区域中经过垃圾回收后没有被回收的对象。Survivor有两个,分别为To Survivor、 From Survivor,这个两个区域的空间大小是一样的。执行垃圾回收的时候Eden区域不能被回收的对象被放入到空的survivor(也就是To Survivor,同时Eden区域的内存会在垃圾回收的过程中全部释放),另一个survivor(即From Survivor)里不能被回收的对象也会被放入这个survivor(即To Survivor),然后To Survivor 和 From Survivor的标记会互换,始终保证一个survivor是空的。
这里写图片描述 
Eden Space和Survivor Space都属于新生代,新生代中执行的垃圾回收被称之为Minor GC(因为是对新生代进行垃圾回收,所以又被称为Young GC),每一次Young GC后留下来的对象age加1。
注:GC为Garbage Collection,垃圾回收。
Old Gen老年代,用于存放新生代中经过多次垃圾回收仍然存活的对象,也有可能是新生代分配不了内存的大对象会直接进入老年代。经过多次垃圾回收都没有被回收的对象,这些对象的年代已经足够old了,就会放入到老年代。
当老年代被放满的之后,虚拟机会进行垃圾回收,称之为Major GC。由于Major GC除并发GC外均需对整个堆进行扫描和回收,因此又称为Full GC。
heap区即堆内存,整个堆大小=年轻代大小 + 老年代大小。堆内存默认为物理内存的1/64(<1GB);默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制,可以通过MinHeapFreeRatio参数进行调整;默认空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制,可以通过MaxHeapFreeRatio参数进行调整。
下面我们来认识下非堆内存(非heap区) 
Code Cache代码缓存区,它主要用于存放JIT所编译的代码。CodeCache代码缓冲区的大小在client模式下默认最大是32m,在server模式下默认是48m,这个值也是可以设置的,它所对应的JVM参数为ReservedCodeCacheSize 和 InitialCodeCacheSize,可以通过如下的方式来为Java程序设置。
-XX:ReservedCodeCacheSize=128m
  • 1
CodeCache缓存区是可能被充满的,当CodeCache满时,后台会收到CodeCache is full的警告信息,如下所示: 
“CompilerThread0” java.lang.OutOfMemoryError: requested 2854248 bytes for Chunk::new. Out of swap space?
注:JIT编译器是在程序运行期间,将Java字节码编译成平台相关的二进制代码。正因为此编译行为发生在程序运行期间,所以该编译器被称为Just-In-Time编译器。
Perm Gen全称是Permanent Generation space,是指内存的永久保存区域,因而称之为永久代。这个内存区域用于存放Class和Meta的信息,Class在被 Load的时候被放入这个区域。因为Perm里存储的东西永远不会被JVM垃圾回收的,所以如果你的应用程序LOAD很多CLASS的话,就很可能出现PermGen space错误。默认大小为物理内存的1/64。
版权声明:本文由施勇原创,转载请注明作者和出处! https://blog.csdn.net/shiyong1949/article/details/52585256

HTTP MIME Type

Extension MIME Type
.doc      application/msword
.dot      application/msword

.docx     application/vnd.openxmlformats-officedocument.wordprocessingml.document
.dotx     application/vnd.openxmlformats-officedocument.wordprocessingml.template
.docm     application/vnd.ms-word.document.macroEnabled.12
.dotm     application/vnd.ms-word.template.macroEnabled.12

.xls      application/vnd.ms-excel
.xlt      application/vnd.ms-excel
.xla      application/vnd.ms-excel

.xlsx     application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xltx     application/vnd.openxmlformats-officedocument.spreadsheetml.template
.xlsm     application/vnd.ms-excel.sheet.macroEnabled.12
.xltm     application/vnd.ms-excel.template.macroEnabled.12
.xlam     application/vnd.ms-excel.addin.macroEnabled.12
.xlsb     application/vnd.ms-excel.sheet.binary.macroEnabled.12

.ppt      application/vnd.ms-powerpoint
.pot      application/vnd.ms-powerpoint
.pps      application/vnd.ms-powerpoint
.ppa      application/vnd.ms-powerpoint

.pptx     application/vnd.openxmlformats-officedocument.presentationml.presentation
.potx     application/vnd.openxmlformats-officedocument.presentationml.template
.ppsx     application/vnd.openxmlformats-officedocument.presentationml.slideshow
.ppam     application/vnd.ms-powerpoint.addin.macroEnabled.12
.pptm     application/vnd.ms-powerpoint.presentation.macroEnabled.12
.potm     application/vnd.ms-powerpoint.template.macroEnabled.12
.ppsm     application/vnd.ms-powerpoint.slideshow.macroEnabled.12

.mdb      application/vnd.ms-access

regexr 匹配括弧

http://regexr.com/

\[(.*?)\]
\((.*?)\)

[MSSQL] ALTER TABLE 新增修改刪除欄位語法

新增欄位:
ALTER TABLE table_name ADD column_name datatype

刪除欄位:
ALTER TABLE table_name DROP COLUMN column_name

修改欄位型態:
ALTER TABLE table_name ALTER column_name datatype

[JavaScript] 常用的陣列(Array)操作大全

ARRAY OBJECT - 陣列物件

Array Object - 陣列宣告
範例說明
var team = new Array(9);宣告一個0~9共10個的Array,team[0], team[1]…
var team = new Array();宣告一個空Array,可任意新增值到Array中,例如,team[20] = 'KKBruce';即會產生team[0~19]的空Array,team[20]為指定值
var team = new Array('Bruce', 'Sherry', 'Daniel');直接帶值宣告team[0],team[1],team[2]三個Array
var team = ['Bruce','Sherry','Daniel'];透過[]符號直接宣告Array及值

第四種「var team = ['Bruce','Sherry','Daniel'];」的用法在JSON裡很重要,建議一開始就習慣使用此種方式來建立陣列及值。

Array物件的屬性和方法


Array Object - 屬性和方法
名稱說明
length屬性,取得陣列的元素個數,也就是陣列的長度
join()將陣列的元素使用字串方式顯示,每個陣列元素使用「,」符號分隔,可指定使用的分隔符號,a.join('-->')
reverse()將陣列的元素反轉,本來是陣列的最後一個元素成為第一個元素
sort()將陣列所有元素進行排序
concat(array)將參數的陣列合併到目前的陣列中
push()由push()與pop()來寶現堆疊(stack),stack.push('a');將a字串放入stack陣列
pop()先進後出,由最後一個Index來取出Array,例:push()進去a,b,c三個值,那pop會由c,b,a順序取出


JavaScript、JQuery 取得父親、兒子、兄弟元素

原生javascript方法:
var a = document.getElementById("dom");
      del_space(a); //清理空格
      var b = a.childNodes; //获取a的全部子节点;
      var c = a.parentNode; //获取a的父节点;
      var d = a.nextSibling; //获取a的下一个兄弟节点
      var e = a.previousSibling; //获取a的上一个兄弟节点
      var f = a.firstChild; //获取a的第一个子节点
      var g = a.lastChild; //获取a的最后一个子节点
jQuery方法:
jQuery.parent(expr) //找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(".class")

jQuery.parents(expr) //类似于jQuery.parents(expr),但是是查找所有祖先元素,不限于父元素

jQuery.children(expr) //返回所有子节点,这个方法只会返回直接的孩子节点,不会返回所有的子孙节点

jQuery.contents() //返回下面的所有内容,包括节点和文本。这个方法和children()的区别就在于,包括空白文本,也会被作为一个jQuery对象返回,children()则只会返回节点

jQuery.prev() //返回上一个兄弟节点,不是所有的兄弟节点

jQuery.prevAll() //返回所有之前的兄弟节点

jQuery.next() //返回下一个兄弟节点,不是所有的兄弟节点

jQuery.nextAll() //返回所有之后的兄弟节点

jQuery.siblings() //返回兄弟姐妹节点,不分前后

jQuery.find(expr)  //跟jQuery.filter(expr)完全不一样。jQuery.filter()是从初始的jQuery对象集合中筛选出一部分,而jQuery.find()的返回结果,不会有初始集合中的内容,比如$("p"),find("span"),是从p元素开始找,等同于$("p span").

[JavaScript] JS宣告陣列(Array)的方式

陣列是一種資料的集合,在javascript中,陣列也是物件。既然是物件,就能藉由建構子來進行物件的建立。
1.使用 new 敘述宣告陣列長度。
var team =new Array(10) ;
宣告一個0~9共10個的Array,team[0], team[1]…
var team = new Array();
宣告一個空Array,可任意新增值到Array中,例如,team[20] = 'KKBruce';即會產生team[0~19]的空Array,team[20]為指定值
var team =new Array("Welcome","To","Vic's","Blog"); 
使用 new 敘述宣告,並給定陣列初始值。這行程式會建立一個長度4的陣列物件
2.使用實字直接宣告。
var team=[];
這行程式會建立一個空的陣列物件
var team=[ "Hi", "Vic"] ;
建立一個長度為2的陣列物件。


3.建立匿名物件
var person = new Object();
person.Name = "Jeffrey";

person.Age = 18;