method.insertAfter("long endTime = System.currentTimeMillis();\n"+
" System.out.println(endTime-beginTime);");
return ctClass.toBytecode();
} catch (NotFoundException e) {
e.printStackTrace();
} catch (CannotCompileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
});
}
}
public class TimeServiceImpl {
public TimeServiceImpl() {}
//有一次必须向上一层抛出,如果用try{}catch(){}捕获异常,则会抛出异常
// java.lang.VerifyError: (class: com/apm/agent/TimeServiceImpl, method: hello signature:
// (Ljava/lang/String;)V) Register pair 3/4 contains wrong type
public void hello(String hello) throws InterruptedException {
{ // 开始时间
Thread.sleep(3000);
// 结束时间
}
}
}
public class TimeAgentTest {
public static void main(String[] args) throws InterruptedException {
System.out.println("执行main方法");
TimeServiceImpl timeService = new TimeServiceImpl();
timeService.hello("");
}
}
编辑MANIFEST.MF文件
![img](https://img-blog.csdnimg.cn/img_convert/aad91e769c9a04bdec176f1d70371588.png)
设置JVM启动参数
![img](https://img-blog.csdnimg.cn/img_convert/d952aff817a5b437771c0eeec084ffd7.png)
执行TimeAgentTest.main()方法,输出结果:
传入参数:helloworld
执行main方法
1554281967837
# 最后我们该如何学习?
**1、看视频进行系统学习**
这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:
![1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了](https://img-blog.csdnimg.cn/img_convert/59569ae6c88695e0dc7cc749f66014b6.png)
**2、读源码,看实战笔记,学习大神思路**
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
Spring源码深度解析:
![1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了](https://img-blog.csdnimg.cn/img_convert/18aa1bf64527b019561188427118ca00.png)
Mybatis 3源码深度解析:
![1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了](https://img-blog.csdnimg.cn/img_convert/c94b3f2f286c7990cd2bf4e0d0cb9fc3.png)
Redis学习笔记:
![1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了](https://img-blog.csdnimg.cn/img_convert/e3e81600df834d35de63fad72242e32a.png)
Spring Boot核心技术-笔记:
![1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了](https://img-blog.csdnimg.cn/img_convert/b2c32afd4c7be63e65d8fb55f32abcb3.png)
**3、面试前夕,刷题冲刺**
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:
![1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了](https://img-blog.csdnimg.cn/img_convert/ecca26959f1f68f48e8cb86cd0301b53.png)
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**
堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**