java static关键字

静态:static
用法:是一个修饰符,用于修饰成员(包括成员变量和成员函数),注意只能修饰成员
当成员变量被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用
写法格式:类型.静态成员
特有数据随着对象存储。
static特点:
1,随着类的加载而加载
也就是说:静态会随着类的消失而消失。说明它的生命周期最长。
2,优先于对象的存在
明确一点:静态是先存在。对象是后存在的。
3,对所有的对象共享
4,可以直接被类名所调用。
实例变量和类变量的区别:
1,存放位置。
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。
2,生命周期
类变量生命周期随着类的消失而消失。
实例变量生命周期,随着对象的消失而消失
静态的使用注意事项:
1,
静态方法只能访问静态成员(包括方法和变量,但是都得是静态的。)
非静态方法可以访问静态,也可以访问非静态。
2,静态方法中,不可以定义this,super关键字
因为静态优先于对象存在。所以静态方法中不可以出现this,super。
静态有利右避
利:对对象的共享数据进行单独工具的存储,节省内存。没有必要每个对象中都存储一个
可以直接被类名调用,这样可以节省内存。原因在于,不需要new对象。
弊端:生命周期过长。访问出现局限性。(静态虽好,只能访问静态。)
3,主函数是静态的。
住函数:是一个特殊的函数,做为程序的入口,可以被jvm调用。
public:代表着该函数访问权限是最大的。
static:代表住函数随着类的加载就已经存在了。
void:住函数没有具体的返回值
main:不是关键字。但是是一个特殊的单词,可以被jvm识别。
函数的参数:(String[] arr),参数类型是一个数组,该数组中的元素是字符串,字符串类似的数组。
主函数是固定格式的:jvm识别。固定写法。
比如:像下面这样就不行。其实呢,住函数的写法,写成其他的jvm不识别。
public static void main(int x){
}
还有一点没见识过的,住函数是可以传参数的:
比如:一个类,名称是test.java
class test{
 
   public static void main(String[] args){
                 String[] arr={"sfdsf","sdfdsfsd","test"};
                 test2.main(arr);
   }
}
class test2{
   public static void main(String[] arr){
     for(int i=0;i<arr.length;i++){
          System.out.println(arr[i]);
     }
   }
}
//上面这个例子足以证明住函数传参数的问题。
打印结果,就是打印出一个数组的值。
//
class Person{
  String name;
  static String country="CN";//当这里加了static关键字以后
  //这里程序执行的时候,这个country就不随着你new一个对象而创建了
  //因为,当你new一个对象的时候,把对象是放到堆内存中的。
  //你给country加上static以后程序运行的时候。
  //把country把属性放到栈内存中。
  public void show(){
    System.out.println(name+":::"+country);
  }
}
class StaticDemo{
   public static void main(String[] args){
    Person p = new Person();
    p.name="孙伟明";
    p.show();
   }
}


//什么时候使用静态
要从两方面下手
因为静态修饰的内容有成员变量和函数。
什么时候定义静态变量和函数呢?
当对象中出现共享数据时。该数据被static所修饰
对象中的特有数据要定义成飞静态存在堆内存中。
什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据)

那么该功能可以定义成静态的。



原文地址:http://blog.sina.com.cn/s/blog_6b759ccf01012qdf.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值