是否可以从一个static方法内部发出对非static方法的调用?

一、概述

在我们开发过程中,经常会使用到static关键字。包括在工具类的使用static修饰静态方法,和final结合起来使用定义属性。

二、问题回答

问题:是否可以从一个static方法内部发出对非static方法的调用?

答:不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

三、static总结

static使用的注意事项有哪些?

   1、 在静态方法中是没有this关键字的

    2、静态是随着类的加载而加载,this是随着对象的创建而存在。

   3、 静态比对象先存在。

    4、静态方法只能访问静态的成员变量和静态的成员方法【静态只能访问静态,非静态可以访问静态的也可以访问非静态的】

static关键字的特点?

    1、随着类的加载而加载

    2、优先于对象存在

    3、被类的所有对象共享

    4、可以通过类名调用【静态修饰的内容一般我们称其为:与类相关的,类成员】

使用static存在什么问题?

    1、占用内存,并且内存一般不会释放;

    2、在系统不够内存情况下会自动回收静态内存,这样就会引起访问全局静态错误。

    3、在Android中不能将activity作为static静态对象,这样使activity的所有组件对象都存入全局内存中,并且不会被回收;



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,604评论 0 11
  • 最近跟同事闲聊时聊到了大家对java的static关键字的了解,突然发现很多入行不久的甚至有多年工作经验的同事,居...
    老周船长阅读 5,337评论 0 4
  • 每天为一点小事吵架,我知道我的脾气不好,但作为男人你不能忍让一点吗,跟你过了这么多年,每次生气你从来没有哄过我一次...
    莎莎sassy阅读 2,372评论 0 0
  • 资质三项:1. 规模,就是你现在的收入水平;2. 负债率,就是你的家庭负担之类的各种负担,你能不能腾出手来做别的;...
    喵小喵的成长阅读 3,372评论 1 1
  • 爆竹声渐渐响起,城市中在烟花的烘托下变得更加的热闹。晚上黑黑的一片天,在烟花的渲染下变得多彩,在高空中绽放...
    逆袭lbl阅读 1,456评论 0 0