• Java基础 | 关于面向对象三大特征与内存回收


    面向对象有三大特点:封装、继承、多态。(如果要回答四个,可加上抽象性这一特点)

    1.Java的继承性:

    继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表

    述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新

    类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可

    以修改或增加新的方法使之更适合特殊的需要。

    2.Java的封装性:

    封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象

    计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,

    这些对象通过一个受保护的接口访问其他对象。

    3.Java的多态性:

    多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和

    包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的

    解决了应用程序函数同名问题。

    4.Java的抽象性:

    抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前

    目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时

    不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

    分配:由 JVM 自动为其分配相应的内存空间

    5.Java的垃圾回收

    释放:由 JVM 提供垃圾回收机制自动的释放内存空间

    垃圾回收机制(GC:Garbage Collection):将垃圾对象所占用的堆内存进行回收。

    Java 的垃圾回收机制是 JVM 提供的能力,由单独的系统级垃圾回收线程在空闲

    时间以不定时的方式动态回收。

    垃圾对象:不再被任何引用指向的对象

    public class TestGC{ 
     public static void main(String[] args)throws Exception{ 
      for(int i=0; i<10; i++){ 
       MyClass m = new MyClass();//这里本次循环完,本次创建的对象就成为垃圾了 
       System.out.println("创建第" + (i+1) + "的对象:" + m); 
      } 
    
      //通知垃圾回收机制来收集垃圾 
      System.gc(); 
    
      //为了延缓程序结束 
      for(int i=0; i<10; i++){ 
       Thread.sleep(1); 
       System.out.println("程序在继续...."); 
      } 
     }
    class MyClass{ 
     //这个方法是垃圾回收机制在回收它的对象时,自动调用,理解成对象留临终遗言的方法 
     public void finalize(){ 
      System.out.println("轻轻的我走了....."); 
     } 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    注意:调用了 System.gc();或 Runtime.getRuntime().gc();后不是立刻执行垃圾回收,该调用并不会立刻启动垃圾回收机制开始回收,但会加快垃圾回收机制的运行。

    这个方法是垃圾回收机制在回收它的对象时,自动调用,理解成对象留临终遗言的方法。

  • 相关阅读:
    从一道算法题到Map再到for...of的执行原理
    Sentinel源码剖析之初始化
    Cisco Secure Firewall Management Center Virtual Release 7.2.0
    苹果U盘格式化了怎么恢复
    附参考文献丨艾美捷Cholesterol胆固醇说明书
    CentOS挂载:解锁文件系统的力量
    QGIS编译(跨平台编译)之五十:Linux环境下安装Python、pyqt5、pyqt5-tools等
    全栈性能测试详解
    IO流总结
    java mvn install导致RELEASE包不同环境不一致导致依赖冲突
  • 原文地址:https://blog.csdn.net/Huangjiazhen711/article/details/126768950