java代码走查报告 java代码走查标准

java分析代码执行过程,输出结果

static 是静态声明,所以会先执行Employee.id的时候,会先执行static的脚本,就是id 的默认赋值和静态块的执行,即打印那个static_block

10余年的两当网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整两当建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“两当网站设计”,“两当网站推广”以来,每个客户项目都认真落实执行。

所以流程是。赋值id,打印static_block;那上面的代码就是打印static_block 和Main:0

代码走查请描述如何检查同事的Java和JSP代码

jsp中插入java代码叫做scriptlet,卸载%%之间。

简要参考代码如下:

%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%

%

String a1 ="";

String a2 = "";

long s = 0;

a1 = request.getParameter("a1");

a2 = request.getParameter("a2");

String outs="";

if(a1!=null !a1.trim().equals("") a2!=null !a2.trim().equals("")){

try{

s = Long.parseLong(a1)+Long.parseLong(a2);

outs = String.valueOf(s);

}catch(Exception ex){

outs="您输入的不是有效数字!";

}

}

if(a1==null||a2==null) {

a1 ="";

a2 = "";

}

%

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

html

head

谁能给一个Java程序代码我,要50行到100行就可以啦。最好有几行解释

给你一个前几天才帮人写的

“计算整钱兑零”。程序要求用户输入一个双精度数代表总元数,就会列出总值与其等价的1元币、二角五分币、5分币和1分币的数目。程序报告的数目是1元币的最大数、其次是二角五分币的最大数,等等,依此类推。只显示非零的单位。对单个单位显示单数单词,对多于一个单位的显示复数单词

import java.util.Scanner;

public class MoneyCalculate {

public static void main(String[] args) {

int max100 = 0;

int max25 = 0;

int max5 = 0;

int max1 = 0;

double money = getMoneyFromInput();

String str = String.valueOf(money).trim();

String[] ary = str.split("\\.");

max100 = Integer.parseInt(ary[0]);

if(ary.length == 2){

int fen = Integer.parseInt(ary[1]);

if(ary[1].trim().length() == 1){

fen = Integer.parseInt(ary[1]) * 10;

}

max25 = fen / 25;

if(fen % 25 != 0){

fen = fen % 25;

}else{

fen = 0;

}

max5 = fen / 5;

max1 = fen % 5;

}

StringBuilder sb = new StringBuilder(money + " = ");

if(max100 != 0){

sb.append(max100);

sb.append("*1 ");

}

if(max25 != 0){

sb.append(max25);

sb.append("*0.25 ");

}

if(max5 != 0){

sb.append(max5);

sb.append("*0.05 ");

}

if(max1 != 0){

sb.append(max1);

sb.append("*0.01 ");

}

System.out.println(sb.toString());

}

private static double getMoneyFromInput() {

Scanner scanner = new Scanner(System.in);

return scanner.nextDouble();

}

}

-----------

2.49

2.49 = 2*1 1*0.25 4*0.05 4*0.01

-----------

2.5

2.5 = 2*1 2*0.25

-----------

37.23

37.23 = 37*1 4*0.05 3*0.01

-----------------

123.569

123.569 = 123*1 22*0.25 3*0.05 4*0.01

帮我看一下,我的java代码。为什么运行结果不对!如图:请详解,为什么其他组件没有显示?

看注释:

import java.awt.GridLayout;

import javax.swing.*;

public class LoadForm extends JFrame{

private JPanel jpanel1;

private JTextField jtext1;

private JPasswordField password;

private JLabel jlable1;

private JLabel jlable2;

private JButton button1;

private JButton button2;

public LoadForm()

{

super("商品管理系统");

this.setLayout(null);

GridLayout layout=new GridLayout(3,3,10,10);//这句保留

jpanel1=new JPanel();

//jpanel1.setLayout(null);//jpanel1的布局不能为空

jlable1=new JLabel("用户名");

jlable2=new JLabel("密 码");

jtext1=new JTextField();

password=new JPasswordField();

button1=new JButton("确定");

button2=new JButton("取消");

jpanel1.add(jlable1);

jpanel1.add(jtext1);

jpanel1.add(jlable2);

jpanel1.add(password);

jpanel1.add(button1);

jpanel1.add(button2);

//this.add(jpanel1);//写法错误

this.setContentPane(jpanel1);//设置jpanel1为Frame的内容面版

this.setBounds(200,200,100,100);

//this.setSize(200,200);

this.setVisible(true);

}

//main方法测试

public static void main(String args[]){

new LoadForm();

}

}

怎么查看java代码是否内存泄露

第一阶段 通过jdk的GC输出进行测试

可以在 JAVA_OPTS增加以下参数打开jdk的GC输出日志:

-verbose:gc -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError

打开输出日志,jdk会在每一次的垃圾回收时打印相关日志

第二阶段 通过jmap命令

jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等

第三阶段 通过Eclipse Memory Analyzer 分析工具来分析

