第一阶段 通过jdk的GC输出进行测试
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了秦淮免费建站欢迎大家使用!
可以在 JAVA_OPTS增加以下参数打开jdk的GC输出日志:
-verbose:gc -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError
打开输出日志,jdk会在每一次的垃圾回收时打印相关日志
第二阶段 通过jmap命令
jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等
第三阶段 通过Eclipse Memory Analyzer 分析工具来分析
Eclipse Memory Analyzer是一种快速的,功能丰富的Java堆分析工具,以下简称MAT,可以帮助查找内存泄露,并减少内存消耗。 这个工具可以对由堆转储产生的数以亿计的对象进行分析,一旦堆转储被解析,可以在打开他的一瞬间,立即得到保留大小的单一对象,提取记录详细的信息,查看为什么这些对象对象资料没有被释放掉。使用这些功能的报告,可以对这些对象进行跟踪,找到内存泄露嫌疑人,也可以得到系统的性能指数,帮助优化系统。
是业务逻辑么?如果是业务逻辑,可以用junit或者自己写main测试,如果是代码,现有的ide都可以帮助你进行检查。
在Eclipse中查看JDK类库的源代码
设置:
1.点 “window”- "Preferences" - "Java" - "Installed JRES"
2.此时"Installed JRES"右边是列表窗格,列出了系统中的 JRE 环境,选择你的JRE,然后点边上的 "Edit...", 会出现一个窗口(Edit JRE)
3.选中rt.jar文件的这一项:“c:\program files\java\jre_1.5.0_06\lib\rt.jar”
点 左边的“+” 号展开它
4.展开后,可以看到“Source Attachment:(none)”,点这一项,点右边的按钮“Source Attachment...”, 选择你的JDK目录下的 “src.zip”文件
5.一路点"ok",结束。
dt.jar是关于运行环境的类库,主要是swing的包
tools.jar是关于一些工具的类库
rt.jar包含了jdk的基础类库,也就是你在java doc里面看到的所有的类的class文件
使用:
可以在 Java 源代码编辑器或代码片段编辑测试窗中选择类型、方法或字段的名称,然后对元素的定义打开编辑器。
在 Java 编辑器中,选择类型、方法或字段的名称。您也可以仅仅在名称中单击一次。
执行下列其中一项操作:
1.从菜单栏中,选择浏览 打开声明
2.从编辑器的弹出菜单中,选择打开声明
3.按 F3 键,如下图
//都已改好
import java.util.*;
class Student {
int num;
String name;
float grade;
public Student() {}
public Student(int stuNum,String stuName,float stuGrade) {
num = stuNum;
name = stuName;
grade = stuGrade;
}
public void showGrade() {
System.out.println("姓名: " + name);
System.out.println("成绩: " + grade);
}
}
public class Test {
private static ListStudent stuList = new ArrayListStudent();
public static void main(String[] args) {
Student xiaoming = new Student(1, "小明", 70);
stuList.add(xiaoming);
test(1);
}
public static void test(int num) {
boolean isStuExist = false;
for(Student stu : stuList) {
if(num == stu.num) {
stu.showGrade();
isStuExist = true;
}
}
if(isStuExist) {
System.out.println("存在该学号的学生");
}
}
}
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
1. 写完代码后用代码给是工具format一下,让其格式符合规范,看起来自然舒服; 完美主义型的程序员请在敲代码的时候就按照规范的格式来,这样离开了format工具代码一样漂亮;
2. 消除代码中所有的warnning,警告信息毕竟不是在开玩笑,不能置之不理,一些可以确定不存在风险、且无法修复的warning,如在1.5及以后的JDK版本中使用不带泛型的老版集合接口时编译器给出的warning, 可使用@SuppressWarnings标注将其忽略;
3. 提交每一个change set之前,使用Findbug这个工具(有eclipse插件)检查一遍代码,把它提示的所有bug都修掉,这样可以消除大量程序隐患;
4. 编写充足的测试用例,如果你发现自己的代码不可测,即无法方便地编写test case,那一定是代码结构设计得有问题,重构之,直到可测试为止。
总结:在没有导师review和指导的情况下,完全可以通过上面四个方法自行提高代码质量和OO设计水平。而代码质量也在一定程度上反映了程序员对待职业的态度,你当自己是码农,按码农的标准去干活,那你永远是码农。你当自己是艺术家,按艺术的标准是coding,那么终有一天你会成为代码艺术家。