静态变量和实例变量的区别有哪些?

静态变量和实例变量可能大多数同学用的比较多,但是相关阐述并不是很常见,尤其对新手同学可以不能清楚表达。

静态变量和实例变量也是最经常遇到的一个基础java面试题,不管原来知道不知道,现在告诉你,赶紧记牢面试无忧!

静态变量和实例变量的区别

静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。在Java开发中,上下文类和工具类中通常会有大量的静态成员。

涉及java知识点分析

java 静态变量(类变量)

标记一个变量为static,则该变量在内存中有不变的位置,相当于全局变量,所有类的实例都访问同一个存储变量区域。对其修改对于所有类的实例来说都是可见和一致的。
静态变量特点:
* 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。
* 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
* 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
* 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
* 静态变量在程序开始时创建,在程序结束时销毁。
* 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
* 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
* 静态变量可以通过:ClassName.VariableName的方式访问。
* 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

java 实例变量(全局变量)

实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰。
实例变量(全局变量)特点
* 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
* 当一个对象被实例化之后,每个实例变量的值就跟着确定;
* 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
* 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
* 实例变量可以声明在使用前或者使用后;
* 访问修饰符可以修饰实例变量;
* 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
* 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;实例变量可以直接通过变量名访问。

希望对大家有所帮助。

常见Java面试题之静态变量和实例变量的区别相关推荐

  1. 常见Java面试题 BIO、NIO、AIO 有什么区别?

    BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低. NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通 ...

  2. 「面试必备」常见Java面试题大综合 马云见了都点赞

    一.Java基础 1.Arrays.sort实现原理和Collections.sort实现原理 答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSor ...

  3. 2021年面试,整理全网初、中、高级常见Java面试题

    面试题答案私信[面试]即可获取,500+道面试题.内容中包含基础.集合.并发.JVM.Spring.Spring MVC.Spring Boot.Spring Cloud.Dubbo.MySQL.Re ...

  4. 2021年面试,整理全网初、中、高级常见Java面试题附答案

    此为部分面试题包含答案,更多面试题见微信小程序 "Java精选面试题",3000+道面试题.内容持续更新中包含基础.集合.并发.JVM.Spring.Spring MVC.Spri ...

  5. java线程安全问题之静态变量、实例变量、局部变量

    转载 java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同<java并发编程实践>中所说: 写道 给线程安全下定义比较困难.存在很多种定 ...

  6. java 线程安全问题之静态变量、实例变量、局部变量

    2019独角兽企业重金招聘Python工程师标准>>> java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同<java并发编 ...

  7. Java静态变量和实例变量

    一.静态变量 在之前我们学习了变量可以分为局部变量(方法中定义的)和成员变量(成员变量是在类中定义的),其中成员变量又可以细分为两种:静态变量和实例变量. 静态变量是使用static 修饰的成员变量( ...

  8. java三大变量——静态变量、实例变量、局部变量

    文章目录 前言 一.java中变量分类 二.三者的区别与联系 1.静态变量.实例变量.局部变量区别 2.成员变量的两种细分类型的区别 总结 前言 变量是内存当中存储数据最基本的单元,将数据(字面量)放 ...

  9. java静态变量实例变量_java中静态变量和实例变量的区别

    实例变量:只有在创建了实例对象之后才会被分配空间,才可以使用 静态变量:不需要创建实例对象就可以直接使用类名进行引用 public class Different { public static in ...

最新文章

  1. C++:名字空间的使用
  2. linux虚拟终端快捷键
  3. 简单介绍常用hadoop dfs命令
  4. 产品经理必备知识之网页设计系列(一)-创建出色用户体验
  5. lua 获取时分秒_PMON学用命令
  6. 微服务架构的终极模式?
  7. TensorFlow学习笔记(四)自己动手求Weights和biases
  8. 数据库:跨数据库,服务器数据迁移
  9. 艺术美的价值是什么?
  10. 第四章节 窗体应用(Form窗体)
  11. mysql查看表注释和字段注释
  12. linux scp命令 将数据从一台linux服务器复制到另一台linux服务器
  13. 何为裂变?上百个裂变营销活动让我揭开了其神秘面目!
  14. Hive中自定义函数详解
  15. 华硕ROG|玩家国度 魔霸7Plus G713PV win11原厂系统 带ASUS Recovery
  16. 实验五 java gui(预习报告)
  17. Swift学习之--TableView的基本使用
  18. 2022前端知识整理:十、vue基础
  19. 神马笔记 版本1.8.0——删除笔记/文件夹·代码篇
  20. 少儿知识付费做好内容是关键

热门文章

  1. oracle10g sys密码忘记,Oracle 10g忘记system,sys密码的解决办法。
  2. 01背包问题从简单到复杂
  3. HP Z240组建磁盘阵列RAID1
  4. Spark记录-Scala语法基础
  5. [Spoj]Counting Divisors (cube)
  6. Android中进程与线程
  7. Flash务实主义(五)——AS3的垃圾回收(转)
  8. 日美“利刃”联合军演
  9. 45 | 答疑(五):网络收发过程中,缓冲区位置在哪里?
  10. html div百分比计算,css计算元素百分比大小