java程序员开发技巧总结

系列文章目录

java程序员开发技巧总结: link



1 IDEA篇

1.1 IDEA调用Restful接口

get请求带@RequestParam和@RequestHeader的请求
1.在写好的接口上点击下面的圆形图标后点击’Generate request in HTTP Client’
在这里插入图片描述
会生成下面的文件
在这里插入图片描述
点击Examples->Post Requests
在这里插入图片描述
参考生成的get请求填充到requests.http
在这里插入图片描述
点击运行:
在这里插入图片描述
post请求:
在这里插入图片描述
返回:
在这里插入图片描述

1.2 流式调试

点击Evaluate Expression
在这里插入图片描述
分步查看流式的运算
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
也可以整体查看
在这里插入图片描述

1.3 回退栈

版本小于IDEA2021的是Drop Frame
在这里插入图片描述
版本大于2021的是Reset Frame
在这里插入图片描述

1.4 减少废数据强制return

小于版本2021
在这里插入图片描述
大于版本2021
在这里插入图片描述

1.5 断点种类

1.LineBreakPoint,单行断点
在这里插入图片描述

2.Method BreakPoint,接口方法断点
在这里插入图片描述

3.Field Watchpoint,变量断点
在这里插入图片描述

4.Exception BreakPoint,异常断点
在这里插入图片描述
1.View Breakpoints
在这里插入图片描述
2.点加号->java Exeption Breakpoints
在这里插入图片描述
3.选择需要监控的异常
在这里插入图片描述
做完这些操作后如果程序出现空指针异常会自动定位到目标行

1.6 debug案例

jdk174版本ArrayList默认初始值是10,第二次扩容容量是多少?
在这里插入图片描述
1.设置条件断点
在这里插入图片描述
2.强制进入方法内Force step into
在这里插入图片描述
3.条件成立调用grow()
在这里插入图片描述
4.在newCapacity变量上点右键选Add to Watches 监控
在这里插入图片描述
在这里插入图片描述
5.往下走完计算发现变为15
在这里插入图片描述
6.增到第15的时候再次进入
在这里插入图片描述
7.开始第二次扩容
在这里插入图片描述
8.第二次扩容后变为22
在这里插入图片描述

1.7 自定义单元测试

package com.ge.healthcare.cn.apm.report.utils;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface AtzkTest {
}
package com.ge.healthcare.cn.apm.report.utils;

public class CalcHelpDemo {
    public int mul(int x,int y){
        return x*y;
    }

    @AtzkTest
    public int div(int x, int y){
        return x/y;
    }

    public void thank(int x, int y){
        System.out.println("3ks, help me test bug");
    }
}
@Slf4j
public class AutoTestClient {
    public static void main(String[] args) {
        CalcHelpDemo calcHelpDemo = new CalcHelpDemo();
        int para1 = 10;
        int para2 = 0;
        Method[] methods = calcHelpDemo.getClass().getMethods();
        AtomicInteger bugCount = new AtomicInteger();
        //要写入的文件路径(如果不存在会创建该文件)
        String filePath = "BugReport"+(DateUtil.format(new Date(),"yyyyMMddHHmmss"))+".txt";

        for(int i =0;i<methods.length;i++){
            if(methods[i].isAnnotationPresent(AtzkTest.class)){
                try {
                    methods[i].invoke(calcHelpDemo,para1,para2);

                }catch (Exception e){
                    bugCount.getAndIncrement();

                    FileUtil.writeString(methods[i].getName()+"\t"+"出现了异常"+"\n",filePath,"UTF-8");
                    FileUtil.appendString("异常名称"+e.getCause().getClass().getSimpleName()+"\n",filePath,"UTF-8");
                    FileUtil.appendString("异常原因"+e.getCause().getMessage()+"\n",filePath,"UTF-8");
                }finally {
                    FileUtil.appendString("异常数:"+bugCount.get()+"\n",filePath,"UTF-8");

                }
            }
        }
    }
}
  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值