Java中的statickeyword具体解释[通俗易懂]

Java中的statickeyword具体解释

大家好,又见面了,我是全栈君。

1.statickeyword主要有2个作用

①为某特定的数据类型或者对象分配单一的存储空间。而与创建对象的个数无关。

②在不创建对象的情况下能够直接通过类名来直接调用方法或者使用类的属性

2.static主要有4种使用情况:成员变量(属性),成员方法。代码块,和内部类


3.Java中没有全局变量的概念。可是能够通过static来实现全局变量的效果。

Java中提供了2种类型的变量:①用static修饰的静态变量②实例变量

他们的差别是静态变量时属于类的,仅仅要静态变量所在的类被载入。就会被分配空间,因此就而已被使用能够通过类.静态变量或者对象.静态变量来引用

实例变量属于对象,必需要先new出对象,然后通过对象.实例变量来引用,仅仅有对象呗创建才会给他分配空间

★特别重要的是static变量仅仅有一个。被类拥有,全部对象都共享这个static变量而且static变量不能定义在方法中!。。。。


4.static成员方法。与变量类似,static方法属于类的方法,不用创建对象就能够使用用过类名.static方法调用,在static方法中不能訪问非static的方法和变量,不能出现this或者superkeyword。

static非常重要的一个应用就是实现单例模式。单例模式的特点就是仅仅能有一个实例。

public class Singleton {
   private static Singleton instance=null;//声明一个静态的类变量
   private Singleton(){};//构造方法私有化,外部不能通过new生成对象实例
   public static Singleton getInstance(){//全局訪问点,提供生成类的实例的方法
	   if(instance==null){
		   instance=new Singleton();
	   }
	return instance;
   }
}

注意这里面的方法为什么是static,如果我们不用statickeyword,则在外部我们须要去调用getInstance()方法来创建实例,那么就要先new对象。在通过对象.方法名来获取,可是我们的目的就是不能通过new生成多个对象,所以我们就须要加上statickeyword,来完毕,直接通过Singleton.getInstance()创建这个类的唯一实例。


5.static修饰代码块

static代码块独立于成员变量和方法,他不在不论什么一个方法体中,JVM在载入类的时候会运行代码块。假设有多个代码块则按顺序运行。static代码块通经常使用来初始化static变量。须要注意的是,static代码块仅仅会被运行一次!!!


6.static内部类

static内部类是指被修饰为static的内部类。他不依赖于外部类实例对象而被实例化,通常的内部类须要外部类实例化才干实例化。static内部类不能与外部内重名,切且不能訪问外部类的成员变量,仅仅能訪问外部类的static成员变量和static方法包含private类型。


7.问题?

1.什么是实例变量?什么是局部量?什么是类变量?什么是final变量?

2.static final结合表示什么意思?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116557.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • w3c标准是什么_语言的特征主要包括什么

    w3c标准是什么_语言的特征主要包括什么什么是W3C标准站点标准(SiteStandard)不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML;表现标准语w3c网页标准,具体指那些?CSS布局HTML小编今天和大家分享高手指教,。WEB标准不是某一个标准,而是一系列标准的…

    2022年9月17日
    0
  • 如何解决eclipse中的中文乱码问题[通俗易懂]

    eclipse中文乱码都是因为字符编码与默认的编码不符合导致的,有很多的方法可以解决,不需要安装任何插件就可以搞定。针对不同的情况,需要使用不同的方案,下面就针对一些案例讲解如何解决乱码问题。解决乱码问题的主要思路是设置正确合适的编码,如果不知道目标文件原本的编码,可以进行一定的尝试,通常尝试下GBK和UTF-8这两个编码即可。方法1设置单个文件的字符编码,解决单个文件的乱码问题有时候不小心cop…

    2022年4月3日
    44
  • vim保存和退出_vim编辑器保存退出

    vim保存和退出_vim编辑器保存退出退出vim的快捷键,不需要进入命令编辑模式按住shiftzz保存退出zq不保存退出,q表示放弃之所以按住shift,其实是切换大小写在命令编辑模式下::q不保存退出:q!不保存强制退出:wq保存退出,w表示写入,不论是否修改,都会更改时间戳:x保存退出,如果内容未改,不会更改时间戳“:x”和“:wq”的区别如下:(1…

    2022年8月24日
    14
  • 修改群晖mac 及 sn「建议收藏」

    修改群晖mac 及 sn「建议收藏」开启ROOT权限参见之前文章:群晖开启root权限及修复Moments的AI人像服务挂载启动分区root账号下,执行以下命令:root@data_backup:~#mkdir-p/tmp/boot##在/tmp目录下创建一个临时目录root@data_backup:~#ll/dev/sda*##看下引导盘在哪个分区brw——-1rootroot8,0May3022:29/dev/sdabrw——-1rootroot.

    2022年6月5日
    721
  • cms开源网站管理系统_javaweb开源商城

    cms开源网站管理系统_javaweb开源商城笔者整理了八款.Net优秀的开源CMS内容管理系统,推荐给广大的.net开发者。

    2022年8月6日
    3
  • E. Riding in a Lift(Codeforces Round #274)「建议收藏」

    E. Riding in a Lift(Codeforces Round #274)

    2022年1月25日
    72

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号