首页编程java编程java 监控区域是什么,"Java"的中文意思是什么

java 监控区域是什么,"Java"的中文意思是什么

编程之家2023-10-1292次浏览

今天给各位分享java 监控区域是什么的知识,其中也会对"Java"的中文意思是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

java 监控区域是什么,"Java"的中文意思是什么

java有什么方法可以捕获程序异

1. try-catch语句

在Java中,异常通过try-catch语句捕获。其一般语法形式为

try{

java 监控区域是什么,"Java"的中文意思是什么

//可能会发生异常的程序代码

}catch(Type1id1){

//捕获并处置try抛出的异常类型Type1

java 监控区域是什么,"Java"的中文意思是什么

}

catch(Type2id2){

//捕获并处置try抛出的异常类型Type2

}

关键词try后的一对大括号将一块可能发生异常的代码包起来,称为监控区域。Java方法在运行过程中出现异常,则创建异常对象。将异常抛出监控区域之外,由Java运行时系统试图寻找匹配的catch子句以捕获异常。若有匹配的catch子句,则运行其异常处理代码,try-catch语句结束。

匹配的原则是:如果抛出的异常对象属于catch子句的异常类,或者属于该异常类的子类,则认为生成的异常对象与catch块捕获的异常类型相匹配。

例1捕捉throw语句抛出的“除数为0”异常。

publicclassTestException{

publicstaticvoidmain(String[]args){

inta=6;

intb=0;

try{//try监控区域

if(b==0)thrownewArithmeticException();//通过throw语句抛出异常

System.out.println("a/b的值是:"+a/b);

}

catch(ArithmeticExceptione){//catch捕捉异常

System.out.println("程序出现异常,变量b不能为0。");

}

System.out.println("程序正常结束。");

}

}

运行结果:

程序出现异常,变量b不能为0。

程序正常结束。

例1在try监控区域通过if语句进行判断,当“除数为0”的错误条件成立时引发ArithmeticException异常,创建 ArithmeticException异常对象,并由throw语句将异常抛给Java运行时系统,由系统寻找匹配的异常处理器catch并运行相应异常处理代码,打印输出“程序出现异常,变量b不能为0。”try-catch语句结束,继续程序流程。

事实上,“除数为0”等ArithmeticException,是RuntimException的子类。而运行时异常将由运行时系统自动抛出,不需要使用throw语句。

例2捕捉运行时系统自动抛出“除数为0”引发的ArithmeticException异常。

publicstaticvoidmain(String[]args){

inta=6;

intb=0;

try{

System.out.println("a/b的值是:"+a/b);

}catch(ArithmeticExceptione){

System.out.println("程序出现异常,变量b不能为0。");

}

System.out.println("程序正常结束。");

}

}

2. try-catch-finally语句

try-catch语句还可以包括第三部分,就是finally子句。它表示无论是否出现异常,都应当执行的内容。try-catch-finally语句的一般语法形式为:

try{

//可能会发生异常的程序代码

}catch(Type1id1){

//捕获并处理try抛出的异常类型Type1

}catch(Type2id2){

//捕获并处理try抛出的异常类型Type2

}finally{

//无论是否发生异常,都将执行的语句块

}

如何查看java虚拟机堆内存的参数值

请确保java_home/bin配置到path环境变量下,因为这些工具都在jdk的bin目录下

jps(JVM Process Status Tool):JVM机进程状况工具

用来查看基于HotSpot JVM里面所有进程的具体状态,包括进程ID,进程启动的路径等等。与unix上的ps类似,用来显示本地有权限的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数。

Jps也可以显示远程系统上的JAVA进程,这需要远程服务上开启了jstat服务,以及RMI注及服务,不过常用都是对本对的JAVA进程的查看。

命令格式:jps [ options ] [ hostid ]

常用参数说明:

-m输出传递给main方法的参数,如果是内嵌的JVM则输出为null。

-l输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。

-v输出传给JVM的参数。

例如:

C:\Users\Administrator>jps-lmv

