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)
上一篇 2022年1月19日 下午7:00
下一篇 2022年1月19日 下午7:00


相关推荐

  • python3 global和nonlocal 关键字

    python3 global和nonlocal 关键字python 变量引用顺序 从当前作用域开始寻找变量 如果没找到就往上一层作用域寻找 没找到就再上一层 即 当前作用域局部变量 gt 外层作用域变量 gt 再外层作用域变量 gt gt 当前模块全局变量 gt pyhton 内置变量 global 全局变量 nonlocal 外层嵌套函数的变量使用总结 局部作用域改变全局变量用 global global 同时还可以定义新的

    2026年3月19日
    2
  • OpenProcessToken学习

    OpenProcessToken学习  要对一个任意进程(包括系统安全进程和服务进程)进行指定了写相关的访问权的OpenProcess操作,只要当前进程具有SeDeDebug权限就可以了。要是一个用户是Administrator或是被给予了相应的权限,就可以具有该权限。可是,就算我们用Administrator帐号对一个系统安全进程执行OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcessID…

    2022年6月25日
    23
  • 织梦的最终列表页,频道封面,外部链接有什么区别  虽然里面有解释了,看不懂,可以举例子么…

    织梦的最终列表页,频道封面,外部链接有什么区别  虽然里面有解释了,看不懂,可以举例子么…

    2021年9月22日
    47
  • Java开发不得不会!郑州java外包公司有哪些

    Java开发不得不会!郑州java外包公司有哪些拼多多三面惨败,java中间件、数据库与spring框架,答不上…面试开火箭,工作拧螺丝…月初有个朋友面试拼多多,一面自信满满过了,结果三面却惨败…昨天朋友约我出来讨论问题在哪里,三面就答不上了(卡壳很严重呐)。听完整个面试经历之后,我总结了一下,这次拼多多一二三面其实综合总结起来就问了五个方面的东西,分别是自我介绍+项目、java基础、中间件、数据库和spring框架,另外还问了道算法题。接下来就跟大家一起来看看拼多多的面经,看看你是否能轻松应对面试官的炮轰?技术焦虑现在的技术圈子很火热,任何技术

    2022年5月11日
    69
  • onLoad 和onShow的 区别「建议收藏」

    onLoad 和onShow的 区别「建议收藏」onLoad页面加载的时候触发,只触发一次;从二级页面回来时不会触发。onShow页面从哪里进来,只要返回该页面就会加载;从二级页面回来时会触发的。…

    2022年6月15日
    29
  • java定时任务实现的几种方式注解(JAVA定时任务)

    摘要:在开发测试工具的应用后台,经常听到同事说要做个定时任务把做日志处理,或者数据清理,包括做些复杂的业务计算逻辑,在选择定时任务的时候,怎么能够快速实现,并且选择一种更适合自己的方式呢?我这里把定时任务的实现收集整理了一些方法,希望可以帮到刚开始做定时任务的同学,写得不对的地方请指正。一在开发测试工具的应用后台,经常听到同事说要做个定时任务把做日志处理,或者数据清理,…

    2022年4月14日
    780

发表回复

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

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