java之Static关键字解析
2017-11-08 20:11
176 查看
Java中的Static关键字
对于Static关键字,相信大家都不陌生,还记得我们的第一个HelloWorld程序不?public static void main(String [] str){Stystem,out,println("helloWorld!")},但是对于其中的Static关键字,不知道大家都了解多少,在这我就谈谈。Static,是静态的属性,静态方法,静态变量,都是用Static关键字去定义
1,内存分配
Static关键字定义的方法或者变量都属于静态的,一般我们在类中所定义的属性,基本上都是成员变量,这些变量属于对象,他们是对象的属性,所以只有在对象被创建的时候,虚拟机才会帮它分配内存,当然,静态的变量也是这样,但是不同于成员变量的是,每new一个对象出来的时候,虚拟机就会在堆中分配一块内存给这些变量,所以有多少个对象就会有多少个这些变量,但是静态的变量就不一样,静态的变量是属于类Class的,而不是属于对象的,当我们创建一个类的实例的时候,虚拟机就会为这个Static的变量分配一块内存,注意,虚拟机会在堆内存的DataSegment(数据堆)中为它分配内存,并且只分配一次,当以后再创建出实例的时候,也不会再分配内存了。2,使用方法
我们知道,如果我们在一个类里边定义了一个属性,比如private int m=0;那当我们需要用到这个变量的时候我们会怎么做呢?没错,就是先创建出一个实例,然后用对象名.m来调用,同理,由于Static定义的方法和变量是属于类专有的,所以当我们要调用的时候,只需要类名.方法名/变量名就可以完成调用了,而不需要再去创建实例3,注意事项
由于我们之前分析过的,Static的内存之分配一次,所以它可以说是共享的,任何地方去调用类名.方法名/变量名就可以去调用,所以在使用Static的时候要注意使用的地方,因为一旦有一个对象将这个静态的变量的值修改了,那就永远的修改了,当下一个对象要调用这个静态的值的时候,其实这时候的值是被修改过的。好了,基本上就是这么多了,对了,因为调用静态的变量,方法不需要创建实例,所以在一个Static函数里边是不能访问非Static类型的变量或者方法的,否则就会报错!大家可以去实践一下,想清楚了就OK了
如果大家有什么补充或者我的什么错误我没有发现的,欢迎在评论区留言,大家互相学习!
相关文章推荐
- 【转】Java中的static关键字解析
- 《Thinking in Java》第三篇笔记 Java中的static关键字解析
- Java中的static关键字解析
- JAVA中的static关键字的解析
- java关键字之static解析
- Java中的static关键字解析
- Java中的static关键字解析
- Java中的static关键字解析
- Java中的static关键字解析
- Java中的static关键字解析
- Java中的static关键字解析
- Java中的static关键字解析
- java之static关键字解析
- (转)Java中的static关键字解析
- java之static关键字用法实例解析
- Java中的static关键字解析
- Java中的static关键字解析
- Java中的static关键字解析
- Java中的static关键字解析
- Java中的static关键字解析