1796-Dosgi.requiredJavaVersion=1.5-Xms40m-Xmx512m-XX:MaxPermSize=256m

7340 sun.tools.jps.Jps-lmv-Denv.class.path=.;D:\DevTools\VM\jdk1.6.0_31\\lib\dt.jar;D:\DevTools\VM\jdk1.6.0_31\\lib\tools.jar;-Dapplication.home=D:\DevTools\VM\jdk1.6.0_31-Xms8m

其中pid为1796的是我的eclipse进程,pid为7340的是jps命令本身的进程

jinfo(Configuration Info for Java):JVM配置信息工具

可以输出并修改运行时的java进程的opts。用处比较简单,用于输出JAVA系统参数及命令行参数

命令格式:jinfo [ options ] [ pid ]

常用参数说明:

-flag输出,修改,JVM命令行参数

例如:

C:\Users\Administrator>jinfo 1796

将会打印出很多jvm运行时参数信息,由于比较长这里不再打印出来,可以自己试试,内容一目了然

Jstack(Stack Trace for Java):JVM堆栈跟踪工具

jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64“

命令格式:jstack [ option ] pid

常用参数说明:

-F当’jstack [-l] pid’没有相应的时候强制打印栈信息

-l长列表.打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.

-m打印java和native c/c++框架的所有栈信息.

-h|-help打印帮助信息

例如:

C:\Users\Administrator>jstack 1796

2013-05-22 11:42:38

Full thread dump Java HotSpot(TM) Client VM(20.6-b01 mixed mode):

"Worker-30" prio=6 tid=0x06514c00 nid=0x1018 in Object.wait() [0x056af000]

java.lang.Thread.State: TIMED_WAITING(on object monitor)

at java.lang.Object.wait(Native Method)

at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)

- locked<0x1ad84a90>(a org.eclipse.core.internal.jobs.WorkerPool)

at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)

at org.eclipse.core.internal.jobs.Worker.run(Worker.java:50)

......

......

......

......

jstat(JVM statistics Monitoriing Tool):JVM统计信息监视工具

对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控

命令格式:jstat [ option pid [interval [ s| ms ] [count] ] ]

常用参数说明:

-gcutil输出已使用空间占总空间的百分比

-gccapacity输出堆中各个区域使用到的最大和最小空间

例如:每隔1秒监控jvm内存一次,共监控5次

C:\Users\Administrator>jstat-gccapacity 1796 1s 5

NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC

13632.0 174720.0 40896.0 4032.0 4032.0 32832.0 27328.0 349568.0 81684.0 81684.0 12288.0 262144.0 80640.0 80640.0 42 96

13632.0 174720.0 40896.0 4032.0 4032.0 32832.0 27328.0 349568.0 81684.0 81684.0 12288.0 262144.0 80640.0 80640.0 42 96

13632.0 174720.0 40896.0 4032.0 4032.0 32832.0 27328.0 349568.0 81684.0 81684.0 12288.0 262144.0 80640.0 80640.0 42 96

13632.0 174720.0 40896.0 4032.0 4032.0 32832.0 27328.0 349568.0 81684.0 81684.0 12288.0 262144.0 80640.0 80640.0 42 96

13632.0 174720.0 40896.0 4032.0 4032.0 32832.0 27328.0 349568.0 81684.0 81684.0 12288.0 262144.0 80640.0 80640.0 42 97

C:\Users\Administrator>jstat-gcutil 1796 1s 5

S0 S1 E O P YGC YGCT FGC FGCT GCT

0.00 0.00 0.52 53.35 99.77 42 0.513 99 38.119 38.632

0.00 0.00 0.52 53.35 99.77 42 0.513 99 38.119 38.632

0.00 0.00 0.52 53.35 99.77 42 0.513 99 38.119 38.632

0.00 0.00 0.52 53.35 99.77 42 0.513 99 38.119 38.632

0.00 0.00 0.52 53.35 99.77 42 0.513 99 38.119 38.632

一些术语的中文解释:

S0C:年轻代中第一个survivor(幸存区)的容量(字节)

