论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
程序人生
›
程序人生——Java非常使用建议
程序人生——Java非常使用建议
杀鸡焉用牛刀
金牌会员
|
2024-7-21 04:26:33
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
547
|
帖子
547
|
积分
1641
引出
程序人生——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使用
Java进阶(JVM调优)——阿里云的Arthas的使用 & 安装和使用 & 死锁查找案例,重新加载案例,慢调用分析
Java进阶(JVM调优)——JVM调优参数 & JDK自带工具使用 & 内存溢出和死锁题目案例 & GC垃圾接纳
认识多线程
创建多线程方法+相识线程池
Java进阶(5)——创建多线程的方法extends Thread和implements Runnable的对比 & 线程池及常用的线程池
多线程下-1非原子性题目即办理
Java进阶(6)——抢购题目中的数据不安全(非原子性题目)& Java中的synchronize和ReentrantLock锁使用 & 死锁及其产生的条件
再论线程,创建、生命周期
Java进阶(再论线程)——线程的4种创建方式 & 线程的生命周期 & 线程的3大特性 & 集合中的线程安全题目
重要内容:
1.线程创建的方式,继承Thread类,实现Runable接口,实现Callable接口,采用线程池;
2.线程生命周期: join():运行竣事再下一个, yield():临时让出cpu的使用权,deamon():保卫线程,最后竣事,sleep():假如有锁,不会让出;
3.线程3大特性,原子性,可见性,有序性;
4.list集合中线程安全题目,hash算法题目;
总结
程序人生——Java非常使用建议
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
杀鸡焉用牛刀
金牌会员
这个人很懒什么都没写!
楼主热帖
手把手带你通过API创建一个loT边缘应用 ...
Maven打包遇到No compiler is provided ...
Apache Hudi 在袋鼠云数据湖平台的设计 ...
Ajax+WCF+MySQL实现数据库部署并调用 ...
Java 根据模板导出PDF
揭秘 ChunJun:如何实现 e2e&session ...
如何使用Mutex确保并发程序的正确性 ...
开源轻量级工作流WorkflowCore介绍 ...
算法学习-1 算法复杂度
Django 使用VScode 创建工程
标签云
挺好的
服务器
快速回复
返回顶部
返回列表