Zabbix通过JMX监控java中间件_第1页
Zabbix通过JMX监控java中间件_第2页
Zabbix通过JMX监控java中间件_第3页
Zabbix通过JMX监控java中间件_第4页
Zabbix通过JMX监控java中间件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Zabbix通过JMX方式监控java中间件Zabbix2.0添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”;它是用java写的一个程序。工作原理:zabbix_server想知道一台主机上的特定的JMX值时,它向Zabbix-Java-gateway询问,而Zabbix-Javagateway使用“ HYPERLINK /javase/technologies/core/mntr-mgmt/javamanagement/ t _blank JMXmanagementAPI”去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.

2、management.jmxremote”参数来开启JMX查询就行了。Zabbixserver有一个特殊的进程用来连接Java-gateway叫StartJavaPollers;Java-gateway通过配置文件中START_POLLERS参数设置启动多个线程,在zabbix服务器这边如果一个连接所用时间超过Timeout,将会被中断,但是Java-gateway将继续从JMXcounter取数据。所以StartJavaPollers设置的值要小于等于START_POLLERS设置的值。Zabbix-Java-gateway就相当于一个代理。zabbix的JMX架构服务端配置(zabbix_

3、java_gateway)确认已安装jdk# java -versionjava version 1.6.0_22Java(TM) SE Runtime Environment (build 1.6.0_22-b06)Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)出现此界面,说面jdk安装成功安装zabbix-Java-gateway软件包在zabbix自带的有,目前暂时只支持从zabbix软件包中获得。安装Javagateway如果原来已经安装zabbix,只需要再添加以下zabbix-java# tar zxv

4、f zabbix-2.2.0.tar.gz# cd zabbix-2.2.0# ./configure -enable-java -prefix=/opt/zabbix_java# make & make install修改Java-gateway的配置文件在配置文件 settings.sh 中,可以配置以下参数:LISTEN_IP= #监听地址LISTEN_PORT=10052 #监听端口START_POLLERS=5 # 开启的工作线程数(必须大于等于后面zabbix_server.conf文件的StartJavaPollers参数)修改zabbix_server的配置文件为了支持java

5、-gateway, zabbix_server 或 zabbix_proxy 的配置文件中有以下内容需要配置:JavaGateway= # JavaGateway 服务器地址,zabbix_server与zabbix_java_gateway在同一台主机JavaGatewayPort=10052 #端口StartJavaPollers=5 # 从javaGateway采集数据的进程数 启动java-gateway#cd /opt/zabbix_java_gateway/sbin/zabbix_java#./startup.sh#netstat tulnp |grep 10052tcp 0 0

6、*:10052 *:* LISTEN 5011/java重启zabbix_server#service zabbix_server restartzabbix_java_gateway就配置好了。客户端配置添加参数开启JMX使用JMX前需要先开启JMX,默认是关闭的,在启动JAVA程序时,加入下面的参数,就可以开启JMX:想更多的了解这些参数,可以参考下面这个链接: HYPERLINK /javase/1.5.0/docs/guide/management/agent.html /javase/1.5.0/docs/guide/management/agent.html开启JMX,监控tomc

7、at在 tomcat 下载页面 Extras 类别中下载 JMX-Remote.jar二进制包。放在 tomcat/lib 下面。# mv catalina-jmx-remote.jar /webapp/tomcat6/lib/添加参数,开启JMX修改 tomcat/bin 目录下 catalina.sh ,添加以下内容:CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=fa lse-D

8、java.rmi.server.hostname=客户端ip地址启动tomcat# cd /usr/local/tomcat/bin/# ./startup.sh下载cmdline-jmxclient-0.10.3.jar文件测试是否能够取得数据#java -jar cmdline-jmxclient-0.10.3.jar -localhost:12345 java.lang:type=Memory NonHeapMemoryUsage01/26/2014 11:55:55 +0800 org.archive.jmx.Client NonHeapMemoryUsage:committed: 5

9、2690944init: 24313856max: 136314880used: 52454776导入模板成功后可以看到模板custom Tomcat(有朋友提供了一个更好的tomcat模板)以获取tomcat使用内存模板为例如下图关联模板完成后可见:添加端口设置jmx ip地址及端口成功后会显示JMX图标变绿,表示可用出图开启JMX,监控weblogic 添加参数,开启JMX编辑WL_DOMAIN_HOME/bin/setDomainEnv.sh,在文件结尾加入下面几行:# vi /root/Oracle/Middleware/user_projects/domains/base_domai

