加入收藏 | 设为首页 | 会员中心 | 我要投稿 揭阳站长网 (https://www.0663zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

Java基础——面向对象和类

发布时间:2020-10-24 07:59:09 所属栏目:动态 来源:互联网
导读:先从简化的Java内存模型开始 这是一个简化版的Java内存模型。该模型中把内存分为了栈区、堆区、方法区。 栈区 主要用于存放方法执行时的各种基本数据类型和引用数据类型。 例如图中,main方法中声明了引用类型p,那么栈区中就会为p申请一块内存。 对于基本数

先从简化的Java内存模型开始

 

  • 这是一个简化版的Java内存模型。该模型中把内存分为了栈区、堆区、方法区。

简化版Java内存模型

栈区

 

  • 主要用于存放方法执行时的各种基本数据类型和引用数据类型。
  • 例如图中,main方法中声明了引用类型p,那么栈区中就会为p申请一块内存。
  • 对于基本数据类型和引用数据类型,他们在栈区中存储的内容是不一样的:

基本数据类型的存储

 

  • 基本数据类型在栈区中存储的是值。并且对于相同的值,基本数据类型共用一块内存。什么意思呢?看下图:

栈区

  • 像"1"这样的基本数据类型的值,我们称为直接量。int b = 1;时,会先查找栈中是否存在直接量"1",如果找到了,那么直接使用这个直接量。
  • 所以真正存储在栈区中的其实是直接量,相同的直接量,不会重复占用多个内存空间,这就是上面代码a和b使用同一地址的原因。而不同的值会被分配到不同的地址去,所以如果a=1、b=2,那么他们的地址又是不同的。
  • 不同类型的相同值,也是会被分配到不同地址,很好理解嘛,因为他们需要的内存大小都不一样嘛。比如1.0和1.0F,他们的在栈中的地址是不一样的。
  • 尽管这个特性看起来很像是“引用”,但是我们需要避免这样去称呼他们。因为“引用”指的是利用栈区中的内存地址,指向堆区中的数据。

单例模式

什么是单例模式

 

    • 单例模式很好理解,其实就是通过一定的封装,让一个类在使用的时候,始终只会有一个实例。
    • 单例模式可进一步分为饿汉式和懒汉式。
      • 饿汉式在类加载时就进行初始化。
      • 懒汉式在get方法被初次调用的时候再进行初始化。
      • 实际开发中推荐使用饿汉式,原因和多线程的问题有关。

(编辑:揭阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!