面向对象基础部分

一:面向对象与面向过程

  • 都是解决问题的方式,都是代码的组织形式。
  • 宏观上使用面向对象把握(把握复杂性),微观上使用面向过程实现(落地离不开面向过程)

    二:对象是什么

  • 数据无需管理时:
    1.整个程序变量很少,无需做过多的管理(a+b=c)
    2.用一个数组管理一个班的年龄
    3.一个班的学生,除了年龄,还有名字,又来一个数组,还是不科学,因此需要一个叫做学生的对象,把年龄名字放进去,这样就可以很好的描述每一个学生。
    对象是用来做数据管理的

    三:对象和类

  • 类是对象的模板,图纸,是对象的抽象。
  • 对象具有属性和方法。

    四:对和类的底层分析(简单)

    虚拟机内存可以简单分成 栈 堆 方法区(也是堆)
    栈:
    方法执行的内存模型,每个线程一个栈,线程私有 无法共享

    堆用来存储创建好的对象和,整个jvm只有一个堆
    方法区
    整个jvm也只有一个 存储不变或者唯一的东西(类的信息 静态变量 字符串常量)
    image.png

    五:构造器

    类创建时需要做的一些准备工作,构造器大多时候都需要重载。

    六:垃圾回收机制(初步)

    c++ 自己收桌子 当使用内存的人不自己收拾掉东西,不久就没桌子吃饭了
    java 垃圾回收机制 有个服务员 当桌子没人吃的时候 把桌子清理干净
    垃圾回收机制步骤
    发现垃圾 清理垃圾
    常见算法
    1.引用计数法
    2.引用可达法
    垃圾回收过程:
    image.png
    jvm调优
    一般针对full gc 进行调优
    image.png

    七:静态变量与静态方法

    静态变量与静态方法从属于类,在对象创建前就有了,类加载时放在了方法区。

猜你喜欢

转载自www.cnblogs.com/shuzi0806/p/12233845.html