1
类变量的初始化
package com.mingrsoft;
publicclass StaticInitTest {
staticintcount
= 2;
static
{
System.out.println("StaticInitTest静态初始化块");
name =
"java编程";
}
static String
name="世界您好";
publicstaticvoid
main(String[] args)
{
System.out.println("name="+name);
}
}
运行结果
代码分析
name是静态变量,也叫做类变量,类变量属于这个类的,特点如下:
1 所有对象共享这个变量,某个对象修改以后,其他对象会得到修改后的值
2 类加载就同时为这个变量分配了内存空间,不是要生成对象才可以
3 因为static代码块也是类加载时候同时执行的,所以name可以放在定义之前赋值
剖析程序的运行点滴过程和内存分配
2.1.3 程序运行内存分配和对象的内存控制
package com.zou;
class Price
{
finalstatic Price
INSTANCE =
new Price(2.8);
staticdoubleinitPrice
= 20; //先分配变量内存,后来才一步一步赋值!切记一步一步
!
背下来
doublecurrentPrice;
//数形结合分析程序运行方式和每一步运行结果
public Price(double
discount)
{
currentPrice =
initPrice - discount;
}
}
publicclass PriceTets {
publicstaticvoid
main(String[] args)
{
System.out.println(Price.INSTANCE.currentPrice);
//结果是-2.8 = 0.0-2.8
Price p= new Price(2.8);
System.out.println(p.currentPrice);
}
}
运行结果:
-2.8
17.2
2.1 实例变量和类变量
1 局部变量:
1) 形参 :随着方法的结束而结束,调用者为其赋值!
2)方法内局部变量,必须要显示初始化赋值
3)代码块中局部变量,必须显示初始化
以上变量全部存在方法栈内存中,这些变量都和方法或者代码块有关系!
static 关键字
类变量的运行机制
1 类变量属于java类的本身,不属于每个对象的,每个程序运行所以只初始化一次!
2 类变量又叫静态成员变量!它不需要创建对象就可以已经在内存中存在了。
3
用static修饰,就是告诉jvm这个变量的内存空间在静态存储区内开辟,而不是在栈内存里面!
4
当Java程序执行时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例成员变量不会被分配内存。但是,类中的类变量,在该类被加载到内存时,就分配了相应的内存空间。如果该类创建对象,那么不同对象的实例变量互不相同,即分配不同的内存空间,而类变量不再重新分配内存,所有的对象共享类变量,即所有的对象的类变量是相同的一处内存空间,类变量的内存空间直到程序退出运行,才释放所占有的内存。Java语言允许通过类名直接访问类变量。
分享到:
相关推荐
1. `volatile-lru`:优先淘汰最近最少使用的带有过期时间的键。 2. `volatile-ttl`:优先淘汰即将过期的带有过期时间的键。 3. `volatile-random`:随机淘汰带有过期时间的键。 4. `allkeys-lru`:在所有键中淘汰...
JAVA基础笔记整合,java基础部分的一些笔记整合,适合初学者。
### SSH整合笔记和配置文件解析 #### SSH框架简介 SSH指的是Struts2、Spring以及Hibernate三个开源框架的集成应用,它们分别是MVC框架、轻量级IoC容器和ORM持久层框架。在实际项目开发中,这三个框架经常被一起使用...
《整合营销传播》是一本深入探讨市场营销理论与实践的著作,其笔记主要涵盖了整合营销传播观念的演进、传统营销传播的困境、整合营销传播的兴起以及整合营销传播方案等内容。 在第一章中,我们可以看到营销理论的...
### SSH框架整合知识点详解 #### 一、框架的搭建与配置 SSH框架指的是Spring、...需要注意的是,本篇笔记仅为SSH框架整合的一部分内容,完整的SSH框架还包括Spring和Hibernate的集成,涉及到更多的配置和编码工作。
JavaSE基础笔记整合 本文档总结了JavaSE的基础知识点,涵盖了Java语言的发展史、特点、环境搭建、编写Java应用程序、ClassPath、Path环境变量的配置等。 一、Java语言发展史 Java语言由SUN公司在1991年研发,后被...
通过阅读"SSM框架整合教程——尚硅谷学习笔记 2022 年.md"或"SSM框架整合教程——尚硅谷学习笔记 2022 年.pdf",你可以深入学习如何配置SSM环境,创建基本的CRUD操作,以及如何优化和扩展SSM应用。这些知识点不仅...
### Excel_VBA与数据库(Access)整合笔记精要解析 #### 一、创建数据库和数据表的方法 在《Excel_VBA与数据库(Access)整合笔记》中,作者加肥猫详细介绍了通过多种技术手段实现Excel与Access数据库整合的过程。本文...
1. **无需Hibernate配置文件**:在Spring整合Hibernate时,我们不再在Hibernate的配置文件(hibernate.cfg.xml)中配置数据源、SessionFactory等,而是将其移到Spring的配置文件中,如`applicationContext.xml`。...
根据给定的文件信息,我们可以提取出关于"Maven3实战笔记整合"的知识点。由于文件内容部分出现了大量的乱码和不完整字符序列,无法直接从中提取有用的信息。但是,我们可以根据标题和描述以及通用的Maven知识点,来...
《Spring3.1 和 MyBatis 整合笔记》是一本深入探讨如何将Spring框架与MyBatis数据持久层框架整合的技术书籍。该资源提供了第二版的源代码,旨在帮助开发者更好地理解和实践这两种流行技术的集成。源代码的更新表明...
Excel+VBA与数据库(Access)整合笔记.doc
### SSH整合笔记 #### 一、三大框架整合 在企业级应用开发中,Spring、Struts2 和 Hibernate 组合起来被广泛称为 SSH 框架。这些框架各自解决了不同的问题,但组合在一起可以提供一个非常强大的解决方案。下面将...
网络营销与策划听课笔记整合.doc
### SSM整合笔记 #### Spring+SpringMVC+Mybatis框架整合详解 在现代Web开发中,使用多种技术栈进行项目构建是常见的实践之一。其中,“Spring+SpringMVC+Mybatis”组合(简称SSM)是一种非常流行的技术栈,被广泛...
这是@hongjilin的学习笔记(小部分是各种博客及官方资料的摘录或整合),旨在方便自己或身边同学的使用与查阅.目前阶段更新偏向前端学习笔记(本人目前是前端岗),但也会进行对Go、Java、Nodejs等后端语言以及对计算机...
SSH整合是Java Web开发中的一种常见模式,它指的是Spring、Struts2和Hibernate这三大开源框架的集成。这种集成能够构建出高效、可维护的Web应用程序。以下是对SSH整合的详细解析: 一、Spring框架 Spring是Java企业...
从提供的文件内容可以看出,整合SSM框架的笔记大体分为以下几个步骤: 一、搭建环境 - 创建数据库,设计表结构。 - 创建Maven工程,包括父工程(ssm_parent)以及子模块(ssm_web、ssm_service、ssm_dao、ssm_...
这是@hongjilin的学习笔记(小部分是各种博客及官方资料的摘录或整合),旨在方便自己或身边同学的使用与查阅.目前阶段更新偏向前端学习笔记(本人目前是前端岗),但也会进行对Go、Java、Nodejs等后端语言以及对计算机...