Eclipse Memory Analyzer是一种快速的,功能丰富的Java堆分析工具,以下简称MAT,可以帮助查找内存泄露,并减少内存消耗。 这个工具可以对由堆转储产生的数以亿计的对象进行分析,一旦堆转储被解析,可以在打开他的一瞬间,立即得到保留大小的单一对象,提取记录详细的信息,查看为什么这些对象对象资料没有被释放掉。使用这些功能的报告,可以对这些对象进行跟踪,找到内存泄露嫌疑人,也可以得到系统的性能指数,帮助优化系统。

JAVA 查询数据库 out of memory报错问题

jvm与tomcat内存设置

linix系统平台大并发量下tomcat5.5优化策略(2009-03-11 12:45:24)

标签:linux tomcat5.5 优化策略 it 分类:java

在部署系统后,为了增加系统并发量,系统响应速度,做了一些工作;遂整理如下。

1、修改server.xml文件

Connector port="80" protocol="HTTP/1.1"

maxHttpHeaderSize="8192"

maxThreads="1000" minSpareThreads="75" maxSpareThreads="300"

enableLookups="false" redirectPort="8443" acceptCount="200"

connectionTimeout="50000" disableUploadTimeout="true"/

主要修改了maxThreads、acceptCount。

引用

Google资料说“如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。”

2、增加tomcat启动初始内存设置;catalina.sh – 增加了参数内存设置

内存为2G情况:

JAVA_OPTS="-server -Xms1500M -Xmx1500M -Xss256K -Djava.awt.headless=true -XX:PermSize=64M -XX:MaxPermSize=128m"

(补充:-Dfile.encoding=utf8 加入这个,是设置文件写入的编码方式)

引用

Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同

堆内存分配

JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。

非堆内存分配

JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

JVM内存限制(最大值)

首先JVM内存限制于实际的最大物理内存,假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。

-Djava.awt.headless=true

Java在图形处理时调用了本地的图形处理库。在利用Java作图形处理(比如:图片缩放,图片签名,生成报表)时,如果运行在windows上不会出问题。如果将程序移植到Linux/Unix上的时候有可能出现图形不能显示的错误。提示信息:"Can't connect to X11 window server"这是由于Linux的图形处理需要一个X Server服务器。解决办法就是设置参数。

Xss:每个线程的Stack大小。Stack的大小限制着线程的数量。如果Stack过大就好导致内存溢漏。-Xss参数决定Stack大小,例如-Xss1024K。如果Stack太小,也会导致Stack溢漏。

Tomcat 怎么增加内存?

转载修改方法开始

打开bin目录,找到catalina.bat(windows系统)或catalina.sh(linux系统),在前边一堆的#号注释结束之后增加如下配置

windows的:

set CATALINA_OPTS="-server -Xms256m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m"

linux的:

JAVA_OPTS=='-server -Xms256m -Xmx256m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m'

转载修改方法 结束

悬赏:3 发布时间:2008-08-14 提问人:rihoonet (初级程序员)

猎头职位: 北京: 北京知名手机网站诚聘java高级程序员

报错:java.lang.OutOfMemoryError: Java heap space

TOMCAT版本 5.5.23

曾试过的方法。

/tomcat/bin/catalina.bat 加上下面的命令:

set JAVA_OPTS=-Xms32m -Xmx1024m --这样启动不了了。。奇怪。

采纳的答案

2008-08-14 小疯子 (资深程序员)

Java代码

set JAVA_OPTS=-Xms32m -Xmx1024m %JAVA_OPTS%

set JAVA_OPTS=-Xms32m -Xmx1024m %JAVA_OPTS%, 要引用原来的JAVA_OPTS, 不然把原来的覆盖了.

增加Tomcat虚拟内存大小

--------------------------------------------------------------------------------

JVM的大小设置(unix平台tomcat):调整 $ CATALINA _HOME \bin\catalina.sh文件。

elif [ "$1" = "start" ] ; then

shift

touch "$CATALINA_BASE"/logs/catalina.out

if [ "$1" = "-security" ] ; then

echo "Using Security Manager"

shift

"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \

-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \

-Djava.security.manager \

-Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \

-Dcatalina.base="$CATALINA_BASE" \

-Dcatalina.home="$CATALINA_HOME" \

-Djava.io.tmpdir="$CATALINA_TMPDIR" \

org.apache.catalina.startup.Bootstrap "$@" start \

"$CATALINA_BASE"/logs/catalina.out 21

else

"$_RUNJAVA" $JAVA_OPTS -Xms1024m -Xmx1024m $CATALINA_OPTS \

-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \

-Dcatalina.base="$CATALINA_BASE" \

-Dcatalina.home="$CATALINA_HOME" \

-Djava.io.tmpdir="$CATALINA_TMPDIR" \

org.apache.catalina.startup.Bootstrap "$@" start \

"$CATALINA_BASE"/logs/catalina.out 21

fi

