• 流行的编程思维_面向对象-1


    流行的编程思维_面向对象-1

    问题:

    • java面向对象的特征有哪些?
    • 面向对象与面向过程的区别是什么?
    • 基本数据类型与引用类型的区别有哪些?
    • 方法重载和方法重写的区别是什么?

    说到面向对象,就得和比较一下面向过程

    • 面向过程是结构化开发,面向功能划分的软件结构

    • 从上到下,按步执行,最小的粒度是方法

    • 代码一次成型,后续修改非常麻烦,

    • 制约了软件的可维护性和可扩展性

    面向对象开发

    • 把软件系统看成各种对象的集合
    • 系统结构稳定,由于java是单继承,可以多实现接口(特殊的抽象类)就多态了。
    • 子系统相对独立,由于面向对象有封装的特性。
    • 软件的可维护性,可扩展性强,由于面向对象有继承,多态的特性。

    面向过程编程关注点在于每一个细节,每一步的具体操作。
    面向对象关注点在于整个事件的参与对象,将系统中的
    参与者全部看成模块化的对象。

    面向对象程序设计(Object Oriented Programming)OOP
    就是把世间万物都看成一个个对象,
    OOP是一种编程思想,思维模式,将程序中的所有参与者
    模块化为对象,然后通过各种对象之间的相互作用关系来
    完成程序的需求。

    类和对象

    • 类的静态特征通过属性来描述

      • 成员变量:定义在类中,方法体外的变量,属性,在堆中,会默认赋初值,作用域在整个类可见。
      • 局部变量:定义在方法体中的变量,在栈中,不会默认赋初值。double float:0.0
    • 类的动态功能通过方法来描述

      • 访问权限修饰符(public) 返回值类型(int) 方法名(参数列表-实质上是一个数组)
      • 方法重载-只在一个类中,重写-继承-接口,关系两个以上类
    • 每一个类都有一个默认的无参构造方法,该方法不需要创建,由类自动生成。

      • this(参数):只能在构造方法中使用,不能在普通方法中使用,并且必须写在构造方法的第一行。
    • 如果手动在类中创建一个有参构造,会将默认的无参构造抹掉

    • 类是静态的,写完之后就存在于硬盘中。

      • this关键字:指当前类
      • JVM中类只有一份,对象有多份。
    • 对象是动态的,随着程序的运行而创建,同时随着程序的关闭而销毁。

      • 垃圾回收机制GC:是一个独立的巡查线程,GC是一个定时任务,隔一段时间执行一次。
        GC线程随着main线程创建,也随main线程销毁而销毁。

    基本数据类型与引用类型

    基本数据在栈内存中开辟空间,同时直接将具体数值保存在栈中。

    引用类型在栈中开辟空间,同时在堆中创建对象,将堆内存的地址保存在栈中,初始值都是null。

    静态static

    类是构成Java程序的单位,Java程序通过类来组织其结构。
    对象是Java程序在运行时的单位,运行期间的Java程序是通过多个对象之间的相互作用关系来完成需求,动态。

    开发代码时,是通过编写类来完成程序的需求。
    程序在运行期:1.将编写好的类加载到JVM中,有了模版。
    2.根据需求通过模版(类)来创建对应的对象,完成业务需求。

    public class Application {
        //只有静态成员变量(类的所以对象共享),没有静态局部变量
        static int a;
        //1
        static {
            System.out.println("JVM在类初始化的时候只加载一次");
        }
        //2
        {
    
        }
        //3
        public Application(){
    
        }
    }
    

    JMM

    独占区就是线程自己的方法栈,线程公享区指的是方法区和堆。实例方法存储在方法栈中,静态方法存储在方法区中。

    对于线程来说,线程中有多个类的对象,共享区确实是堆和方法区






    备注:






  • 相关阅读:
    POJ 1251 Jungle Roads
    1111 Online Map (30 分)
    1122 Hamiltonian Cycle (25 分)
    POJ 2560 Freckles
    1087 All Roads Lead to Rome (30 分)
    1072 Gas Station (30 分)
    1018 Public Bike Management (30 分)
    1030 Travel Plan (30 分)
    22. bootstrap组件#巨幕和旋转图标
    3. Spring配置文件
  • 原文地址:https://www.cnblogs.com/k-class/p/13679437.html
Copyright © 2020-2023  润新知