Java基础知识回顾,还记得吗?( 三 )
深拷贝和浅拷贝
- 深拷贝:拷贝所有的内容 , 除了基本数据类型变量复制一份 , 连引用类型变量也复制一份 。
- 浅拷贝:复制基本数据类型变量 , 对于引用类型的变量 , 直接返回这个引用本身 。
- 按照流的流向 , 分为:输入流和输出流 。
- 按照操作单元 , 分为:字节流和字符流 。
BigDecimalBigDecimal时Java中表示大浮点数的类型 。
在Java中 , 如果遇到浮点数的判断 , 可以使用BigDecimal来做计算 , 因为如果使用普通数据类型很可能会发生精度丢失的情况 , 这个时候的结果可能会出乎意料之外 。
Java异常体系结构在Java中,异常分为 Exception和Error,这2个类都继承自Throwable 。
- Exception: Exception异常是程序本身可以处理的 。 Exception 分为运行时异常(RuntimeException)和 非运行时异常(CheckedException) 。
- RuntimeException: RuntimeException(运行时异常)是在程序运行时可能会发生的异常,如NullPointException, 这类异常往往是不可预料的,编译器也不会要求你手动try catch或throws 。
- CheckedException: CheckedException(非运行时异常)是RuntimeException以外的异常,如IOException ,这类异常要求必须显示的try catch或throws,如果不处理,那么编译就不会通过 。
- Error: Error错误是程序无法处理的,表示程序或JVM出现了很严重的 , 无法解决的问题 。
- Comparable: 自然排序接口 。 实现了它的类意味着就支持排序 。
- Comparator: 外部比较器 。 无需让需要排序的对象实现排序逻辑 , 而是根据Comparator定义的逻辑来排序 。Comparator相较于Comparable更加的灵活 。
Java中引用的类型Java中引用类型总共有四种: 强引用 , 软引用 , 弱引用 , 虚引用 。
- 强引用(Strong Reference): Java程序中绝大部分都是强引用 , 一般使用new关键字创建的对象就是强引用 。只要强引用存在 , 强引用的对象就不会被回收 , 除非不可达(参考jvm部分)
- 软引用(Soft Reference): 软引用一般不会被回收 , 但是当堆内存不够的时候 ,比如几乎快要发生OOM的时候 , 就会回收掉软引用对象 。
- 弱引用(Weak Reference): 只要垃圾回收开始 , 就会回收掉弱引用的对象 。
- 虚引用(Phantom Reference,又称幽灵引用): 和其他几种引用不同 , 虚引用不决定对象的生命周期 ,它在任何时候都可能被回收掉 。
推荐阅读
- 计算机专业大一下学期,该选择学习Java还是Python
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 再见了 虾米!两分钟回顾虾米音乐发展史
- 学习大数据是否需要学习JavaEE
- 从事Java开发时发现基础差,是否应该选择辞职自学一段时间
- 2021年Java和Python的应用趋势会有什么变化?
- 三星预热Galaxy S21:回顾Galaxy S系列历代变化
- 同质化时代玩法进阶 2020年手机行业技术回顾
- 普通大学计算机专业的本科生,该选择主攻前端还是Java
- Java语言会不会随着容器的兴起而衰落