`

笔记整合1

 
阅读更多

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语言允许通过类名直接访问类变量。

分享到:
评论

相关推荐

    Redis笔记整合1

    1. `volatile-lru`:优先淘汰最近最少使用的带有过期时间的键。 2. `volatile-ttl`:优先淘汰即将过期的带有过期时间的键。 3. `volatile-random`:随机淘汰带有过期时间的键。 4. `allkeys-lru`:在所有键中淘汰...

    JAVA基础笔记整合.doc

    JAVA基础笔记整合,java基础部分的一些笔记整合,适合初学者。

    SSH整合笔记和配置文

    ### SSH整合笔记和配置文件解析 #### SSH框架简介 SSH指的是Struts2、Spring以及Hibernate三个开源框架的集成应用,它们分别是MVC框架、轻量级IoC容器和ORM持久层框架。在实际项目开发中,这三个框架经常被一起使用...

    《整合营销传播》笔记.docx

    《整合营销传播》是一本深入探讨市场营销理论与实践的著作,其笔记主要涵盖了整合营销传播观念的演进、传统营销传播的困境、整合营销传播的兴起以及整合营销传播方案等内容。 在第一章中,我们可以看到营销理论的...

    SSH框架整合笔记

    ### SSH框架整合知识点详解 #### 一、框架的搭建与配置 SSH框架指的是Spring、...需要注意的是,本篇笔记仅为SSH框架整合的一部分内容,完整的SSH框架还包括Spring和Hibernate的集成,涉及到更多的配置和编码工作。

    javaSE基础笔记整合

    JavaSE基础笔记整合 本文档总结了JavaSE的基础知识点,涵盖了Java语言的发展史、特点、环境搭建、编写Java应用程序、ClassPath、Path环境变量的配置等。 一、Java语言发展史 Java语言由SUN公司在1991年研发,后被...

    SSM 框架整合教程-尚硅谷学习笔记 2022 年

    通过阅读"SSM框架整合教程——尚硅谷学习笔记 2022 年.md"或"SSM框架整合教程——尚硅谷学习笔记 2022 年.pdf",你可以深入学习如何配置SSM环境,创建基本的CRUD操作,以及如何优化和扩展SSM应用。这些知识点不仅...

    Excel_VBA与数据库(Access)整合笔记

    ### Excel_VBA与数据库(Access)整合笔记精要解析 #### 一、创建数据库和数据表的方法 在《Excel_VBA与数据库(Access)整合笔记》中,作者加肥猫详细介绍了通过多种技术手段实现Excel与Access数据库整合的过程。本文...

    ssh 框架完全整合笔记

    1. **无需Hibernate配置文件**:在Spring整合Hibernate时,我们不再在Hibernate的配置文件(hibernate.cfg.xml)中配置数据源、SessionFactory等,而是将其移到Spring的配置文件中,如`applicationContext.xml`。...

    Maven3实战笔记整合

    根据给定的文件信息,我们可以提取出关于"Maven3实战笔记整合"的知识点。由于文件内容部分出现了大量的乱码和不完整字符序列,无法直接从中提取有用的信息。但是,我们可以根据标题和描述以及通用的Maven知识点,来...

    《Spring3.1 和 MyBatis 整合笔记 》源代码(第二版)

    《Spring3.1 和 MyBatis 整合笔记》是一本深入探讨如何将Spring框架与MyBatis数据持久层框架整合的技术书籍。该资源提供了第二版的源代码,旨在帮助开发者更好地理解和实践这两种流行技术的集成。源代码的更新表明...

    Excel+VBA与数据库(Access)整合笔记.doc

    Excel+VBA与数据库(Access)整合笔记.doc

    SSH整合笔记

    ### SSH整合笔记 #### 一、三大框架整合 在企业级应用开发中,Spring、Struts2 和 Hibernate 组合起来被广泛称为 SSH 框架。这些框架各自解决了不同的问题,但组合在一起可以提供一个非常强大的解决方案。下面将...

    网络营销与策划听课笔记整合.doc

    网络营销与策划听课笔记整合.doc

    SSM整合笔记

    ### SSM整合笔记 #### Spring+SpringMVC+Mybatis框架整合详解 在现代Web开发中,使用多种技术栈进行项目构建是常见的实践之一。其中,“Spring+SpringMVC+Mybatis”组合(简称SSM)是一种非常流行的技术栈,被广泛...

    @hongjilin 的学习笔记与各种学习资料笔记整合

    这是@hongjilin的学习笔记(小部分是各种博客及官方资料的摘录或整合),旨在方便自己或身边同学的使用与查阅.目前阶段更新偏向前端学习笔记(本人目前是前端岗),但也会进行对Go、Java、Nodejs等后端语言以及对计算机...

    SSH笔记-整合Spring2、Struts2、Hibernate4

    SSH整合是Java Web开发中的一种常见模式,它指的是Spring、Struts2和Hibernate这三大开源框架的集成。这种集成能够构建出高效、可维护的Web应用程序。以下是对SSH整合的详细解析: 一、Spring框架 Spring是Java企业...

    Java的SSM框架最强整合的笔记

    从提供的文件内容可以看出,整合SSM框架的笔记大体分为以下几个步骤: 一、搭建环境 - 创建数据库,设计表结构。 - 创建Maven工程,包括父工程(ssm_parent)以及子模块(ssm_web、ssm_service、ssm_dao、ssm_...

    这是 @hongjilin 的学习笔记与各种学习资料笔记整合

    这是@hongjilin的学习笔记(小部分是各种博客及官方资料的摘录或整合),旨在方便自己或身边同学的使用与查阅.目前阶段更新偏向前端学习笔记(本人目前是前端岗),但也会进行对Go、Java、Nodejs等后端语言以及对计算机...

Global site tag (gtag.js) - Google Analytics