• Java类和对象


    ■ 类的三要素:属性(field)、构造器(constructor)和方法(method)。
    ■ 内存分析:
      栈:
        ①每个线程私有,不能实现线程间的共享!
        ②局部变量存放于栈中。
        ③栈是由系统自动分配,速度快!栈是一个连续的内存空间!
      堆:
        ①放置new出来的对象!
        ②堆是一个不连续的内存空间,分配灵活,速度慢!
      方法区:
        ①被所有线程共享!
        ②用来存放程序中永远是不变或唯一的内容。(类代码信息。静态变量、字符串常量)
    ■ 属性(field,或者叫成员变量)
      属性用于定义该类对象包含的数据或者静态属性。
      属性作用范围是整个类体。
      在定义成员变量时可以对其初始化没如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0,char:u0000,boolean:false,所有引用类型:null)
      属性定义格式:[修饰符] 属性类型 属性名 = [默认值]
    ■ 引用类型
      Java语言中除基本类型之外的变量类型都称之为引用类型。
      Java中的对象是通过引用对其操作的。
    ■ 类的方法
      方法用于定义该类或该类的实例行为特征和功能实现。方法是类和对象行为特征的抽象。
      方法类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成;面向对象中,整个程序的基本单位是类,方法是从属于类的。
      方法定义格式:
        [修饰符] 方法返回值类型 方法名(形参列表){
          //n条语句
        }
    ■ 对象的创建和使用
      ①必须使用new关键字创建对象 
      ②使用对象(引用).成员变量来引用对象的成员变量。
      ③使用对象(引用).方法(参数列表)来调用对象的方法。
      ④同一类的每个对象有不同的成员变量存储空间。
      ⑤同一类的每个对象共享该类的方法。
    ■ 构造器(或者叫构造方法,constructor)
      构造器用于构造该类的实例。
      Java通过new关键字来调用构造器,从而返回该类的实例。
    ■ 垃圾回收(Garbage Collection)
      Java的内存管理实际上指的是对对象的管理,其中包括对象空间的分配和释放。
      对象空间的分配:
      使用new关键字创建对象即可。
      对象空间的释放:
        将对象赋值null即可。垃圾回收器将负责回收所有“不可用”对象的内存空间。
      要点:
        ①程序员无权调用垃圾回收器。
        ②程序员可以通过System.gc()方法通知GC运行,但Java规范并不保证立刻运行。
        ③finalize是Object类的一个方法,在垃圾收集器执行的时候会掉用被回收对象的finalize()方法,该方法可被覆盖用于回收其他资源(关闭文件等),但JVM不保证此方法总被调用。
    ■ 方法的重载(overload),构造方法的重载
      ①方法的重载是指一个类中可以定义具有相同名字,但参数列表不同的多个方法。调用时,会根据不同的参数列表选择对应的方法。
      ②方法调用时,匹配离得最近的类型。
      ③不同的含义:类型、个数、顺序不同
      ④只有返回值不同不构成方法的重载
      ⑤只有形参的名称不同不构成方法的重载
      ⑥与普通方法一样,构造方法也可以重载
    ■ this关键字
      普通方法中,this总是指向调用该方法的对象。
      构造方法中,this总是指向正要初始化的对象。
      this最常用的用法:
        ①让类中的一个方法访问该类的另一个方法或属性。
        ②使用this关键字调用重载构造方法。避免相同的初始化代码,只能在构造方法中用,并且必须位于构造方法的第一句。
        ③this不能用于static方法。
    ■ static关键字
      ①在类中,用static声明的成员变量为静态成员变量。它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化。对于该类的所有对象来说,static成员变量只有一份,被该类的所有对象共享。可以使用“对象.属性”来调用。不过,一般都是用“类名.属性”。
      ②用static声明的方法为静态方法,不需要对象,就可以调用(类名.方法名),在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
      ③可以通过对象引用或类名(不需要实例化)访问静态成员。
    ■ 静态初始化块(经常用来初始化类,加载类信息时执行!)
      执行顺序:先执行Object类的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。

  • 相关阅读:
    根据nba数据预测17-18总冠军(转)
    mysql删除数据(delete)之后如何释放磁盘空间
    base64加密常用命令
    mysqldump报错:Error 2013: Lost connection to MySQL server during query when dumping table `mng_fdbk_reply` at row: 444087
    rsync安装配置与使用
    find 命令日常使用
    使用XtraBackup全量备份还原
    lvs 虚IP 轮训配置
    mysql-binlog 日志清理
    查看mysql正在执行的sql进程
  • 原文地址:https://www.cnblogs.com/lxcmyf/p/6525504.html
Copyright © 2020-2023  润新知