注意红色部分–Xms1024m –Xmx1024m,这句话表示jvm的最小值为1024M,最大1024M,这个部分的调优需要根据web服务器主机硬件配置不同而调整,初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。一般而言,这个参数不重要。但是有的应用程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。

JVM的大小设置(windows平台tomcat):

1)停掉现在的Tomcat服务(假设已经启动)

net stop "Apache Tomcat 4.1"

2)卸载Tomcat服务

tomcat.exe -uninstall "Apache Tomcat 4.1"

3)重新配置启动参数

tomcat.exe -install "Apache Tomcat 4.1" "%JAVA_HOME%\jre\bin\server\jvm.dll" -Djava.class.path="%CATALINA_HOME%\bin\bootstrap.jar;%JAVA_HOME%\lib\tools.jar" -Dcatalina.home="%CATALINA_HOME%" -Xrs -Xmx512m -Xms512m -start org.apache.catalina.startup.Bootstrap -params start -stop org.apache.catalina.startup.Bootstrap -params stop -out "%CATALINA_HOME%\logs\stderr.log"

4)在服务中重新启动Tomcat服务,完成配置。

其中红色部分也是调整jvm的大小的地方。调整原则同上。

另外:查看jvm的方法:$webapp\cache.jsp。需要提醒的是,通过这个页面能看出大概的jvm使用数量大小,通常实际的jvm大小要比页面显示的偏大些。

-----------------------------------------------------------------------------------

秦敏:rem Set JVM Memery Size

set JAVA_OPTS=-Xms800m -Xmx1024m

-----------------------------------------------------------------------------------

windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,JVM是要先去做垃圾回收的动作,释放被占用的一些内存。

所以想调整Tomcat的启动时初始内存和最大内存就需要向JVM声明,一般的JAVA程序在运行都可以通过中-Xms -Xmx来调整应用程序的初始内存和最大内存:

如:java -Xms64m -Xmx128m a.jar.

tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置

有两种方法:

1. 就需要在环境变量中加上TOMCAT_OPTS, CATALINA_OPTS两个属性,

如 SET CATALINA_OPTS= -Xms64m -Xmx512m;

ms是最小的,mx是最大,64m, 512m分别是指内存的容量.

2. 修改Catalina.bat文件

在166行“rem Execute Java with the applicable properties ”以下每行

%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% 中的%CATALINA_OPTS% 替换成-Xms64m -Xmx512m(把四行内的%CATALINA_OPTS%都替换掉,包括两边的%)

___________________________________________________________________________________________

Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机。您可以选择自己的需要选择不同的操作系统和对应的JDK的版本(只要是符合Sun发布的Java规范的),但我们推荐您使用Sun公司发布的JDK。确保您所使用的版本是最新的,因为Sun公司和其它一些公司一直在为提高性能而对java虚拟机做一些升级改进。一些报告显示JDK1.4在性能上比JDK1.3提高了将近10%到20%。

可以给Java虚拟机设置使用的内存,但是如果你的选择不对的话,虚拟机不会补偿。可通过命令行的方式改变虚拟机使用内存的大小。如下表所示有两个参数用来设置虚拟机使用内存的大小。

参数

描述

-Xms

JVM初始化堆的大小

-Xmx

JVM堆的最大值

这两个值的大小一般根据需要进行设置。初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。一般而言,这个参数不重要。但是有的应用程序在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。

Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。

Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'

需要把这个两个参数值调大。例如:

JAVA_OPTS='-Xms256m -Xmx512m'

表示初始化内存为256MB,可以使用的最大内存为512MB。

另外需要考虑的是Java提供的垃圾回收机制。虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。如果堆的大小很大,那么完全垃圾收集就会很慢,但是频度会降低。如果你把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。在基准测试的时候,为保证最好的性能,要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。

如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过 3-5 秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究 垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的 80% 作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。

Tomcat 5常用优化和配置

1、JDK内存优化:

Tomcat默认可以使用的内存为128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用的最大内存]

一般说来,你应该使用物理内存的 80% 作为堆大小。

2、连接器优化:

在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:

maxThreads:

Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。

acceptCount:

指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。

minSpareThreads:

Tomcat初始化时创建的线程数。默认值4。

maxSpareThreads:

一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。

enableLookups:

是否反查域名,默认值为true。为了提高处理能力,应设置为false

connnectionTimeout:

网络连接超时,默认值60000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

maxKeepAliveRequests:

保持请求数量,默认值100。

bufferSize:

输入流缓冲大小,默认值2048 bytes。

compression:

压缩传输,取值on/off/force,默认值off。

其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

3、tomcat中如何禁止和允许列目录下的文件

在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下:

...

listings

false

...

4、tomcat中如何禁止和允许主机或IP地址访问

...

allow="*.mycompany.com,"/

deny="192.168.1.*"/

...

这是我们服务器的配置,具体文件不能给你,因为涉及到公司机密,所以那一行我给你,我拷贝下来了

JAVA_OPTS='-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8'


网站名称:java代码走查报告 java代码走查标准
本文地址:http://pwwzsj.com/article/hpgsds.html