java之 单根继承与集合
1.单根继承
概念:
单根继承,意味着所有类的继承,都继承自单一的基类的继承模式
优点:
(1)所有对象都具有一个共用接口,归根到底都是相同的基本类型。
(1)所有对象都具有一个共用接口,归根到底都是相同的基本类型。
- package com.ray.ch01;
- public class Jack extends Object {
- }
其实,当我们建立一个新的类时,它是默认继承Object这个根类的,因此我们在建立一个新类的时候,也可以写成上面的样子。我们下面来测试一下
- package com.ray.ch01;
- public class Jack {
- public static void main(String[] args) {
- Jack jack = new Jack();
- System.out.println(jack instanceof Object);
- }
- }
输出:
true
(2)单根继承结构保证所有对象都具备某些功能。
从上图可以看见,jack对象是具备Object里面所有的方法。
(3)单根继承结构使垃圾回收器的实现变得容易得多。
由于是单根继承,因此在计算对象的使用情况的算法变得容易了很多。
2.集合
(1)为什么需要集合?
因为在平常编程的过程中,无法预计需要存储多少个对象,如果使用单纯的数组,无法满足此类需求,因此出现了可以自扩容的集合。
(2)种类
存储序列List、关联数组Map、单一存储Set等
(3)选择
由于不同集合他们满足的是不同需求,必须根据业务来进行选择。例如:
当你大部分情况只是需要读取,那么选择Arraylist比较合适,它的特点是读取容易,插入难
当你大部分情况是插入数据时,那么应该选择LinkedList,它适合随机存储,但是随机读取性能低下
2.1.泛型
由于集合只是存储Object,对于业务场景里面常常发生的向下转型,这里可能会出现各种问题和异常,因此java引入泛型概念,控制每一个集合只是放特定的对象。
总结:这一章节简单的介绍了单根继承和集合,集合和泛型在后面的章节会详细展开。
java之 单根继承与集合的更多相关文章
- JAVA接口的继承与集合
复习 20190701 接口补充 一. java是单继承多实现 单继承: 一个类只能有一个父类 public class D extends D1 { } 2. 多实现 一个类可以同时实现多个接口 当 ...
- java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类
本文关键词: java集合框架 框架设计理念 容器 继承层级结构 继承图 集合框架中的抽象类 主要的实现类 实现类特性 集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...
- java内部类、接口、集合框架、泛型、工具类、实现类
.t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.内部类 1.成员内部类. (1)成员内部类的实例化: 外部类名.内部类 ...
- JAVA基础第五章-集合框架Map篇
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- java基础(7)集合与泛型
第一部分:Collection集合 1 collection集合概述 集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map. C ...
- java方法的继承,覆盖与重载
java中的继承使用extends关键字,在子类继承了父类之后将会获得父类的全部属性与方法(父类的构造器除外).如果在定义java类时没有显示定义她的父类,那么这个类默认将扩展java.lang.Ob ...
- Java之类的继承
说起来Java的类,不得不说以下几个方面:继承.转型.重写.多态和接口. 今天来说一说继承,转型和重写几个方面: 继承(extends)即子类继承父类,就好比玻璃杯.保温杯等子类继承了杯子这个父类,子 ...
- Java 常用 Collection 继承关系与接口实现
Java Collection List 接口 继承.接口实现关系: public interface List<E> extends Collection<E> 方法定义: ...
- Java学习笔记-基础语法Ⅶ-集合
集合 集合类特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 这里需要回顾一下,因为数组和字符串一旦创建,就不可改变,需要区分一下 import java.util.ArrayLi ...
随机推荐
- 【bzoj1726】Roadblocks
1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1578 Solved: 795[ ...
- json_encode 中文处理
在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存储格式. ...
- Spring使用_进阶
概述 本文主要写了几个关于Spring Aware,多线程,计划任务(定时任务),条件注解,组合注解,元注解,Spring测试的小例子以及关于@Enable*注解的工作原理的理解. Spring Aw ...
- phpmyadmin消除无法保存最近表的提示
运行 sudo dpkg-reconfigure phpmyadmin 重新配置phpmyadmin ip选择127.0.0.1,端口3306,"MySQL username for php ...
- 自定义Mega菜单的巧妙实现
查看了<云制造>官网源码,为其mega菜单的巧妙实现打call. 其另辟蹊径,采取父级主控分支的方法,仅对父级“增加/删除”控制标识,从而控制子层显示. <!DOCTYPE html ...
- JS小游戏
捕鱼达人 飞机大战游戏 详解javaScript的深拷贝 http://www.cnblogs.com/penghuwan/p/7359026.html
- Eclipse优化工具Optimizer for Eclipse
第一次看到是Optimizer for Eclipse是在InfoQ 然后使用了一下,发现不错啊,我的好几年的破本都能比较快的启动Eclipse了 好了,废话不说了,来介绍一下Optimizer fo ...
- 异步 Thread
Threads 最早的版本,微软推荐不要再使用Thread了thread不支持带返回值的方法本身也没有线程回调,但是可以自己做一个 private void btnThreads_Click(obje ...
- FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to controller/192.168.1.183:9000. Exiting. java.io.IOExcep
2018-01-09 09:47:38,297 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed ...
- 使用JDK自带的jmap和jhat监控处于运行状态的Java进程
对于处于运行状态中的Java进程,JDK自带了很多工具,允许Java开发人员监控运行进程中的各种状态,比如该进程内部创建了多少个对象实例,消耗了多少内存,等等. 本文基于JDK1.8而写成. 我下面写 ...