• java基础知识备忘


    1.java内存分配

      a.寄存器cup  --  暂不涉及

      b.本地方法栈   --  虚拟机调用windows功能用的,比如创建文件夹

      c.方法区     --  存放 .class文件,负责存放方法

      d.栈      --   负责运行方法(运行时从方法区拷贝一份到栈)

      e.堆        --   创建并存放对象(new出来的对象)

    2.栈和堆的区别

      a.存储内容   栈-方法 堆-对象

      b.默认值  栈-无默认值  堆-有默认值 (所以成员变量不需初始化赋值,局部变量必须赋值 )

      c.生命周期 栈-方法执行完毕弹出  堆-对象使用完毕,等待虚拟机回收 (堆>栈)

    3.类和对象

      a.类 - 类是具备某些共同特征的实体的集合,它是一种抽象的概念,比如人类

      b.对象 - 所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。

      类是对象的集合,对象是类的实例(人是类,张三就是具体的对象)

    4.成员变量和局部变量的区别

      a.定义位置不同  成员变量 - 类  局部变量 - 方法

      b.默认值     成员变量 - 跟随类在堆中存储,有默认值;  局部变量 - 跟随方法进栈,无默认值,使用必须手动赋值

    5.方法的重载与重写

      重写 - 又称为覆盖,对于继承而言,子类对父类方法的重写或者扩展,方法名,返回值类型必须一致

      重载 - 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型(构造方法为例)。

    6.代码块

      a.局部代码块 - 基本不用,限制局部变量生命周期的

      b.静态代码块 - 类中 建立对象运行一次,以后不在运行,只要类进内存,就运行

      c.构造代码块 - 类中 每new一次对象,就会运行

      运行顺序   静态代码块 > 构造代码块 > 构造方法

    7.继承

      继承好处:
        代码少了,减少编写量
        子类可以扩展父类的功能
        继承使类与类产生了关系,有了这个关系导致了面向对象第三个特征多态

      注意事项:
        单继承,多层继承;一个类只能继承一个父类(一个孩子只能有一个爹,一个爹可以有多个孩子)

        只能继承父类非私有的成员变量和方法(如果父类加private,子类不知道)

      继承后子父类成员变量的关系:

        就近使用原则,如果子类有,使用自己的,没有找父类

      

      总结子类父类构造方法的特点:
        1. 子类所有构造方法第一行就是super(),调用父类空参数构造方法
        2. 如果父类中没有空参数构造方法,子类构造方法必须手写super传递参数,否则编译失败
        3. 子类构造方法写this或者super,选择一个,保证子类可以间接或者直接访问过父类空参数构造

        子类所有构造方法,无论如何必须访问过父类构造方法,因为子类需要看到父类成员时怎样初始化的

      

     8.多态

      多态细节: 

        快速记忆办法: Fu f = new Zi();
        除了非静态的成员方法以外,编译运行都看左边
        只有非静态成员方法,编译看左边,运行看右边


       为什么编译看左边
        javac 编译工具,源文件编译成JVM识别的class文件
        检查语法错误
        Fu f = new Zi();
        f.x  只能检查Fu这个类,检查不到 = 右边的对象 (对象建立是运行时期的事情)

        为什么只有非静态的成员方法,运行是子类重写
        其他的运行全是父类呢 -- 设计思想就是扩展子类
        Fu f = new Zi();
        f.XXXX

      

       

  • 相关阅读:
    3. Node.js REPL(交互式解释器)
    2. npm 的使用
    hdu 6155 - Subsequence Count
    蒟蒻ACMer回忆录 · 一段弱校ACM的奋斗史
    Codeforces731F Video Cards
    Codeforces731E Funny Game
    Codeforces731D 80-th Level Archeology
    Codeforces732F Tourist Reform
    Codeforces732E Sockets
    Codeforces732D Exams
  • 原文地址:https://www.cnblogs.com/hcl1991/p/6373804.html
Copyright © 2020-2023  润新知