• Java面向对象


    • 面向过程和面向对象的区别
      1、面向过程:主要关注点是实现的具体过程,因果关系。
      优点:对于业务逻辑比较简单的程序,可达到快速开发,前期投入成本较低。
      缺点:采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的方式导致软件元素之间的“耦合度”非常高,只要其中一环出了问题,整个系统受到影响,导致最终的软件“扩展力”差。另外,由于没有独立的概念,所以无法达到组件复用。
      2、面向对象:主要关注点是对象【独立体】能完成哪些功能。
      优点:耦合度低,扩展力强。更容易解决现实世界中更复杂的业务逻辑。组件复用性强。
      缺点:前期投入成本较高,需要进行独立体的抽取,大量的系统分析与设计。
    • 面向对象的三大特征
      封装
      继承
      多态
      (所有面向对象的编程语言都有这三大特征)
      从软件的开发生命周期来看,基于面向对象可以分为三个阶段:
      OOA(面向对象的分析)
      OOD(面向对象的设计)
      OOP(面向对象的编程)
    • 类和对象的概念
      对象:对象是实际存在的个体,对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
      类:在现实世界中是不存在的,类是一个模板,它描述一类对象的行为(方法)和状态(属性)。类代表了一类事物。
    • 类的定义
      1、语法结构:
      [修饰符列表] class 类名{
      属性;
      方法;
      }
      2、学生类:描述所有学生对象的共同特征
      学生对象有哪些状态信息:
      学号【int】
      姓名【String】
      性别【Boolean】
      ...
      学生对象有哪些动作信息:
      吃饭
      睡觉
      学习

      ...
      注:属性通常是采用一个变量的形式来完成定义的。
      int age;
      String name;
      boolean sex;
      ...
    • Java语言中包括两种数据类型:
      1、基本数据类型
      byte
      short
      int
      long
      ...
      2、引用数据类型
      举例:int age = 10;
      String username = "zhangsan";
      Student s = ???;

    String.class SUN提供的
    System.class SUN提供的
    User.class 程序员自定义的
    Student.class 程序员自定义的
    Product.class 程序员自定义的
    ...
    Java语言中所有的class都属于引用数据类型。

    • 对象的创建和使用
      int i = 10;
      Student s = new Student();
      1、int是基本数据类型,i是变量名,10是一个int类型的字面值
      2、通过一个类可以实例化N个对象,实例化对象的语法:new 类名();
      3、new是Java语言中的一个运算符,new运算符的作用是创建对象,在JVM堆内存中开辟新的内存空间。
      4、方法区内存:在类加载的时候,class字节码代码片段被加载到该内存空间当中。
      栈内存(局部变量):方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈。
      堆内存:new的对象在堆内存中开辟的内存空间称为对象。
      5、Student是一个引用数据类型,s是一个变量名,new Student()是一个学生对象,s是一个局部变量【在栈内存中储存】。
      6、什么是对象?new运算符在堆内存中开辟的内存空间称为对象。
      什么是引用?引用是一个变量,只不过这个变量(s)中保存了另一个Java对象的内存地址。
      7、Java语言中,程序员不能直接操作堆内存,因为Java没有指针;只能通过“引用”去访问堆内存当中对象内部的实例变量。
      8、访问实例变量的语法格式:
      读取数据:引用.变量名(例:int stuAge=s.age)
      修改数据:引用.变量名 = 值(例:s.age = 10)
    • JVM主要有三块内存空间:栈内存、堆内存、方法区内存
      1、栈内存中储存局部变量;
      堆内存中储存实例变量;
      方法区内存中储存代码片段和静态变量。
      2、变量分类:
      局部变量【方法体中声明】
      成员变量【方法体外声明】
      :实例变量(前面的修饰符没有static)和静态变量(前面的修饰符有static)
    • 垃圾回收器【垃圾回收机制、GC机制】
      1、什么时候会考虑将某个Java对象的内存回收呢?
      当堆内存当中的Java对象成为垃圾数据的时候,会被垃圾回收器回收。
      2、什么时候堆内存中的Java对象会变成垃圾呢?
      没有更多的引用指向它时。(这个对象无法访问,因为访问对象只能通过引用的方式访问)
      3、所以空引用访问“实例”相关的数据一定会出现空指针异常。(错误会显示“java.lang.NullPointerException”)
      “实例”相关的数据表示:这个数据访问的时候必须有对象的参与,这就是实例相关的数据。
  • 相关阅读:
    【解决】Ubuntu命令行弹出光驱的方法
    【8086汇编基础】02寻址方式和MOV指令
    【8086汇编基础】03变量、数组和常量的处理
    Ubuntu12.10 内核源码外编译 linux模块编译驱动模块的基本方法
    【8086汇编基础】05常用函数库文件emu8086.inc
    Ubuntu12.10 使用DNW传数据 进行ARM开发板烧写
    【8086汇编基础】04中断
    【8086汇编基础】01汇编语言简要介绍
    飞凌OK6410开发板移植uboot官方最新版uboot2012.10.tar.bz2
    【8086汇编基础】00基础知识各种进制的数据
  • 原文地址:https://www.cnblogs.com/yu011/p/12632563.html
Copyright © 2020-2023  润新知