10、n/bin/ setDomainEnv.shJAVA_OPTIONS=$JAVA_OPTIONS -Djava.rmi.server.hostname=客户端ip地址 JAVA_OPTIONS=$JAVA_OPTIONS -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilderJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote=trueJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.su

11、n.management.jmxremote.port=端口 #默认12345JAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.ssl=falseJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.authenticate=falseexport JAVA_OPTIONS启动weblogic#./ stopWebLogic.sh#./ startWebLogic.sh# ps -ef | grep AdminServer | grep -v greproot 295

12、52 29505 0 19:45 ? 00:00:22 /usr/java/jdk1.6.0_30/bin/java -client -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=256m -Dweblogic.Name=AdminServer -Djava.security.policy=/root/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.policy -Xverify:none -da -Dplatform.home=

13、/root/Oracle/Middleware/wlserver_10.3 -Dwls.home=/root/Oracle/Middleware/wlserver_10.3/server -Dweblogic.home=/root/Oracle/Middleware/wlserver_10.3/server -Dweblogic.management.discover=true -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/root/Oracle/Middleware/

14、patch_wls1036/profiles/default/sysext_manifest_classpath:/root/Oracle/Middleware/patch_ocp371/profiles/default/sysext_manifest_classpath -Djava.rmi.server.hostname=46 -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder -Dcom.sun.management.jmxremote=true -Dco

15、m.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false weblogic.Server添加模板关联自带模板TemplateJMXGeneric设置jmx ip地址及端口完成成功后会显示JMX图标变绿,表示可用出图几种常用的JAVA容器的JMX开启方式Apache Tomcat如果是windows版本,编辑TOMCAT_HOME/bin/catalina.bat,在开头加入下面几行:set CAT

16、ALINA_OPTS=%CATALINA_OPTS% -Djava.rmi.server.hostname=JMX_HOSTset CATALINA_OPTS=%CATALINA_OPTS% -Djavax.management.builder.initial=set CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote=trueset CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.port=JMX_PORTset CATALINA_OPTS=%CAT

17、ALINA_OPTS% -Dcom.sun.management.jmxremote.ssl=falseset CATALINA_OPTS=%CATALINA_OPTS% -Dcom.sun.management.jmxremote.authenticate=false如果是linux版本,编辑TOMCAT_HOME/bin/catalina.sh,在开头加入下面几行:CATALINA_OPTS=$CATALINA_OPTS -Djava.rmi.server.hostname=JMX_HOST CATALINA_OPTS=$CATALINA_OPTS -Djavax.management.b

18、uilder.initial= CATALINA_OPTS=$CATALINA_OPTS -Dcom.sun.management.jmxremote=true CATALINA_OPTS=$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=JMX_PORT CATALINA_OPTS=$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false CATALINA_OPTS=%CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=fa

19、lse注意JMX_HOST为tomcat的主机名或IP地址,JMX_PORT为JMX端口,通常使用12345,然后重启tomcat,JMX就开启了。IBM WebSphere AS进入WebSphere Administrative Console open Servers Server Types WebSphere application servers WAS_SERVER_NAME Java and Process Management Process definition Java Virtual Machine.在“Generic JVM arguments”增加下面环境变量:-D

20、javax.management.builder.initial=然后再进入 WebSphere Administrative Console, open Servers Server Types WebSphere application servers WAS_SERVER_NAME Java and Process Management Process definition Java Virtual Machine Custom properties.增加下面几个环境变量:Name: java.rmi.server.hostnameValue: JMX_HOSTName: javax.m

21、anagement.builder.initialValue: noneName: com.sun.management.jmxremoteValue: trueName: com.sun.management.jmxremote.portValue: JMX_PORTName: com.sun.management.jmxremote.sslValue: falseName: com.sun.management.jmxremote.authenticateValue: false应用更改,重启应用就开启了。Oracle GlassFish AS进入GlassFish Console, op

22、en GAS_CONFIG JVM Settings JVM Options.加入下面的环境变量到“JVM options”:Value: -Djava.rmi.server.hostname=JMX_HOSTValue: -Dcom.sun.management.jmxremote=trueValue: -Dcom.sun.management.jmxremote.port=JMX_PORTValue: -Dcom.sun.management.jmxremote.ssl=falseValue: -Dcom.sun.management.jmxremote.authenticate=fals

