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结合表示什么意思?

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Kettle下载_kettle网页版

    Kettle下载_kettle网页版下载地址:https://sourceforge.net/projects/pentaho/files/

    2022年10月31日
  • 电脑WindowsUDP53绕过校园网认证登陆(同时可进内外网教程)

    电脑WindowsUDP53绕过校园网认证登陆(同时可进内外网教程)管理员命令行输入:routeadd-p172.16.0.0mask255.255.0.0172.16.180.254加粗的两个改成你自己的,第二个加粗是默认网关!第一个不知怎么叫。。仔

    2022年10月31日
  • python关机程序代码_python实现的重启关机程序实例

    python关机程序代码_python实现的重启关机程序实例本文实例讲述了Python实现的重启关机程序的方法,对Python程序设计有一定的参考价值。具体方法如下:实例代码如下:#!/usr/bin/python#coding=utf-8importtimefromosimportsystemruning=Truewhileruning:input=raw_input(‘关机(s)OR重启(r)?(q退出)‘)input=input…

  • echarts 旭日图_ECHARTS

    echarts 旭日图_ECHARTS旭日图旭日图(Sunburst)由多层的环形图组成,在数据结构上,内圈是外圈的父节点。因此,它既能像饼图一样表现局部和整体的占比,又能像矩形树图一样表现层级关系。引入相关文件旭日图是ECharts4.0新增的图表类型,需要引入完整版的echarts.min.js最简单的旭日图创建旭日图需要在series配置项中声明类型为‘sunburst’的系列,并且以树形结构声明其d…

  • Java面向对象三大特性学习总结

    Java面向对象三大特性学习总结面向对象的三大特性:封装、继承、多态将对象的属性和实现细节隐藏起来,不让外部程序直接进行访问,将属性私有化,仅对外公开接口,让外部程序通过类提供的方法来对隐藏信息进行访问和操作。好处是外部程序只能通过类规定的方法对数据进行访问,避免外界程序对类内部属性进行破坏。

  • jQuery 文档操作 – remove() 方法

    jQuery 文档操作 – remove() 方法

    2021年10月17日

发表回复

您的电子邮箱地址不会被公开。

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