一个对象实例化的过程

一个对象实例化的过程

栗子:Cat cat = new Cat();
1、JVM会根据指定路径读取Cat.class文件,并加载进内存,有父类(如:Animal)的情况下,会先加载父类的.class文件(即Animal.class)。
2、在堆内存开辟空间,分配地址
3、在对象空间中,对对象的属性进行默认初始化。

  • 3.1调用对应构造函数进行初始化,这个栗子中,调用的就是,无参构造函数
  • 3.2在构造函数中,第一行会到调用父类中构造函数进行初始化
  • 3.3父类初始化完毕后,再对子类属性进行显示初始化

4、再进行子类构造函数的特定初始化
5、初始化完毕后,将地址赋值给引用变量。


能存储映射关系的容器有数组和Map集合。
【注】集合里存的是引用
对体系:看顶层,用底层。
数值有很多用数组存,数组很多用二维数组存
数据很多用对象存,对象很多用集合(Collection)存。[集合仅存对象,且长度可变]

思考:如何记录每一个容器的结构和所属体系呢?
后缀名就是该集合所属体系
前缀名就是该集合的数据结构
看到array:就要想到就要想到数组,就要想到查询快,有角标
看到link:就要想到链表,想到增、删快,就要想到add、get、remove、first、last方法
看到hash:就要想到哈希表,就要想到唯一性,就要想到元素需要覆盖hashcode方法和equals方法
看到tree:就要想到二叉树,就要想到排序,就要想到2个接口comparable,comparator

思考:如何选择正确的集合?
需要唯一性吗?

  • 需要:Set
    需要制定顺序吗?
    • 需要:TreeSet
    • 不需要:HashSet
      想要一个和存储一一致的顺序(有序):LinkedHashSet
  • 不需要:List
    需要频繁操作吗?
    • 需要:LinkedList
    • 不需要:ArrayList

复用问题总结:
1.同一个类—————》方法
2.两个类 ———变量、方法——》a.基类(抽)、b.组合类、c.接口
3.参数类型 ———————》泛型 :方法和类
4.两个项目———类———》DLL和package


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部