S1C:年轻代中第二个survivor(幸存区)的容量(字节)

S0U:年轻代中第一个survivor(幸存区)目前已使用空间(字节)

S1U:年轻代中第二个survivor(幸存区)目前已使用空间(字节)

EC:年轻代中Eden(伊甸园)的容量(字节)

EU:年轻代中Eden(伊甸园)目前已使用空间(字节)

OC:Old代的容量(字节)

OU:Old代目前已使用空间(字节)

PC:Perm(持久代)的容量(字节)

PU:Perm(持久代)目前已使用空间(字节)

YGC:从应用程序启动到采样时年轻代中gc次数

YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)

FGC:从应用程序启动到采样时old代(全gc)gc次数

FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)

GCT:从应用程序启动到采样时gc用的总时间(s)

NGCMN:年轻代(young)中初始化(最小)的大小(字节)

NGCMX:年轻代(young)的最大容量(字节)

NGC:年轻代(young)中当前的容量(字节)

OGCMN:old代中初始化(最小)的大小(字节)

OGCMX:old代的最大容量(字节)

OGC:old代当前新生成的容量(字节)

PGCMN:perm代中初始化(最小)的大小(字节)

PGCMX:perm代的最大容量(字节)

PGC:perm代当前新生成的容量(字节)

S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

E:年轻代中Eden(伊甸园)已使用的占当前容量百分比

O:old代已使用的占当前容量百分比

P:perm代已使用的占当前容量百分比

S0CMX:年轻代中第一个survivor(幸存区)的最大容量(字节)

S1CMX:年轻代中第二个survivor(幸存区)的最大容量(字节)

ECMX:年轻代中Eden(伊甸园)的最大容量(字节)

DSS:当前需要survivor(幸存区)的容量(字节)(Eden区已满)

TT:持有次数限制

MTT:最大持有次数限制

jmap( Memory Map for Java):JVM内存映像工具

打印出某个java进程(使用pid)内存内的所有‘对象’的情况(如:产生那些对象,及其数量)

命令格式:jmap [ option ] pid

常用参数说明:

-dump:[live,]format=b,file=<filename>使用二进制形式输出jvm的heap内容到文件中, live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.

-histo[:live]打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”.如果live子参数加上后,只统计活的对象数量.

-F强迫.在pid没有相应的时候使用-dump或者-histo参数.在这个模式下,live子参数无效.

例如:以二进制形式输入当前堆内存映像到文件data.hprof中

jmap-dump:live,format=b,file=data.hprof 1796

生成的文件可以使用jhat工具进行分析,在OOM(内存溢出)时,分析大对象,非常有用

通过使用如下参数启动JVM,也可以获取到dump文件:

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=./java_pid<pid>.hprof

在jvm发生内存溢出时生成内存映像文件

jhat(JVM Heap Analysis Tool):JVM堆转储快照分析工具

用于对JAVA heap进行离线分析的工具,他可以对不同虚拟机中导出的heap信息文件进行分析,如LINUX上导出的文件可以拿到WINDOWS上进行分析,可以查找诸如内存方面的问题。

命令格式:jhat dumpfile(jmap生成的文件)

例如:分析jmap导出的内存映像

jhat data.hprof

执行成功后,访问http://localhost:7000即可查看内存信息,

MAT(Memory Analyzer Tool):一个基于Eclipse的内存分析工具

官网: http://www.eclipse.org/mat/

update:http://download.eclipse.org/mat/1.2/update-site/

这是eclipse的一个插件,安装后可以打开xxx.hprof文件,进行分析,比jhat更方便使用,有些时候由于线上xxx.hprof文件过大,直接使用jhat进行初步分析了,可以的话拷贝到本地分析效果更佳。

图形化监控工具:

在JDK安装目录bin下面有两个可视化监控工具

1. JConsole(Java Monitoring and Management Console)基于JMX的可视化管理工具。

2. VisualVM(All-in-one Java Troubleshooting Tool)随JDK发布的最强大的运行监视和故障处理程序。

