黑马程序员—静态概述
来源:互联网 发布:淘宝店名名字 编辑:程序博客网 时间:2024/05/01 07:08
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
静态static:是一个修饰符,用于修饰成员(成员变量,成员函数),当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。类名.静态成员
在定义事物时,哪些是共性的,哪些是特有的,一定要区分开,特有内容随着对象存储在堆内存中,被静态的内容不再存储在堆内存中。
class Person
{
String name;
static String country="CN";//国籍可以共享,因为国籍大部分一样
public void show()
{
System.out.println(name+country);
}
}
class StaticDemo
{
public static void main(String[] args)
{
Person p=new Person();
p.name="张三";
//p.show();
System.out.println(p.country);
System.out.println(Person.country);//可以被类名调用
}
}
那么被静态的内容存储到哪里了呢?
JAVA在启动时一共在内存中划分了5片空间来进行自己数据的存储,分别是栈区、堆区、方法区、本地方法区和寄存器。
方法区(共享区,数据区):上面代码中的country就是被存放在方法区了,类中的方法也是存储在这里。
static的特点:
1. 随着类的加载而加载,随着类的消失而消失,生命周期最长
2. 优先于对象存在,对象不存在时它还在
3. 被所有对象共享
4. 可以直接被类名调用
class Person
{
String name;//成员变量,实例变量(创建了对象它才存在)
static String country="CN";//静态的成员变量,类变量(类名可以调用)
public void show()
{
System.out.println(name+"::"+country);
}
}
当这个类加载进内存时,country也会加载进内存,而name不会加载进内存,name
只有在创建了对象,在对象中才有name变量。
实例变量和类变量的区别:
1. 存放位置:实例变量随着对象的建立存放在堆内存中;类变量随着类的加载存放在方法区
2. 生命周期:类变量生命周期最长,随着类的消失而消失;实例变量生命周期随着对象的消失而消失
静态使用注意事项:
1. 静态方法只能访问静态成员(包括方法和变量),非静态方法既可以访问静态成员,也可以访问非静态成员。
2. 静态方法中不可以定义this,super等关键字(因为静态优先于对象存在,所以静态方法中不可以出现this)
3. 主函数是静态的
静态有利有弊:
利:对对象的共享数据进行单独空间的存储,节省空间,没有必要每一个对象中都存储一份,可以直接被类名调用。
弊:生命周期过长,访问出现局限性。
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
详细请查看www.itheima.com
- 黑马程序员—静态概述
- 黑马程序员—静态
- 黑马程序员——概述
- 黑马程序员—Java概述
- 黑马程序员—Java概述
- 黑马程序员—IO概述
- 黑马程序员—线程概述
- 黑马程序员———Java概述
- 黑马程序员——JavaIO—概述
- 黑马程序员———Java概述
- 黑马程序员——Java IO概述
- 黑马程序员——java基础概述
- 黑马程序员——委托概述
- 黑马程序员——Java概述
- 黑马程序员——网络编程概述
- 黑马程序员——面向对象概述
- 黑马程序员——WinForm概述
- 黑马程序员——计算机语言概述
- iOS6新特征:UICollectionView介绍
- UVa 10392 - Factoring Large Numbers
- Java程序挂掉的几种可能
- QT静态库和动态库的导出
- Struts2教程7:上传任意多个文件
- 黑马程序员—静态概述
- hdu 2686 Matrix (多线程dp)
- 一道SQL的面试题之联想
- leetcode day5 -- Reorder List && Linked List Cycle II
- Codeforces Round #243 (Div. 2) Problem B - Sereja and Mirroring 题解
- Shapefile文件组成,Shapefile文件的修复
- 蓝桥杯——奇怪的比赛
- 玛雅~终于开始勤奋了特闷
- 感觉很是不适应呢