zoukankan      html  css  js  c++  java
  • 什么是静态方法?

    摘自:http://blog.csdn.net/dwzsq/article/details/2097781

    什么是静态方法

    静态方法的1个特别作用就是不用创建类的对象,而直接用类里面的方法(public static 2个条件),

    例如: class A { public static void b() {..............} }

    可以这样直接用: A.b(); 那么在程序中如何可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数据,比如连接字符串,配置信息等,当满足上面所说的两点时,进行一次读取,以后就可以方便的使用了,同时也节约了托管资源,因为对于静态成员,一个静态字段只标识一个存储位置。对一个类无论创建了多少个实例,它的静态字段永远都只有一个副本。 static: 类变量(对象共享)可以用类名,对象名点取,间接使用。 类方法

    1)static方法中不能直接使用非静态成员, 因为非静态成员与实例相关,通过对象点取间接使用

    2)static方法中不能用this(与实例相关)

    3)非static方法中可以使用static成员

    静态方法有什么弊端?

    问:我翻看一些源码工程时看到几乎没有什么静态方法唯独Ms的SQLHelper中几乎全是静态方法 为什么呢?

    答1:在一些系统中使用非常频繁的方法都使用静态方法可以提高系统性能我是这么认为的 :)

    答2:本身不可升级, 重写 这要看一个软件产品的目的是什么了.

    答3:为了方便,不用实例化,但这样程序编译运行时就占用了系统资源

    答4:静态的属性和方法在程序启动的时候,就全部装入内存的,而不管这些方法、属性以后有没有用到。即使是没有人再访问程序,这部分内存仍然不会释放还有就是,所有访问者看到的静态属性的数据几乎都是一样的,比如A用户设置了UserName这个属性,B用户访问的时候,得到的UserName仍然是A用户设置的那个。这种特性,如果用在固定数据中,那不会有太大问题,比如连接字符串之类的

     答5:静态方法/数据成员是属于类的,不是属于某一个对象的,因而调用它不需要实例化;静态方法和静态数据成员相当于共享变量。为该类的所有对象所共有,因而在需要共享数据时,定义这种类型时很好的选择。 一但定义一个类后(不一定要实例化对象)该类的所有静态成员就载入内存(并不是程序启动,就装入内存,没有定义该类时它不会载入内存) 静态成员的作用域与它所属的类的作用域相同

  • 相关阅读:
    CS academy Binary Flips(dp)
    [POJ 1637] Sightseeing tour(网络流)
    Codeforces 346D Robot Control(01BFS)
    BZOJ 2069: [POI2004]ZAW(Dijkstra + 二进制拆分)
    驱动之SPI,UART,I2C的介绍与应用20170118
    USB驱动之CDC类的介绍与应用20160905
    uCOS-II之移植20160823
    java之面向对象20160818
    Java之基础20160806
    Android之框架20160721
  • 原文地址:https://www.cnblogs.com/mysic/p/4606942.html
Copyright © 2011-2022 走看看