23、e重启就开启了。Oracle WebLogic 11g (10.23.x) and 12c (12.1.x)对于windows的版本,编辑WL_DOMAIN_HOME/bin/setDomainEnv.cmd,在文件结尾加入下面几行:set JAVA_OPTIONS=%JAVA_OPTIONS% -Djava.rmi.server.hostname=JMX_HOSTset JAVA_OPTIONS=%JAVA_OPTIONS% -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServe

24、rBuilder set JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote=trueset JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote.port=JMX_PORTset JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote.ssl=falseset JAVA_OPTIONS=%JAVA_OPTIONS% -Dcom.sun.management.jmxremote.authenticate=

25、false对于Linux的版本,编辑WL_DOMAIN_HOME/bin/setDomainEnv.sh,在文件结尾加入下面几行:JAVA_OPTIONS=$JAVA_OPTIONS -Djava.rmi.server.hostname=客户端ip地址 JAVA_OPTIONS=$JAVA_OPTIONS -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilderJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxrem

26、ote=trueJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.port=JMX_PORT JAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.ssl=falseJAVA_OPTIONS=$JAVA_OPTIONS -Dcom.sun.management.jmxremote.authenticate=falseexport JAVA_OPTIONS注意JMX_HOST为weblogic的主机名或IP地址,JMX_PORT为JMX端口,通常使用12345,然后重启

27、weblogic,JMX就开启了。如果你的应用不是布署在默认的应用服务器上,而是新增了一个应用服务器布署的话,应该使用下面这个方法:进入weblogic控制台-环境-服务器-”你新增的服务器”-配置-服务器启动。在“参数”的输入框内输入:-Dcom.sun.management.jmxremote.port=JMX_PORT -Djava.rmi.server.hostname=JMX_HOST -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djavax.m