推荐使用VisualVM,他有很多插件,可以更方便的监控运行时JVM

"Java"的中文意思是什么

Java名词解释

Abstract class抽象类:抽象类是不允许实例化的类,因此一般它需要被进行扩展继承。

Abstract method抽象方法:抽象方法即不包含任何功能代码的方法。

Access modifier访问控制修饰符:访问控制修饰符用来修饰Java中类、以及类的方法和变量的访问控制属性。

Anonymous class匿名类:当你需要创建和使用一个类,而又不需要给出它的名字或者再次使用的使用,就可以利用匿名类。

Anonymous inner classes匿名内部类:匿名内部类是没有类名的局部内部类。

API应用程序接口:提供特定功能的一组相关的类和方法的集合。

Array数组:存储一个或者多个相同数据类型的数据结构,使用下标来访问。在Java中作为对象处理。

Automatic variables自动变量:也称为方法局部变量method local variables,即声明在方法体中的变量。

AWT抽象窗口工具集:一个独立的API平台提供用户界面功能。

Base class基类:即被扩展继承的类。

Blocked state阻塞状态:当一个线程等待资源的时候即处于阻塞状态。阻塞状态不使用处理器资源

Call stack调用堆栈:调用堆栈是一个方法列表,按调用顺序保存所有在运行期被调用的方法。

Casting类型转换:即一个类型到另一个类型的转换,可以是基本数据类型的转换,也可以是对象类型的转换。

char字符:容纳单字符的一种基本数据类型。

Child class子类:见继承类Derived class

Class类:面向对象中的最基本、最重要的定义类型。

Class members类成员:定义在类一级的变量,包括实例变量和静态变量。

Class methods类方法:类方法通常是指的静态方法,即不需要实例化类就可以直接访问使用的方法。

Class variable类变量:见静态变量Static variable

Collection容器类:容器类可以看作是一种可以储存其他对象的对象,常见的容器类有Hashtables和Vectors。

Collection interface容器类接口:容器类接口定义了一个对所有容器类的公共接口。

Collections framework容器类构架:接口、实现和算法三个元素构成了容器类的架构。

Constructor构造函数:在对象创建或者实例化时候被调用的方法。通常使用该方法来初始化数据成员和所需资源。

Containers容器:容器是一种特殊的组件,它可以容纳其他组件。

Declaration声明:声明即是在源文件中描述类、接口、方法、包或者变量的语法。

Derived class继承类:继承类是扩展继承某个类的类。

Encapsulation封装性:封装性体现了面向对象程序设计的一个特性,将方法和数据组织在一起,隐藏其具体实现而对外体现出公共的接口。

Event classes事件类:所有的事件类都定义在java.awt.event包中。

Event sources事件源:产生事件的组件或对象称为事件源。事件源产生事件并把它传递给事件监听器event listeners。

Exception异常:异常在Java中有两方面的意思。首先,异常是一种对象类型。其次,异常还指的是应用中发生的一种非标准流程情况,即异常状态。

Extensibility扩展性:扩展性指的是面向对象程序中,不需要重写代码和重新设计,能容易的增强源设计的功能。

Finalizer收尾:每个类都有一个特殊的方法finalizer,它不能被直接调用,而被JVM在适当的时候调用,通常用来处理一些清理资源的工作,因此称为收尾机制。

Garbage collection垃圾回收机制:当需要分配的内存空间不再使用的时候,JVM将调用垃圾回收机制来回收内存空间。

Guarded region监控区域:一段用来监控错误产生的代码。

Heap堆:Java中管理内存的结构称作堆。

Identifiers标识符:即指定类、方法、变量的名字。注意Java是大小写敏感的语言。

Import statement引入语法:引入语法允许你可以不使用某个类的全名就可以参考这个类。

Inheritance继承:继承是面向对象程序设计的重要特点,它是一种处理方法,通过这一方法,一个对象可以获得另一个对象的特征。

Inner classes内部类:内部类与一般的类相似,只是它被声明在类的内部,或者甚至某个类方法体中。

