栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

静态变量和实例变量的区别,抽象类和接口的异同,equals&==

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

静态变量和实例变量的区别,抽象类和接口的异同,equals&==

静态变量和实例变量的区别
区别实例成员类成员
定义方式不同不使用static修饰的变量是实例成员使用static修饰的变量称为类变量,其本质上是一个全局变量
生命周期不同实例成员随着对象的创建而分配内存,随着对象的销毁而释放内存类成员随着类的加载而分配内存,随着类消失而释放内存。
数据存储位置不同实例成员存储在堆内存中类成员存储在方法区中(共享数据区)
调用方式不同实例成员只能被对象调用类成员可以被对象调用,还可以被类名调用
别名不同类成员也称为静态成员
初始化时机不同实例化对象时初始化类首次加载时初始化,优先于实例成员初始化
使用方式不同每一个对象都拥有自己的实例成员所有的对象共享一个类成员
调用规则不同实例方法内可以调用实例成员(实例变量、实例方法)和类成员(类变量、类方法)。类方法只能调用类方法,不能直接调用实例成员(实例变量、实例方法)。如果在类方法想调用实例成员必须创建对象,用对象去调用实例成员。
this和super的使用在实例方法内可以使用this和super关键字。在类方法内不能使用this,super关键字。

抽象类和接口的异同
区别抽象类接口
多继承子类只能继承一个直接抽象类子类可以实现多个接口
实现子类使用extends继承抽象类子类通过implements实现接口
成员1.抽象类中可以有实例成员(实例变量、实例方法) 2.静态成员(静态变量、静态方法) 3.抽象方法 4.内部类 5.抽象类中的成员方法没有default关键字修符。接口中只能有 1. 常量 2. 抽象方法 3. 有实现体的静态方法 4. 用default关键字修饰符的实现体方法 5. 内部类
成员变量修饰符抽象类中可定义变量,也可定义常量接口中只能定义常量(public static final修饰的变量)
子类实现子类在实现抽象方法时不允许缩小访问权限子类在实现抽象方法时必须指定public权限
构造函数抽象类可以有构造函数接口中不能定义构造函数
最高层类的最高层是Object接口没有最高层
相同点两者都不能实例化 都可以包含抽象方法

==和equals 的区别
  • equals是判断两个变量或者实例指向同一个内存空间的值是不是相同

  • == 若是基本数据类型,则直接比较其存储的 “值”是否相等; 若是引用类型,则比较的是所指向的对象的地址

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644067.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号