Java自我思考-面向对象'

1.数组存在的作用?

由于数据都是存储在内存中,而我们需要获取到数据的值(变量的值),数组被归纳为一种数据结构,方便我们对存储在内存中的数据操纵和获取。不然我们就只能通过地址去获取;

int[][] arr = new int[3][3]一个二维数组,是通过一个一维数组在管理一个二维数组,嵌套管理。
arr值为[[i@343ced ,一个[代表一维数组,[[代表二维数组,@343cde实体的哈希值。
arr[0]null,如果我们不给arr[0]初始化,那么在使用的时候会有NullPinterException.

为什么要分堆内存和栈内存?

堆和栈其实是一种数据结构, 堆类似树一样的数据结构,我的理解是分散排列的,java通过new 对象就是分配在堆中. 栈是一种先进后出的数据结构,我们程序需要运行,就需要读取内存,而我们的程序读取的就是栈内存当中的数据. 我们的基本数据类型是存储在栈内存中的,当然栈中也可以存储一份我们在堆中开辟内存对象的引用.

一些混淆的关键字

static,静态关键子,让该代码块或者变量在类加载的时候加载;

this:代表当前类的应用,使用一般是在局部变量和成员变量名相同的时候.

super:在继承中用得比较多. A extends B 类,A中构造函数会默认有一行super()其实就是调用父类的构造函数. 如果我们自己修改了构造函数的参数如super(1)那么就会调用父类中相应构造函数. 我们在@overide复写父类函数的时候.可以通过super来决定什么时候调用父类的方法. 这个关键字在我理解看来解决了我们在对继承中父类中的方法什么时候调用或者不调用的弊端. 比如我们可以在父类定义一些方法.来控制逻辑;

fina:被修饰了类或者方法,变量其实就变成了一个常量,只能被初始化一次.

多态的作用?

多态对于我来说, 我的理解增加了类的可复用性, 有时候我们需要定义一些接口,然后让其子类实现, 让后赋值给父类,那么父类就可以调用子类中的方法, 注意:在多态中子类的成员变量在运行的时候主要看 = 左边的值,也就是真正持有该对象的成员变量的值;

enter image description here
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,614评论 4 12
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,690评论 0 11
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,373评论 11 349
  • 老实讲我有那几分钟真的很想投入你的怀抱 但无休止的幼稚无休止的不忍让让我筋疲力尽 我再也没有力气拥抱你 再见对我们...
    Trusti阅读 130评论 0 0