Instance实例:类实例化以后成为一个对象。

Instance variable实例变量:实例变量定义在对象一级,它可以被类中的任何方法或者其他类的中方法访问,但是不能被静态方法访问。

Interface接口:接口定义的是一组方法或者一个公共接口,它必须通过类来实现。

Java source file Java源文件:Java源程序包含的是Java程序语言计算机指令。

Java Virtual Machine(JVM) Java虚拟机:解释和执行Java字节码的程序,其中Java字节码由Java编译器生成。

javac Java编译器:Javac是Java编译程序的名称。

JVM Java虚拟机:见Java虚拟机

Keywords关键字:即Java中的保留字,不能用作其他的标识符。

Layout managers布局管理器:布局管理器是一些用来负责处理容器中的组件布局排列的类。

Local inner classes局部内部类:在方法体中,或者甚至更小的语句块中定义的内部类。

Local variable局部变量:在方法体中声明的变量

Member inner classes成员内部类:定义在封装类中的没有指定static修饰符的内部类。

Members成员:类中的元素,包括方法和变量。

Method方法:完成特定功能的一段源代码,可以传递参数和返回结果,定义在类中。

Method local variables方法局部变量:见自动变量Automatic variables

Modifier修饰符:用来修饰类、方法或者变量行为的关键字。

Native methods本地方法:本地方法是指使用依赖平台的语言编写的方法,它用来完成Java无法处理的某些依赖于平台的功能。

Object对象:一旦类实例化之后就成为对象。

Overloaded methods名称重载方法:方法的名称重载是指同一个类中具有多个方法,使用相同的名称而只是其参数列表不同。

Overridden methods覆盖重载方法:方法的覆盖重载是指父类和子类使用的方法采用同样的名称、参数列表和返回类型。

Package包:包即是将一些类聚集在一起的一个实体。

Parent class父类:被其他类继承的类。也见基类。

Private members私有成员:私有成员只能在当前类被访问,其他任何类都不可以访问之。

Public members公共成员:公共成员可以被任何类访问,而不管该类属于那个包。

Runtime exceptions运行时间异常:运行时间异常是一种不能被你自己的程序处理的异常。通常用来指示程序BUG。

Source file源文件:源文件是包含你的Java代码的一个纯文本文件。

Stack trace堆栈轨迹:如果你需要打印出某个时间的调用堆栈状态,你将产生一个堆栈轨迹。

Static inner classes静态内部类:静态内部类是内部类最简单的形式,它于一般的类很相似,除了被定义在了某个类的内部。

Static methods静态方法:静态方法声明一个方法属于整个类,即它可以不需要实例化一个类就可以通过类直接访问之。

Static variable静态变量:也可以称作类变量。它类似于静态方法,也是可以不需要实例化类就可以通过类直接访问。

Superclass超类:被一个或多个类继承的类。

Synchronized methods同步方法:同步方法是指明某个方法在某个时刻只能由一个线程访问。

Thread线程:线程是一个程序内部的顺序控制流。

Time-slicing时间片:调度安排线程执行的一种方案。

Variable access变量访问控制:变量访问控制是指某个类读或者改变一个其他类中的变量的能力。

Visibility可见性:可见性体现了方法和实例变量对其他类和包的访问控制。

容器:充当中间件的角色

WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。

EJB容器:Enterprise java bean容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。

RMI/IIOP:远程方法调用/internet对象请求中介协议,他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供股票分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。

JNDI:JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

JMS:JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

JAVAMAIL:JAVA邮件服务。提供邮件的存储、传输功能。他是JAVA编程中实现邮件功能的核心。相当MS中的EXCHANGE开发包。

JTA:JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

JAF:JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。

EAI:企业应用集成。是一种概念,从而牵涉到好多技术。J2EE技术是一种很好的集成实现。

如果你还想了解更多这方面的信息,记得收藏关注本站。

java 什么操作可以解锁 java中类修饰符有哪些落花流水打一准确生肖(落花流水意思打一生肖)