创建[J]清理

文档状态:编辑中....


完备的系统在演变中浑然天成,要想在系统中添加新的功能,必须能够忍受带来的递归增长的问题.


暂无评论

Table of Contents

草稿

###混乱中
---
- 对象的存储
    - 存储方式(位置)
基本类型存储在栈
自己创建的对象存储在堆
堆的速度慢
栈的速度快

栈要求知道生命周期
堆不需要知道生命周期以便操作栈指针

老师说生命周期并不是一个软件一个对象死了,而是指他该做的已经做了,他已经对现有系统没用了.对于软件来说,他的功能已经不足以现在的系统,他的生命周期已经结束了,所以你要经常维护他,让他成长,他的生命才会存在,并且生命周期一直会延长着.
- 插入题外话,现在要搜索结构化开发与面向对象开发的比较

###知识点
---
- 基本类型使用频繁,如果放入堆区难免影响速度,故放入栈区
- 新概念:包装基本类型

###策略
- 性能换功能
    - 速度换精度(包装类型BigIntegerBigDecimal)

构造器


为了安全性考虑,java引入了构造器,不可避免的制定了目标,并在解空间建模之后,就要进行迭代的概要设计与详细设计

功能需求

基本类型的重载


this


类方法如何确定来的是哪个对象的调用,其实这句话我也不知道自己说的对不对,a.hello(),b.hello();hello怎么确定它前面是a还是b,解决这个问题我认为有两种,另外如果我想在构造器中调用构造器

对了,值得一提,this能够消除歧义

清理


以前看了看垃圾回收器的作用,发现了一个问题,垃圾回收只能操作new出来的对象,万一脑子一抽不用new申请出一块特殊内存,垃圾回收器不知道怎么回收,那不出现内存泄漏了么?对此java引入了新的机制,finalize(),我把它称为”终结者“笑:-D
这里谈一谈垃圾回收器的强调
1. 垃圾回收器代表不了析构函数,之所以会用垃圾回收器是因为java贪图安全防止内存泄漏
一旦回收器准备释放某一部分空间时,他会先调用其finalize方法,然后在等到其应该执行回收动作的时候再进行真正的释放.所以说finalize并没有在真正的意义上将对象释放.
回收器开始工作时,垃圾不一定会被回收,因为垃圾回收器也占有一定的开销,冒昧的使用只会增大系统的浪费,所以在使用finalize方法时要注意,就像是声明要去做一样,但是不一定去做,如果去做了,一定会做完。

再谈初始化


    ##java
    line 1:public class Test{
    line 2:  public int a = 3;//正确
    line 3:  public char c = 'b';//正确
    line 4:  int f(int n){return 11*n;}//正确
    line 5:  int b = f(a);//正确
    }
    方法的引用可以是无序的
    所以line5line4调换位置是不影响的
    但是参数的使用必须是有序的所以line2不能和line5换位
   ##c++
   public class Test{
     public int a = 3;//错误
     public char c = 'b';//错误
   }

构造器初始化


涉及到初始化顺序



数组的初始化


   new Integer{1,2,3,4,5};//作为参数
   int [] happy = {1,2,3,4,5};

枚举类型


public emun circle{
  ONE,
  TWO.
  THREE,
  FOUR,
  FIVE,
  SIX,
  SEVEN,
}

可以使用在Switch