7月有哪些节日(7月有哪些节日,纪念日)
14522023-12-05
大家好,关于java常用的异常类有哪些很多朋友都还不太明白,今天小编就来为大家分享关于java不建议使用的类的知识,希望对各位有所帮助!
本文目录
目前Lombok并没有爆出有什么坑,还是推荐大家使用的,主要确实是方便和简洁,eclipse和idea都支持这种插件,使用起来特别方便,代码看起来很简洁,如果一个bean对象有二十几个属性,下面一大堆get和set方法,不利于代码的维护,用了Lombok插件,只要写上属性和相应的注解就可以了。
要说有什么缺点,那就是不能你一个人用,得一组人一起用,不然别人同步代码以后会报错。
谢邀!
Error和Exception都继承自Throwable。
Error表示系统级的错误和程序不必处理的异常,例如内存溢出等,这些不可能指望程序能处理;
Exception表示需要捕捉或者需要程序进行处理的异常,是程序设计或编码上的问题。
非检查异常(unckeckedexception):Error和RuntimeException以及它们的子类。Java编译器在编译时不会发现这种异常,所以不要求程序处理这种异常,当然也可以使用try、catch和finally处理这种异常。当出现这种异常大部分都是代码编写的有问题,应该通过修改代码的方式去解决,而不是捕获处理,例如ClassCastException、NullPointerException等。
检查异常(checkedexception):除了Error和RuntimeException的其它异常。Java编译器在编译时会发现这种异常,所以强制要求对这种异常进行预处理,即使用try、catch和finally处理这种异常,或者用throws子句向上层抛出,否则编译不通过。当出现这种异常一般是由程序的运行环境导致的,例如SQLException、IOException等,需要提前对这种可能出现的异常进行处理。
关于外部类只能用public或默认修饰的说法:我是这样理解的:这些修饰权限是针对类中的那些变量、方法、内部类来说的,而外部类已经在最外部(即不存在说在哪个类的内部,或是哪个类的子类这些范围),类作为单独文件被加载不能被修饰为私有(private)或受保护的(protected)[下面也解释了]。只有类内部的那些变量方法去针对访问权限来讨论才有意义。上述讨论权限这样说才更具意义:public:(类中被修饰为public的所有变量、方法、内部类)对所有类可见。protected:(类中被修饰为protected的所有变量、方法、内部类)对同一包内的类和所有子类可见。default(即缺省,什么也不写):(类中被修饰为default的所有变量、方法、内部类)在同一包内可见。private:(类中被修饰为private的所有变量、方法、内部类)在同一类内(自身)可见。即:均是针对类内部的内容来讨论的访问权限所具备的意义。既然这样为什么还要对外部类或类做修饰呢,直接规定只有类内部才能使用访问权限修饰符不就行了?
1.存在包概念:public和default能区分这个外部类能对不同包作一个划分(default修饰的类,其他包中引入不了这个类,public修饰的类才能被import)这里又有人会说protected也包括同包了啊?1)public和default足够区分,public就代表公共,不写就代表default,无需再加个protected累赘2)protected又包含了不同包子类访问权限的概念,外部类最外层就是包了,所以对外部类用protected没意义,包又不具备继承关系。
2.存在内部类概念:当存在内部类的时候,访问权限修饰符就变得有意义了。(类也变成成员来嵌套当然也就需要访问修饰符了)
首先,java语言要在很多平台上运行,用c语言写的话,你得每个平台都编译一次,每个平台都要对应优化,麻不麻烦,而且产生不同的好几个库,增大运行时体积。
第二,并不是说c语言写就一定好,用c写很考验程序员的编程水平,作为一个工具类,就要追求性能,考虑内存、指针、代码优化等等复杂问题。而目前jit的优化功能已经非常强大了,在很多情况下运行速度与c语言相差无几。
第三,这些代码都要被用户的java代码调用,如果要在c实现那么这些工具类就必须要弄一套jni调用,会增加不必要的运行时开销,代码复杂度增加。另外如果要在c实现,那就意味着放弃了已经写好的java优良特点不用,捡了芝麻丢了西瓜,例如垃圾回收,异常捕捉等非常方便的特性。
第四,方便调试,设想,假如工具类是用c写的,一个java程序员调用这个库,结果出异常了,你得从java调试器换到支持c的调试器,例如gdb,lldb等等,然后学习怎么调试,找c里面的bug,这对于一个java程序员来说,是非常痛苦的。而用如果java写的话直接就可以调试,并且可以使用java的异常机制。
如果你还想了解更多这方面的信息,记得收藏关注本站。