资讯专栏INFORMATION COLUMN

static关键字,面试经常被问到!(一)

marek / 554人阅读

摘要:方法静态方法可以直接通过类名调用,任何的实例也可以调用因此静态方法中不能用和关键字,不能直接访问所属类的非静态变量和非静态方法,只能访问所属类的静态成员变量和静态成员方法。

static可以理解为全局的。
static可以修饰: 变量,方法,代码块,内部类。

static变量
被static修饰的变量,叫静态变量或类变量;static的变量一直只有一个,被所有对象共享。
*对于静态变量在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问(但是这是不推荐的)。
对于实例变量,每当创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响(灵活)。*

static方法
静态方法可以直接通过类名调用,(任何的实例也可以调用)
因此静态方法中不能用this和super关键字,不能直接访问所属类的非静态变量和非静态方法,只能访问所属类的静态成员变量和静态成员方法。(因为非静态变量和非静态方法都是需要对象来调用的)
例如为了方便方法的调用,Java API中的Math类中所有的方法都是静态的,而一般类内部的static方法也是方便其它类对该方法的调用。

static代码块
static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。

static内部类
静态内部类可以创建静态的成员,而非静态的内部类不可以,静态内部类只可以访问外部类中的静态成员变量与成员方法,而非静态的内部类即可以访问所有的外部类成员方法与成员变量。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67090.html

相关文章

  • 3个经常问到的 JavaScript 面试

    摘要:更高效的解决方案是将一个事件侦听器实际绑定到父容器上,然后在实际单击时可以访问每个确切元素。如果将事件侦听器绑定到窗口滚动事件上,并且用户快速滚动页面,事件很可能会在短时间多次触发。 原文链接 问题 #1: 事件委托 事件委托,也叫事件委派,事件代理。 当构建应用程序时,有时需要将事件监听器绑定到页面上的某些元素上,以便在用户与元素交互时执行某些操作。 假设我们现在有一个无序列表: ...

    Galence 评论0 收藏0
  • Javascript 面试经常问到的三个问题!

    摘要:相反,在讨论时,面试中通常会提到三件事。而认为最后一个参赛者说了算,只要还能吃的,就重新设定新的定时器。试想,如果用户的操作十分频繁他每次都不等设置的时间结束就进行下一次操作,于是每次都为该用户重新生成定时器,回调函数被延迟了不计其数次。本文不是讨论最新的 JavaScript 库、常见的开发实践或任何新的 ES6 函数。相反,在讨论 JavaScript 时,面试中通常会提到三件事。我自己...

    chnmagnus 评论0 收藏0
  • post和get的区别,面试经常问到!(二)

    摘要:了解历史和是与服务器交互的方式,说到方式,其实总共有四种。区别分析把请求的数据放在上,即协议头上,其格式为以分割和传输数据,参数之间以相连。在浏览器回退时是无害的,会再次提交请求。请求只能进行编码,而支持多种编码方式。 了解历史 get和post是HTTP与服务器交互的方式, 说到方式,其实总共有四种: post、delete、put、get。 他们的作用分别是对服务器资源的增、删、改...

    vvpvvp 评论0 收藏0
  • Javascript 面试经常问到的三个问题!

    摘要:相反,在讨论时,面试中通常会提到三件事。通过对事件对应的回调函数进行包裹以自由变量的形式缓存时间信息,最后用来控制事件的触发频率。而认为最后一个参赛者说了算,只要还能吃的,就重新设定新的定时器。 showImg(https://segmentfault.com/img/bVboH5x?w=1000&h=750); 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 本...

    PrototypeZ 评论0 收藏0
  • 名3年工作经验的java程序员应该具备的职业技能

    摘要:一名年工作经验的程序员应该具备的技能,这可能是程序员们比较关心的内容。数据结构和算法分析数据结构和算法分析,对于一名程序员来说,会比不会好而且在工作中能派上用场。 一名3年工作经验的Java程序员应该具备的技能,这可能是Java程序员们比较关心的内容。我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价、拿到的薪水势必也越高。 1、基本语法 这包括...

    renweihub 评论0 收藏0

发表评论

0条评论

marek

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<