- 浏览: 25915 次
- 性别:
- 来自: 北京
-
最新评论
→static特点
1、随着类的加载而加载
也就是说:静态会随着类的消失而消失,说明他的生命周期最长
2、优先于对象存在
3、被所有对象所共享
4、可以直接被类名调用
→int age(成员变量)实例变量和 static int age(静态成员变量)类变量的区别
1、存放位置
实例变量是随着对象的创建而存在堆内存中
类变量随着类的加载而存在于方法区中
2、生命周期
实例变量随着对象的消失而消失
类变量生命周期最长,随着类的消失而消失
→静态使用注意事项
1、静态方法只能访问静态成员
2、静态方法中不可以定义this,super关键字
因为静态优先于对象存在,所以静态方法中不可以出现this
3、主函数是静态的
→静态的好处和坏处
好处:对对象的数据进行单独空间的存储,节省空间,没有必要每个对象中的存储一份
可以直接被类名调用(Person.country)
坏处:生命周期过长。
访问出现局限性。(只能访问静态)
→什么时候使用静态呢?
要从两个方面入手
因为静态修饰的内容有成员变量和成员方法(函数)
什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰
对象中的特有数据要定义成非静态存在于堆内存中。
什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义为静态的。
→静态的应用
每一个应用程序都有共性的功能
可以将这些功能进行抽取,独立封装
以便复用。
把成员方法都定义成static的直接用类名调用。
一个类中会有一个默认的构造函数,这个构造函数的权限和所属的类一致
静态代码块
格式:
static
{
静态代码块中的执行语句;
}
//特点:随着类的加载而执行,只执行一次。用于给类进行初始化。
如下例子:
class StaticCode
{
static
{
System,out.println("a");
}
}
加载顺序 静态代码块-->构造代码块-->构造函数
对象的初始化过程
Person p = new Person("zhangsan",20);
1、因为new用到了Person.class。所以会先找到Person.class文件并加载到内存中。
2、执行该类中的static代码块(静态代码块),如果有的话,给Person.class类进行初始化
3、在堆内存中开辟空间,非配内存地址
4、在堆内存中建立对象的特有属性,并进行默认初始化
5、对属性进行显示初始化
6、对对象进行构造代码块初始化
7、对对象进行对应的构造函数初始化
8、将内存地址付给栈内存中的p变量
1、随着类的加载而加载
也就是说:静态会随着类的消失而消失,说明他的生命周期最长
2、优先于对象存在
3、被所有对象所共享
4、可以直接被类名调用
→int age(成员变量)实例变量和 static int age(静态成员变量)类变量的区别
1、存放位置
实例变量是随着对象的创建而存在堆内存中
类变量随着类的加载而存在于方法区中
2、生命周期
实例变量随着对象的消失而消失
类变量生命周期最长,随着类的消失而消失
→静态使用注意事项
1、静态方法只能访问静态成员
2、静态方法中不可以定义this,super关键字
因为静态优先于对象存在,所以静态方法中不可以出现this
3、主函数是静态的
→静态的好处和坏处
好处:对对象的数据进行单独空间的存储,节省空间,没有必要每个对象中的存储一份
可以直接被类名调用(Person.country)
坏处:生命周期过长。
访问出现局限性。(只能访问静态)
→什么时候使用静态呢?
要从两个方面入手
因为静态修饰的内容有成员变量和成员方法(函数)
什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰
对象中的特有数据要定义成非静态存在于堆内存中。
什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义为静态的。
→静态的应用
每一个应用程序都有共性的功能
可以将这些功能进行抽取,独立封装
以便复用。
把成员方法都定义成static的直接用类名调用。
一个类中会有一个默认的构造函数,这个构造函数的权限和所属的类一致
静态代码块
格式:
static
{
静态代码块中的执行语句;
}
//特点:随着类的加载而执行,只执行一次。用于给类进行初始化。
如下例子:
class StaticCode
{
static
{
System,out.println("a");
}
}
加载顺序 静态代码块-->构造代码块-->构造函数
对象的初始化过程
Person p = new Person("zhangsan",20);
1、因为new用到了Person.class。所以会先找到Person.class文件并加载到内存中。
2、执行该类中的static代码块(静态代码块),如果有的话,给Person.class类进行初始化
3、在堆内存中开辟空间,非配内存地址
4、在堆内存中建立对象的特有属性,并进行默认初始化
5、对属性进行显示初始化
6、对对象进行构造代码块初始化
7、对对象进行对应的构造函数初始化
8、将内存地址付给栈内存中的p变量
发表评论
-
分享带查询的select标签
2016-11-24 13:38 381分享一个带查询的select标签的js以及使用方法,可以下载使 ... -
Mysql和Oracle查询树状结构(递归)的详细
2016-06-24 17:16 0一.Oracle查询树状结构: 1.描述树状结构: 所 ... -
微信开发Tomcat支持的JDK版本问题
2016-06-24 16:14 556微信开发二维码模块调用微信的接口时启动Tomcat发现会报 ... -
Mysql中的group_concat和find_in_set函数的详解
2016-06-24 12:29 1795一.Mysql中的group_concat函数: 1.解 ... -
spring的单例模式
2016-03-10 17:05 454Spring框架有两个特性一个是IOC,另一个就是AOP。 ... -
jquery的选择器总结
2016-03-10 11:43 359jquery选择器: 一、基 ... -
==和equals的区别
2016-03-09 17:09 566Java中“==”和equal的区别在于: “==”比较的 ... -
jquery的ajax请求
2016-03-09 16:27 589$.ajax()里面参数的详 ... -
Mybatis中resultType和resultMap的区别
2016-03-09 15:44 1390Mybatis中使用select查询时返回值的类型可以为re ... -
mysql数据库case when 的用法
2016-01-26 15:28 1624mysql数据库中case when适合多条件查询的情况一般 ... -
sql server,mysql,oracle分页查询的区别
2015-10-30 17:26 852总结了一下mysql,sql server,oracle数据 ... -
selectKey的用法
2015-10-28 17:34 1721在使用ibatis插入数据进入数据库的时候会用到sequen ... -
request,session,ServletContext绑定数据的区别
2015-09-02 11:18 7171、存在的时间不相同:ServletContext存在的时间 ... -
Servlet的生命周期以及什么时候执行
2015-09-02 10:54 850Servlet的生命周期分为四个阶段: 阶段一: ... -
数据库查询语句中union 和 union all 的区别
2015-08-04 17:01 869UNION去重且排序UNION ALL不去重不排序 -
java.sql.SQLException: Invalid parameter object type.
2015-07-31 15:46 1282修改程序的时候出现了 java.sql.SQLExcep ... -
ibatis中#与$的区别
2015-07-28 18:01 6291.#能够进行预编译,进行类型匹配而$不能进行数据类型的匹 ... -
Oracle转换成为Mysql注意事项
2015-07-28 17:37 2208做项目的时候发现当要将Oracle数据库转换为Mysql需 ... -
使用实体类作为参数新增的时候要注意点
2015-06-03 19:11 1341在sql.xml文件中给实体类取别名采用以下方法 alias是 ... -
解析get请求参数乱码的问题解决方案
2015-06-03 18:44 786解析get请求时,其中的请求参数的值包含中文的时候设置了(UR ...
相关推荐
Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着紧密的关系。下面将对这四个概念进行详细的介绍。 一、静态变量...
本文将深入探讨如何利用静态变量对函数访问次数进行计数,以及这种方法背后的原理和注意事项。 首先,我们需要理解静态变量的概念。在C++或类似的编程语言中,静态变量有以下特点: 1. 生命周期:静态变量在整个...
PHP中的静态变量有以下特点和用途: 1. 静态变量的生命周期 静态变量存在于函数作用域内,但是它们的生命周期贯穿整个脚本执行周期。不像普通局部变量在函数调用完毕后即被销毁,静态变量在第一次被声明时初始化,...
这段代码展示了静态方法`statMethod`只能访问静态变量`sa`和调用其他静态方法,而不能访问实例变量`ia`或调用实例方法`insMethod`。相反,实例方法`insMethod`可以自由地访问所有类型的成员。 总的来说,静态方法在...
在iOS开发中,Block、局部变量、全局变量和静态变量(`static`)是编程中常见的概念,它们各自有自己的特点和用途,同时在特定情况下,它们之间也存在一定的联系。让我们详细探讨一下这些知识点。 首先,Block是...
- **静态变量**: 在程序多次调用过程中保持原有的赋值状态不变。 - **变量作用范围**: 通过`static`关键字限定变量的可见性范围。 - **静态存储方式**: 改变变量的存储位置,使之在整个程序运行期间都存在。 - **...
- **访问限制**:静态方法只能访问静态成员变量和静态方法,无法直接访问非静态成员变量和方法。 - **不参与多态**:静态方法不受多态的影响,即使在子类中重写了父类的静态方法,调用时仍然根据声明类型来决定执行...
静态变量在函数或过程中声明,其特点是即使函数或过程执行完毕,变量的值也不会被清除,下次再次调用该函数或过程时,它会保留上次的值。在VB6.0中,使用`Static`关键字声明静态变量。下面是一个简单的例子: ```vb...
静态变量分为静态局部变量和静态全局变量。静态局部变量只在函数首次调用时初始化,之后每次调用函数时,其值会保留,不会被重置。静态全局变量只在定义它的源文件内可见,避免了全局变量的命名冲突,且其生命周期...
总的来说,Static静态变量是VB6.0编程中一个强大的工具,合理利用可以解决许多实际问题,但同时也需要谨慎处理,以确保代码的健壮性和效率。在实际编程中,我们需要根据具体需求权衡是否使用Static变量,以及如何...
在Java中,静态(static)关键字被用来修饰类的成员变量和方法,表示这些成员属于类本身而非类的某个具体实例。这意味着: - **无需实例化即可访问**:静态成员可以在没有创建类的实例的情况下被访问。 - **所有实例...
局部静态变量是在函数内部定义的,它具有自动初始化和生命周期不随函数调用结束而结束的特点。具体来说: 1. 局部静态变量在函数第一次被调用时初始化,之后即使函数调用结束,该变量依然保持其值不变。当函数再次...
- **全局变量和静态变量**:如果未手动初始化,则由编译器自动初始化为0。 - **局部变量**:如果不进行初始化,则其值是不确定的,具体取决于编译器的实现细节。 #### 五、示例分析 下面通过一个具体的代码示例来...
在C++编程语言中,类是面向对象编程的基础,它允许程序员定义包含数据成员(变量)和成员函数(方法)的复合数据类型。其中,静态成员变量和静态成员函数具有特殊的特性,它们在类的整个生命周期内共享单一实例,...
标题中的“1变量简单小程序VC局部静态变量”指的是在Visual C++(简称VC)编程环境中,使用C++语言编写的一个小型程序,该程序涉及到单个变量的运用,并且重点讲解了局部静态变量的概念和用法。局部静态变量是C++中...
在C#编程语言中,`static`关键字用于声明静态成员,包括静态变量、静态方法等。这些成员是属于类本身而不是类的实例的,因此,它们在程序执行期间只存储一份,所有类的实例都可以共享。下面我们将详细探讨`static`...
本文通过详细分类说明了变量和方法的概念,并分析了变量和方法在Java程序设计应用过程中的内存分配问题、在继承时的覆盖问题以及静态变量和静态方法的应用问题。同时,本文也给出了部分典型案例,希望能为Java程序...
在编程中,变量是存储数据的容器,而静态变量有别于普通变量,它的特点是生命周期较长且在程序执行期间只被初始化一次。在易语言中,静态变量的使用有以下几个关键点: 1. **声明与初始化**:在易语言中,静态变量...