全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java中static的特点

前两天面试时被问到静态的特点,当时回答地不是很好,现在来总结一下

在了解某样东西的时候我们通常会从它是什么,为什么,和怎么样在三方面来衡量,对于java中的static,我们也这样讨论下,要明确以下几点:

1、 static在java中到底代表什么,为何要用它?

2、 static在java中怎么用?

3、 static 有那些特点和使用的“局限”?

4、当成员变量被静态修饰后,和非静态成员变量的区别?

1、 static在java中到底代表什么,为何要用它?

static――静态――“指定位置“

首先,我们来看看java的内存:java把内存分为栈内存和堆内存,栈内存用来存放一些基本类型的变量和数组及对象的引用变量,而堆内存主要是来放置对象的。

用 static的修饰的变量和方法,实际上是指定了这些变量和方法在内存中的“固定位置”-static storage。既然要有“固定位置”那么他们的 “大小”似乎就是固定的了,有了固定位置和固定大小的特征了,在栈中或堆中开辟空间那就是非常的方便了。如果静态的变量或方法在不出其作用域的情况下,其引用句柄是不会发生改变的。

我们常看到:static变量有点类似于C中的全局变量的概念;静态表示的是内存的共享,就是它的每一个 实例都指向同一个内存地址。把static拿来,就是告诉JVM它是静态的,它的引用(含间接引用)都是指向同一个位置,在那个地方,你把它改了,它就不会变成原样,你把它清理了,它就不会回来了。

注:java的主类中main()方法本身就是一个static的,所以main方法的执行就是在没有产生新的实例的情况。

2、 static在java中怎么用?

  • static是一个修饰符,用于修饰成员(成员变量和成员函数)。
  • 当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用:类名.静态成员。

3、 static 有那些特点和使用的“局限”?

(一)特点

  • 静态成员随着类的加载而加载;
  • 静态成员优先于对象存在;
  • 静态成员被所有对象所共享;
  • 静态成员多了一个中调用方式,可以被类名直接调用。

(二)利弊

利:

  • 对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份;
  • 可以直接被类名调用。

弊:

  • 生命周期过长;
  • 访问出现局限性,只能访问静态。

(三)注意事项

  • 静态方法只能访问静态成员, 非静态方法既可以访问静态又可以访问非静态;
  • 静态方法中不可以定义this,super关键字;(因为this代表是对象,而静态存在时,有可能没有对象,且静态优先于对象存在。所以静态方法运行时,this是没有任何对象代表的。 简单说,先进内存的数据不可以访问后进内存的数据,可是后进内存数据可以访问先进内存的数据)
  • 主函数是静态的

4、当成员变量被静态修饰后,和非静态成员变量的区别?

  • 静态变量也称为类变量,也就是直接可以被类名调用的变,这个变量是所属于类的;非静态变量称为成员变量,或者实例变量,是被对象调用的,是所属具体对象的。
  • 静态变量随着类的加载而加载,也意味着随着类的消失而消失,生命周期最长;实例变量,随着对象的创建而加载,随着对象的消失而消失,按照对象的生命周期而存在。
  • 静态变量存储在方法区的静态区中;实例变量存在于对象所属的堆内存中。
  • 静态变量数据,被所有对象所共享;实例变量是对象中的特有数据。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# java  # static  # Java应用程序开发学习之static关键字应用  # java中staticclass静态类详解  # 浅谈Java中static和非static的区别  # java中的static{}块的实例详解  # java中static关键字用法详解  # 浅析对Java关键字final和static的理解  # Java static关键字详细介绍与用法总结  # Java中的Static class详解及实例代码  # 浅谈Java中static关键字的作用  # 加载  # 把它  # 它是  # 要用  # 它就  # 的是  # 都是  # 是一个  # 他们的  # 很好  # 还可以  # 不出  # 有可能  # 句柄  # 没有任何  # 是指  # 要有  # 不可以  # 来看看  # 可以直接 


相关文章: 清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  建站之星如何实现网站加密操作?  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  网站制作员失业,怎样查看自己网站的注册者?  电商网站制作公司有哪些,1688网是什么意思?  如何选择建站程序?包含哪些必备功能与类型?  如何通过建站之星自助学习解决操作问题?  如何在建站宝盒中设置产品搜索功能?  行程制作网站有哪些,第三方机票电子行程单怎么开?  建站之星2.7模板:企业网站建设与h5定制设计专题  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  如何在香港服务器上快速搭建免备案网站?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  网站制作服务平台,有什么网站可以发布本地服务信息?  建站之星如何实现PC+手机+微信网站五合一建站?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  制作门户网站的参考文献在哪,小说网站怎么建立?  建站之星免费模板:自助建站系统与智能响应式一键生成  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  c# 在ASP.NET Core中管理和取消后台任务  如何配置FTP站点权限与安全设置?  如何在阿里云高效完成企业建站全流程?  建站之星导航配置指南:自助建站与SEO优化全解析  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  建站之星代理商如何保障技术支持与售后服务?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  建站之星导航如何优化提升用户体验?  如何通过老薛主机一键快速建站?  北京网站制作公司哪家好一点,北京租房网站有哪些?  C++时间戳转换成日期时间的步骤和示例代码  香港服务器建站指南:免备案优势与SEO优化技巧全解析  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  制作宣传网站的软件,小红书可以宣传网站吗?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  高端云建站费用究竟需要多少预算?  建站主机选哪家性价比最高?  广州营销型建站服务商推荐:技术优势与SEO优化解析  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何挑选最适合建站的高性能VPS主机?  内网网站制作软件,内网的网站如何发布到外网?  如何高效生成建站之星成品网站源码?  股票网站制作软件,网上股票怎么开户?  如何用花生壳三步快速搭建专属网站?  南京网站制作费用,南京远驱官方网站?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  建站之星如何快速生成多端适配网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。