28、anagement.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder然后保存,激活更改,再重启这个应用服务器就开启JMX了。测试和查看JMX的配置和状态信息JMX开启后,我们就可以通过相关的工具去查看JMX内的状态信息了,通常可以使用JDK的jconsole程序查看,对于weblogic,它自带了一些工具也可以查看,可以参考官方文档( HYPERLINK /oracle/middleware/fusion/11g/web.1111/e13715/nav_edit.htm l WLSTG175 /o

29、racle/middleware/fusion/11g/web.1111/e13715/nav_edit.htm#WLSTG175),另外还有一个叫cmdline-jmxclient-0.10.3.jar的工具也可以非常方便的查看这些信息。使用JDK的jconsole程序查看jconsole在JDK_HOME/bin下面,打开它,输入服务器的IP和端口就可以连接了:com.bea下面都是Weblogic相关的信息,其它为JVM级别的信息。应用服务器下的ServerRuntime这个Mbeans就是WEBLOGIC这个应用服务器的实时状态息。使用cmdline-jmxclient-0.10.3.

30、jar工具查看cmdline-jmxclient-0.10.3.jar是一个非常方便的查看程序,它的下载地址为: HYPERLINK /cmdline-jmxclient/ /cmdline-jmxclient/使用方法:Usage: java -jar cmdline-jmxclient.jar USER:PASS HOST:PORT BEAN COMMAND如查看服务器所有Mbeans的信息:java -jar cmdline-jmxclient-0.10.3.jar :12345这个命令会输出所有的Mbeans,它能方便我们查找需要的Mbeans,如我们相查找和JDBC相关的Mbens,

31、可以使用命令:java -jar cmdline-jmxclient-0.10.3.jar :12345 | grep JDBC如查看JDBCConnectionPoolRuntime的信息:java -jar cmdline-jmxclient-0.10.3.jar -:12345 com.bea:Name=fftdb,ServerRuntime=shfft,Type=JDBCConnectionPoolRuntimejava -jar cmdline-jmxclient-0.10.3.jar :12345 com.bea:Name=fftdb,ServerRuntime=shfft,Typ

32、e=JDBCConnectionPoolRuntime ActiveConnectionsCurrentCount其中com.bea:Name=fftdb,ServerRuntime=shfft,Type=JDBCConnectionPoolRuntime是Mbeans名,ActiveConnectionsCurrentCount为这个Mbeans下的一个属性。Weblogic的常用性能指标JMSRuntimeJMSServersCurrentCount 返回当前JMS服务的连接数ConnectionsCurrentCount 返回本JMS服务器上当前的连接数JMSServersHighCou

33、nt 返回自服务器启动后JMS服务的最大连接数ConnectionsHighCount 返回本JMS服务器自上次重置后的最大连接数JVMRuntimeHeapSizeCurrent 返回当前JVM堆中内存数,单位时字节HeapFreeCurrent 返回当前JVM堆中空闲内存数,单位时字节ExecuteQueueRuntimeExecuteThreadCurrentIdleCount 返回队列中当前空闲线程数PendingRequestOldestTime 返回队列中最长的等待时间PendingRequestCurrentCount 返回队列中等待的请求数Queue Length 队列长度JD

34、BCConnectionPoolRuntimeWaitingForConnectionHighCount 返回本JDBCConnectionPoolRuntimeMBean 上最大等待连接数WaitingForConnectionCurrentCount 返回当前等待连接的总数MaxCapacity 返回JDBC池的最大能力WaitSecondsHighCount 返回等待连接中的最长时间等待者的秒数ActiveConnectionsCurrentCount 返回当前活动连接总数ActiveConnectionsHighCount 返回本JDBCConnectionPoolRuntimeMBe

35、an 上最大活动连接数要想了解更多Weblogic的各种运行时Mbeans信息,请参考官方文档: HYPERLINK /oracle/middleware/fusion/11g/apirefs.1111/e13951/core/index.html /oracle/middleware/fusion/11g/apirefs.1111/e13951/core/index.html添加Weblogic监控项到Zabbix新增监控项,在key内填入:jmxcom.bea:Name=$JDBC_NAME,ServerRuntime=$JDBC_SERVER,Type=JDBCConnectionPoo

36、lRuntime,ActiveConnectionsCurrentCount其中com.bea:Name=$JDBC_NAME,ServerRuntime=$JDBC_SERVER,Type=JDBCConnectionPoolRuntime为Mbeans,ActiveConnectionsCurrentCount为属性项。注意Type内应该选择JMX Agent最后看一张做出来的Weblogic JDBC连接池监控图:附录资料:java重点笔记归纳整理Java初级eclipse快捷键:右键REFACTER-RENAME 一改全改ALT+ENTER 查看现在项目的位置 Alt+ 当前行和下面一

37、行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+ 当前行和上面一行交互位置(同上) Ctrl+W 关闭当前Editer C+/ 注释(取消注释)选中行C+S+/ 注释多行C+S+取消注释 F2 查看完整的函数帮助信息,并且可以复制粘贴文字 ,当选中文件时,有改名作用 F3找到变量的定义 C+鼠标点击 找到变量的定义 作用和F3C差不多。 F4找到接口方法的具体实现类.=C+T F5刷新 C+F6:在打开的文件间进行切换; C+F7:在资源窗口间进行切换; C+F8:在各种模式间进行切换; C+E:选择某个打开的文件; C+S+r:打开一个文件; c+s+t:打开一个类; c+s+f:

38、格式化代码; C+S+O:导入需要的类 c+o:查看类结构; c+t:列出子类或接口实现类(类的等级结构) Ctrl+Alt+ 复制当前行到下一行(复制增加) Ctrl+Alt+ 复制当前行到上一行(复制增加) CtrlK (加SHIFT是向上)向下查找选中的字符串 Ctrlshift 向上向下查找一个函数和变量 Java基础知识1.Java是Sun公司的JamesGosling发明的面向对象的可跨平台的编程语言。2.SUN公司,Stanford University Network,斯坦福大学;3.平台:我们把cpu处理器与操作系统的整体叫做平台。不同的操作系统支持不同的cpu指令集。不同的

39、cup有不同的指令集,如intel和AMD.4.JDK:Java Software Develop Kit. JVM:Java Virtual Machine.Java虚拟机,包含:类加载器,字节码校验器,java解释器。 JRE:java运行时环境,包含jvm与java运行支持类库。5.环境变量:java_home;classpath:.;C:Javajdk1.6.0_10lib;path6.jdkjdk1.1为jvm增加了JIT(即时编译)编译器;jdk1.2也叫java2;jdk1.5也叫java5(改动较大);现在使用的是jdk1.6。7.jdk,Java Developent Too

40、lKit;开发java需要有源程序文件到中间文件的编译器;运行java中间文件需要对应平台的解释器(官方叫法JVM);编译器、解释器加上一些其它的组件合称为JDK.JDK的另外一个称呼为Java Software develop kit.JDK即开发java程序的组件。jdk=java编译器+jre(java运行环境) jre=jvm+运行支持类库 eclipse和jbuilder本身自带了java编译器但不包含jre。8.jre:Java Runtime Environment,java运行时需要的环境。有两类,开发需要的jre和公共jre。9.jdk版本,jdk1.2到jdk1.4为jav

41、a2时代,java技术有j2ee,j2se,jeme.jdk1.5,也叫做java5,技术术语改为javase,javaee,javame.1.5在1.4的基础上改动很大。10.常用的DOS命令:dir,现实当前文件夹的所有文件;cd . 打开上级目录;exit:退出。11.java注释:java注释分为三种单行注释,多行注释,文档注释,文档注释结果为:/*换行*/,文档注释在帮助文档里面有显示。12.javadoc帮助文档,javadoc可执行程序可生成帮助文档,用法如下:javadoc Test01.java13.java 打包jar,用法见cmd输入jar;ant也是一种打包成jar的工

42、具,其功能叫jar更加强大;除了jar包外,java文件包还有war,ear两种格式。14.java缺点:运行速度慢,占用资源多是java的缺点;其原因是:class需要二次编译,解释执行;jvm运行占用资源;无指针无法直接操作内存,垃圾回收线程占用资源,并且不会实时收集内存。15.JVM,JAVA虚拟机即java解释器;JVM执行.class文件需要三步:类加载器加载;校验器检查错误,执行文件。在执行的时候有两种方法:a.解释器直接执行;b.JIT代码生成器搞定。16.两种解释执行方法的区别:直接解释执行是1.1版本的,其直接翻译class文件,速度必然比机器执行二进制文件的速度慢;1.2版

43、本后引入JIT,即将class文件先转换为二进制文件,再执行二进制文件,下次执行时可直接执行二进制文件。15.JIT(即时编译):java即时编译技术,可执行java代码的运行速度。17.IDE工具 IDE:Integrated Development Environment,集成开发环境。18.开发java的IDE工具:JCREATOR,JBUILDER,ECLIPSE,NETBEANS.20.拷贝项目的三种方式:a.拷贝整个工作空间,切换工作空间。b.拷贝项目,导入项目。c.只拷贝源代码(即src文件夹),从新建的项目导入。22.转义字符:单引号:;双引号:;反斜杠:;回车:n;水平制表符

44、:t;换行:r. 转义字符一般出现在字符串中时,要是以原型输入,则输出一定报错,只有以转换后的才能显示。23.数据类型转换:byte char short int long float double,String,小杯到大杯自动转换,但是大杯到小杯强制转换。一般的格式:标变量=(目标类型)源变量,特殊的,String转换为其它,int a = Integer.parseInt(str1);float b = Float.parseFloat(str2);boolean c = Boolean.parseBoolean(str3);24.内存分配 基本数据类型只在栈中分配内存;应用数据类型不仅在

45、栈中分配内存,还在堆中分配内存,在变量声明时,在栈中分配内存,当创建对象时,在堆中分配内存。25.值传递和引用传递 本人去见网友叫按引用传递;替身去见网友叫做按值传递。引用传递参数数值改变,按值传递参数值不变。基本数据类型就是按值传递的,又称为值类型,而引用类型是按引用传递的。String 虽然是按引用传递的,但是传递给的新变量会有属于自己的堆内存,所以,String值不变。包: 开发中最好在导入包和类的过程中,最好是使用哪个类就导入那个类,不要导入包。27.包的命名规则:反写的企业域名.功能名.模块名28.系统包(SUN提供的包)默认包-java.lang.常用包 java.lang: ja

46、va的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包 java.lang.reflect:提供用于反射对象的工具 java.io: java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出等 java.util:常用的工具类,如集合框架类,日期处理类等。主题:旺旺老师软件工程师实训教程-JAVASE 第六章:包与 JAVA 常用类 java.sql: JDBC相关类。 :JAVA网络包,其中包含能够使程序通过网络进行通信的 java.awt;javax.swing:使用java开发C/S结构应用程序

47、使用的类。29.企业开发中命名规则一般如下: com.easyitedu.dao /持久层代码 com.easyitedu.view /表示层代码 .student /stuent模块的业务层代码 .teacher /teacer模块的业务层代码 com.easyitedu.tool /本项目使用的工具类30.包装类:8个值类型对应的有8个类,我们把它们称为包装类。其作用较八种基本类型的作用强大,java不符合面向对象的两个地方:一个是JAVA保留了8个基本数据类型,他们不是对象,更没有属性和方法;另一个就是JAVA中存在着main方法。之所以还在用八种基本类型而不是通通用包装类,是因为一些简

48、单的业务用基本数据类型效率较高,但是有时必须用八个包装包,例如:强制类型转换。 其中byte的包装类是Byte.只有char的类是Character,int 是 Integer.其它像byte一样是其本身。说明:int a = 10; Integer b = new Integer(10);其中,前者占用一块内存,后者占用两块,符合引用传递。自动的拆箱和装箱:把数据由基本数据类型转换为对应包装类叫做装箱,把数据由包装类转化为基本数据类型叫拆箱。实例:int a = 10;Integer b = a;/自动装箱,基本数据类型-包装类 int c = b;/自动拆箱,包装类-基本数据类型,即两种类

49、型可以自动相互转换,没其它制约。32.String转换成基本型:调用包装类的parse*方法,例如:String a = 12; int a = Integer.parseInt(a);33.=和equals,=比较的是堆内存地址,后者堆内存(即地址可以不同)。equals,用法:常量.equals(变量),要不然会出现空指针异常。34.字符串池:当字符串直接赋值时,(string a = aa;)其堆内存会进入字符串池,当下次在赋值相同时,String b =aa;b会直接引用a的堆内存。但是当赋值为new 方法赋值时,其堆内存不会进入字符串池,而是直接开辟一个新的空间。String c =

50、 new String(aa);35.三个空字符串的区别:String a = null;String b = ;String c = ;其中null,没有分配堆内存空间,b分配了堆内存空间,里面放了一个空格;c虽然分配了内存空间,但是没有放东西。36.字符串拼接:不用String 而是用StringBuffer.append(),前者的对内存限定了,改变后重新分配内存;后者可以添加内存。就像前面是不能加车厢的汽车,每次都得换车;后者是可以加车厢的汽车。37.面向对象编程叫OOP,还有一门知识叫OOAD(面向对象的分析与设计),在OOAD中,继承又叫派生,父类又叫超类。38.Override注

51、释:第四种注释,给java编译器看的,在编译阶段提示错误,在重写父类方法时,一般加上此注释,表示此方法是重写的父类方法。39.Deprecated注释:此方法不推荐使用(看文档时),一般会有功能更强大的方法代替。SuppressWarrin40.继承的7点特性:a.子类拥有父类的属性和方法b.子类可以有自己行的属性和方法c.子类可以重写父类的方法d.可以声明父类,创建子类d_1.声明什么类型,就只能调用什么类型的方法d_2.创建什么类型,运行什么类型的方法d_3要使用创建类型的方法,必须得强制转化类型。41.this与super关键字 一般在子类中使用,this表示调用自己声明的属性和方法;s

52、uper表示父类声明的属性和方法。static方法中不能使用this与super关键字。42.继承中的构造方法 创建对象一定会调用构造方法? 创建子类对象一定会调用父类的构造方法? 子类默认调用父类无参构造方法? 子类只能调用父类存在的构造方法? 子类构造方法中使用super调用父类构造方法,并且super必须放在第一行? 构造方法中this表示调用本类其他构造方法,并且this必须放在第一行43.封装定义:隐藏属性,方法和方法实现细节的过程成为封装。45.方法的说明符 方法的访问说明符 1.public 任何地方都可以访问 2.protected 子类或者同包,同类可以访问,但是其它包的非子

53、类不可以访问 3.default 只有同类或者同包可以访问 4.private 私有的方法,这里的私有指的是被被class所私有,其他类不能访问,继承的类也不行。 方法的其他说明符 1.static 2.final 此方法不可以被子类覆盖。 3.abstract 抽象的方法 4.native 用户可以使用,但是不能编写的类。 5.synchronized 同步的方法面向对象 面向对象的程序开发实际上分为三种:OOA OOD OOP |-OOA:面向对象的分析 |-OOD:面向对象设计 |-OOP:面向对象程序 三大特性:封装、继承、多态。 对象的创建及使用:Person zcy = null;

54、/声明对象 zcy=new Person();/实例化对象 Person zcy = new Person(); 方法不需要创建,直接使用。47.封装性 封装性有很多体现,但是最简单的体现是假如“private”关键字。48.实体类:在开发过程中,有一些类与数据库紧密联系,其叫法有几种,常用的有,entity 实体类;vo类 value object 值传递;dto,data transmission object 数据传输对象。Static49.static普通变量通过对象名.变量访问;而static变量通过类命.变量访问,因为static 修饰的变量为类变量。50.final,当定义一常量

55、时,用final修饰,变量名大写,通常情况下,final修饰,前面加上static,但是反之不成立!51.static方法,静态方法,同样是通过类名.方法名调用。静态方法里面不能调用非静态变量;静态方法下面不能使用this,super等关键字。静态方法中不能访问普通方法,但可以调用静态方法;即静态方法里面不能出现非静态的东西。52.静态块:在虚拟机加载类时就调用,不需要等到创建对象时执行。sun公司不推荐使用。多态53.方法重载相同的方面名称,不同的参数列表(个数和类别不同),同时出现在一个类中。54.方法重写:在子类中产生与父类相同的方法头(参数列表也相同),但是方法体不同,属于方法重写,与

56、方法重载有根本区别。子类也可以重载父类的方法,只是父子类的方法重载。55.多态定义:多种形态,多种形式,多种表现形态。最直接的表现形式是方法重写(父子类之间),方法重载(一个类里面)。抽象类,接口都为接口服务。abstract56.抽象方法(abstract):由abstract关键字修饰的方法叫做抽象方法,只有方法头没有方法体。56.抽象类(abstract):由abstract关键字修饰的类叫做抽象类。只能声明,不能创建。有抽象方法的类一定是抽象类,但抽象类不一定是抽象方法。当想让一个方法只能被继承,但是不能创建时,用到此种情况。57.抽象类子类:1实现父类的所有的抽象方法,2.或者自己声

57、明为抽象类,3.或者部份实现父类的方法,但自身还是要声明成抽象类。58.取随机数:Random random = new Random();int selectTndex = random.nextInt(3);System.out.println(selectTndex);59.接口(interface):接口是一系列方法(功能)的声明,即没有实现任何方法的抽象类(没有abstract关键字,但出现也不会报错);命名时,前面加上大写字母I,在其子类中,子类 implements 接口,implements在这里是实现的意思。子类要么实现接口的所有方法,要么把自己变成抽象类。60.接口特点:一

58、个子类可以实现多个接口,即变相的多继承。接口可以继承接口,一个接口可以继承多个接口。接口只能声明不能创建。61.接口的分类:a.普通接口,即一系列方法的声明;b.常量接口,项目中常用的一些常量。C.标识接口(空方法接口),子类实现此接口,表示属于某个体系接口,具有某种功能。Java中级HTML知识点:Html怎么转换成jsp页面供程序员使用1.首行加上代码2.重命名为jsptable修饰代码鼠标来去特效与区别同样是标示一个储存格,唯一不同的是所标示的储存格中的文字是以粗体出现URL重写jjj.jsp?参数名称=参数值&参数名称=参数值&参数名称=参数值方法重写可以通过链接页面跳转传递参数,其作

59、用和表单中的隐藏域作用一样。跳转服务器跳转和客户端跳转:跳转之后地址没变,称为服务器跳转,地址改变称为客户端跳转。跳转方式:客户端跳转setHeader() response.setHeader(refresh,2;url=ddd.jsp);属于客户端跳转response.sendRedirect(DDD,JSP);客户端跳转,页面执行完毕之后再跳转,但是不能出传递request范围的属性。服务器跳转;服务器跳转,属于无条件跳转,后面的内容不执行,故而数据库的关闭不能放在后面。页面间的两种跳转服务器跳转:超链接跳转ssssscookie使用方法:Cookie c1 = new Cookie (

60、dd,ddd); response.addCookie(c1);Cookie c = request.getCookies();for (int i=0;i-注意:发现浏览器关闭后,不能取得cookie内容,原因为其内容仅保存在浏览器中,并没有保存在本地,保存本地,其保存时间必需得到设置。cl.setMaxAge(22);/插入此代码即可out.println()out.println()的换行去哪里了呢?这个换行只是针对于源文件中的换行,但是此换行会被HTML忽略掉,所以如果需要换行,可以直接编写html语句。两种include指令 include指令和指令语法格式为: include: 指

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论