首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
程序人生
›
程序人生——Java异常使用建议,我把所有软件测试第三方 ...
返回列表
发新帖
程序人生——Java异常使用建议,我把所有软件测试第三方库整理成了PDF
[复制链接]
发表于 2024-8-16 04:59:44
|
显示全部楼层
|
阅读模式
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,现在阿里P7
深知大多数程序员,想要提升技能,往往是自己探索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术故步自封!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初志也很简朴,就是希望能够帮助到想自学提升又不知道该从何学起的朋侪。
既有适合小白学习的零基础资料,也有适合3年以上履历的小同伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比力多,这里只是将部门目录截图出来,全套包罗大厂面经、学习笔记、源码课本、实战项目、大纲路线、解说视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
建议112:受检异常尽可能转化为非受检异常
建议113:不要在finally块中处理返回值
建议114:不要在构造函数中抛异常
建议115:使用Throwable得到栈信息
建议116:异常只为异常服务
建议117:多使用异常,把
性能
标题放一边
深入认识JVM
JVM内存分配,类加载
创建对象的4种方法总结
垃圾接纳GC
JVM调优,Arthas使用
认识多线程
创建多线程方法+了解线程池
多线程下-1非原子性标题即解决
再论线程,创建、生命周期
总结
引出
程序人生——Java异常使用建议
异常
建议110:提倡异常封装;
异常封装有三方面的优点:
1、提高体系的友好性;
2、提高体系的可维护性;
3、解决Java异常机制本身的缺陷;
建议111:采用异常链通报异常
责任链模式
(Chain of Responsibility),目的是将多个对象连城一条链,并沿着这条链通报该哀求,直到有对象处理它为止,异常的通报处理也应该采用责任链模式
建议112:受检异常尽可能转化为非受检异常
受检异常威胁到体系的
安全
性、稳定性、可靠性、正确性时、不能转为非受检异常)(受检异常(Checked Exception),非受检异常(Unchecked Exception),受检异常时正常逻辑的一种补偿处理本领,特别是对可靠性要求比力高的体系来说,在某些条件下必须抛出受检异常以便由程序进行补偿处理,也就是说受检异常有合理的存在来由。但是受检异常有不足的地方:1、受检异常使接口声明脆弱;2、受检异常是
代码
的可读性低沉,一个方法增加了受检异常,则必须有一个调用者对异常进行处理。受检异常需要try…catch处理;3、受检异常增加了开辟工作量。避免以上受检异常缺点办法:将受检异常转化为非受检异常
建议113:不要在finally块中处理返回值
在finally块中参加了return语句会导致以下两个标题:1、覆盖了try
代码
块中的return返回值;2、屏蔽异常,纵然throw出去了异常,异常线程会登记异常,但是当执行器执行finally
代码
块时,则会重新为方法赋值,也就是告诉调用者“该方法执行正确”,没有发生异常,于是乎,异常神奇的消失了
建议114:不要在构造函数中抛异常
Java异常机制有三种:1、Error类及其子类表现的是错误,它是不需要程序员处理的也不能处理的异常,比如VirtualMachineError捏造机错误,ThreadDeath线程僵死等;2、RuntimeException类及其子类表现的是非受检异常,是体系可能抛出的异常,程序员可以去处理,也可以不处理,最经典的是NullPointerException空指针异常和IndexOutOfBoundsException越界异常;3、Exception类及其子类(不包罗非受检异常)表现的是受检异常,这是程序员必须要处理的异常,不处理则程序不能通过编译,比如IOException表现I/O异常,SQLException
数据库
访问异常。一个对象的创建过程要经过内存分配、静态代码初始化、构造函数执行等过程,构造函数中是否答应抛出异常呢?从Java语法上来说,完全可以,三类异常都可以,但是从体系计划和开辟的角度分析,则尽量不要在构造函数中抛出异常
建议115:使用Throwable得到栈信息
在出现异常时(或主动声明一个Throwable对象时),JVM会通过fillInStackTrace方法记载下栈信息,然后生成一个Throwable对象,这样就能知道类间的调用顺序、方法名称以及当前行号等
建议116:异常只为异常服务
异常本来是正常逻辑的一个补充,但有时间会被当前主逻辑使用。异常作为主逻辑有标题:1、异常判断低沉了体系
性能
;2、低沉了代码的可读性,只有具体了解valueOf方法的人才气读懂这样的代码,由于valueOf抛出的是一个非受检异常;3、隐蔽了运行期可能产生的错误,catch到异常,但没有做任何处理
建议117:多使用异常,把
性能
标题放一边
new一个IOException会被String慢5倍:由于它要执行fillInStackTrace方法,要记载当前栈的快照,而String类则是直接申请一个内存创建对象。而且,异常类是不能缓存的。但是异常是主逻辑的例外逻辑,会让方法更符合实际的处理逻辑,同时使主逻辑更加清晰,可让正常代码和异常代码分离、能快速查找标题(栈信息快照)等
深入认识JVM
JVM内存分配,类加载
Java进阶(1)——JVM的内存分配 & 反射Class类的类对象 & 创建对象的几种方式 & 类加载(何时进入内存JVM)& 注解 & 反射+注解的案例
创建对象的4种方法总结
Java进阶(4)——联合类加载JVM的过程理解创建对象的几种方式:new,反射Class,克隆clone(拷贝),序列化反序列化
垃圾接纳GC
Java进阶(垃圾接纳GC)——理论篇:JVM内存模型 & 垃圾接纳定位打扫算法 & JVM中的垃圾接纳器
简介:本篇博客介绍JVM的内存模型,对比了1.7和1.8的内存模型的变化;介绍了垃圾接纳的语言发展;论述了定位垃圾的方法,引用计数法和可达性分析发以及垃圾打扫算法;然后介绍了Java中的垃圾接纳器,由串行、到并行再到并发,末了到G1的演变;末了给出了垃圾接纳器的对比和使用指引。
JVM调优,Arthas使用
网上学习资料一大堆,但如果学到的知识不成体系,遇到标题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份体系化的资料的朋侪,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才气走的更远!岂论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎参加我们的的圈子(技术交换、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
*
[外链图片转存中…(img-ilaMAUBv-1713235765533)]
一个人可以走的很快,但一群人才气走的更远!岂论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎参加我们的的圈子(技术交换、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
刘俊凯
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表