第五章笔记:初始化与清理

记录一下好的描述以及不知道的问题(会附带书中页码)
  • (P77)在Java中,“初始化”和“创建”捆绑在一起,两者不能分离
  • (P77)构造器没有返回值,但是和返回值为空的(void)不同。
      对于空返回值,尽管方法不会自动返回什么,但仍可选择让它返回别的东西。
      构造器则不会返回任何东西,你别无选择(new表达式确实返回了对新建对象的引用,但构造器本身并没有任何返回值
  • (P81)重载方法中的参数:如果传入的数据类型(实际参数类型)小于方法中声明的形式参数类型,实际数据类型就会被提升。(即传入小——>变大 传入大——>变小   但是大变小可能会导致一些数据的丢失)
      char型略有不同,如果无法找到恰好接受char参数的方法,就会把char直接提升为int型。
  • (P87)Java有垃圾回收器负责回收无用对象引用占据的内存资源(特殊情况除外具体看第6条)
  • (P87)
      --①对象可能不被垃圾回收
      --②垃圾回收并不等于“析构”
        注: 析构就是将我们自己创建的对象销毁的时候,自动被调用,用来释放对象占用的空间,具体请看这个博主的博文:C++析构函数
        Java中并未提供“析构函数”的概念,所以用作类似的工作就必须自己手动创建一个执行清理工作的普通方法,这里采用finalize()方法
      --③垃圾回收只与内存有关
        注: 就是说使用垃圾回收器的唯一原因就是为了回收程序不再使用的内存(特殊情况除外具体看第6条)
  • (P88)特殊情况: 使用C语言中的malloc() 函数来分配内存空间的本地方法。
  • (P89)垃圾回收器的优势之一:使得Java从堆分配空间的速度可以和其它语言从堆栈上分配空间的速度向媲美。
  • (P90)垃圾回收器高效的原因: 一面回收空间,一面使得堆中的对象紧密排列。
  • (P90)2种垃圾回收机制+5种算法
       推荐链接:Java垃圾回收器了解机制+算法
  • (P91)即时编译技术(Just-In-Time JIT技术):Java虚拟机中用来提升速度的。
        推荐链接:即时编译技术(Just-In-Time JIT技术)
  • (P95) 静态数据的初始化: 无论创建多少个对象,静态数据只占用一份存储区域。static关键字不能应用于局部变量,因此它只能作用于域。如果一个域是静态的静态的基本类型域,且没有对它进行初始化,那么它就会获得基本类型的标准初值;如果它是一个对象引用,那么它的默认初始化值就是null
  • (P98)实例初始化子句:
       {
       mug1 = new Mug(1);
       mug1 = new Mug(2);
       }
       与静态代码块相较而言:
         1.无static关键字。
         2.每次实例化对象时都会执行。
       何时调用:
          1、实例初始化子句是在构造方法执行之前执行的。
          2、无论你调用的是哪个构造方法,实例初始化语句都会执行。
          (引用:Java 实例初始化子句
  • (P99)
int[] a1 ={1,2,3,4,5};
int [] a2;

在java中可以将一个数组赋值给另外一个数组,所以可以这样做:
   a2 = a1;
其实真正做的只是复制一个引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值