static是什么

static是java中的关键字,static表示”全局”、“静态”的意思,用来修饰成员变量和成员方法,定义的变量,我们通常将用static修饰的成员称为静态变量,静态方法或者静态成员。

static的作用

  1. 被static修饰的成员变量和成员方法独立于该类的任何对象
  2. static修饰的成员变量和成员方法可以直接通过类名来访问

对上面4条作用的解释并举例说明

1、被static修饰的成员变量和成员方法独立于该类的任何对象

在jvm虚拟机中,被static修饰的成员都存储在方法区中。

方法区:它也叫“静态区”,被所有的线程共享,它包含了所有的static变量。

而不被static修饰的成员我们称为普通变量,这些变量存储于jvm的堆中。

方法区中存放的静态变量不会随着对象的消失而消失,只会在程序结束之后才会被回收。
:所有创建的对象都存储在里面,jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身。

举个例子

package staticProblem;public class Common {private static String staticStr;private String commonStr;public void input(){System.out.println(staticStr + " " + commonStr);}public static void main(String[] args) {Common.staticStr = "张";Common common1 = new Common();common1.commonStr = "三";common1.input();Common common2 = new Common();common2.input();    }
}
运行结果如下:
张 三
张 null

从上面可以看到:
静态变量staticStr并不会随着对象的消失而消失,他还是会存在,而普通变量commonStr存放在堆中,会重新加载。


2、static修饰的成员变量和成员方法可以直接通过类名来访问

举个例子就明白了

代码如下

package staticProblem;public class Common {private static String staticStr;private String commonStr;public void input(){System.out.println(staticStr + " " + commonStr);}public static void staticInput(){System.out.println(staticStr);}public static void main(String[] args) {System.out.println("静态方法:");Common.staticStr = "张";Common.staticInput();System.out.println("------------------------");System.out.println("普通方法:");Common common = new Common();common.input();}
}
运行结果:
静态方法:
张
------------------------
普通方法:
张 null

由结果可知:
加上static关键字的方法成员变量不需要再经过实例化new,这样的操作方便了许多,且性能上也提高了。

总结:

静态变量就像是外面的情侣套房,情侣们给钱就能入住,所使用的床,浴池等等都是一样的,而成员变量就像是一对对进来入住的情侣,他们所带来的与所产生的东西都是不同的,这些物品会随着他们的消失而消失。但是套房里的物品并不会因为他们的离开而消失,而是随着这家酒店宾馆的倒闭而消失。


北京市需要租房或者转租房子,找舍友合租的都可以关注这个公众号哦,可帮忙发布房源信息,上面也有uu发布的转租信息呢。

java static的作用相关推荐

  1. java static 块作用_java static块有什么具体的作用和注意事项?说具体点

    展开全部 在Java语言中,static表示"全局"或者"静态"的62616964757a686964616fe4b893e5b19e3133333035346 ...

  2. Java中static的作用

    Java中static的作用 请先看下面这段程序: public class Hello{ public static void main(String[] args){ //(1) System.o ...

  3. java static关键字的作用是什么_java中的static关键字

    一.static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概念,在Java中static表示"全局"或者 ...

  4. java中的静态变量的作用域_详解JAVA中static的作用

    1.深度总结 引用一位网友的话,说的非常好,如果别人问你static的作用:如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的:如果是说 可以构成 静态代码块,那别人认为你还可以: 如果你说 ...

  5. java序列化的作用

    java序列化的作用 1.序列化是干什么的?        简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法 ...

  6. const 和 static 的作用

    static的作用: 1.先来介绍它的第一条也是最重要的一条:隐藏 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.为理解这句话,我举例来说明.我们要同时编译两个源 ...

  7. 【Java学习笔记之一】java关键字及作用

    Java关键字及其作用 一. 总览: 1 访问控制 2 private protected public 3 4 类,方法和变量修饰符 5 abstract class extends final i ...

  8. java extern的作用_学习笔记之20-static和extern关键字2-对变量的作用

    上一讲介绍了static和extern对函数的作用,static用来定义一个内部函数,不允许其他文件访问:extern用来定义和声明一个外部函数,允许其他文件访问.static和extern对变量也有 ...

  9. 为什么java要你写static,java static关键字理解

    文章大纲: 1.为什么static会有这样的效果? 2.static的使用 3.static误区 4.static面试题 static的魔法效果是: 被static关键字修饰的方法或者变量不需要依赖于 ...

最新文章

  1. 如何从用户体验的角度去做一个网站的页面设计
  2. js 获取日期并格式化
  3. 如何设计日志系统_架构 - 如何设计一个百亿级日志系统
  4. jQuery-DOM操作
  5. iOS学习笔记11 多线程入门
  6. python+办公自动化_Python办公自动化之操作excel
  7. 【Flink】FLink 反序列化空指针 java.lang.String.<init> SimpleStringSchema
  8. python安装详细步骤mac_mac如何安装python3
  9. 保存会话数据——session学习
  10. 【vuejs面试题】务必熟知的vuejs面试题「务必收藏」
  11. 用python 打开qq自动输入账号密码登陆 (python3 案例1)
  12. 2019新版c智播客h马程序员H5全栈工程师培训项目实战
  13. oracle恢复删除的表
  14. Domoticz-Dummy(虚拟传感器)
  15. python爬取桌面壁纸(初学者),一看就会
  16. 关于ASP使用服务器采集文章及图片
  17. linux bios密码设置时间,linux忘记root密码及时间设定
  18. 【单片机】单片机课程设计(测温打铃)附完整代码和电路图
  19. Fliqlo屏/保mac使用方法
  20. 最新android 电脑系统,android l操作系统|android l操作系统最新版 - 系统天堂

热门文章

  1. 除了感动还是感动 - 最全统计地震捐款企业录,总额逾8.5亿
  2. 龙抬头——不想当张小龙的程序员不是好程序员
  3. frp工具实现外网代理访问
  4. java配置代理服务器访问外网
  5. QT 项目 实现基于TCP的文件服务器/客户端,支持上传和下载
  6. LaTeX学习经验分享
  7. AsyncDisplaykit(Texture)技术分享
  8. win10无法防问其他计算机没有权限,雨林木风win10系统局域网共享无法访问提示“您可能没有权限使用网络资源”的方案...
  9. 利用Intent启动Activity
  10. 6中结构型设计模式的对比理解(Composite组合模式,Proxy代理模式,Flyweight享元模式,Facade门面模式,Bridge桥接模式,Decorator装饰器模式)