Java - 一切都是对象

1 用引用操作对象

在 Java 语言中我们知道一切都是对象,但操作的标识符其实是一个“引用”,一个引用并不一定需要和一个对象关联。

String str ;

这时 str 就是一个引用而不是一个对象。当我们对一个为初始化的引用进行操作时便会遇到运行时异常。

2 对象的创建

     存储到什么地方

当程序运行时,对象所存放的位置:

  • 寄存器:这是最快的存储区,它位于处理器内部,但是存储器的数量是极其有限的,所以存储器是按需分配,我们不可以进行操作。
  • 堆栈:仅次于寄存器,位于通用 RAM(随机访问存储器),通过堆栈指针可以从存储器中分配/释放内存,java 系统必须知道存储在堆栈内所有项的确切的生命周期,以便于上下移动指针,这一约束限制了程序的灵活性,所以对象一般不会被存储着堆栈中,堆栈一般存储对象的引用。
  • 堆:一种通用的内存池(位于RAM),用于存放 java 对象,在堆中分配有很大的灵活性,因为不需要知道存储在堆中的数据的生命周期,但分配/清理可以消耗的时间要长于堆栈。
  • 常量存储:常量值通常被存储在程序代码内部,因为其永远都不会被改变。
  • 非 RAM 存储

     基本类型

基本类型 默认值 大小
boolean false -
char null 16b
byte (byte)0 8b
short (short)0 16b
int 0 32b
long 0L 64b
float 0f 32b
double 0.0d 64b
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 尽管以C++为基础,但是Java是一种更加纯粹的面向对象的程序设计语言。 1.1用引用(句柄)操纵对象 尽管将一切...
    JuSong阅读 287评论 0 1
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,366评论 11 349
  • 前言 不知道大家有没有这样一种感觉,程序员的数量井喷了。可能是因为互联网火了,也可能是各家培训机构为我们拉来了大量...
    活这么大就没饱过阅读 2,747评论 6 25
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就...
    木有鱼丸啦阅读 566评论 0 0