java对象
来源:互联网 发布:股指软件 编辑:程序博客网 时间:2024/05/19 01:30
如有问题请在下面留言,互相探讨。
什么是对象
java是面向对象的程序设计语言,那什么是对象?对象就是指任何一个事物可以使具体的也可以是抽象的。java面向对象就是把实际或者你想象的或者介于两者之间的事物用java语言来表达出来。
引用
你使用对象对对象做一系列操作并不是直接操作这个对象,而是一个“引用”,是间接的操作对象。就好比老师叫你去做一件事,并不是老师直接控制你,只是发送了个命令。
如果你想操纵一个词或者句子你可以创建一个引用:String s;
注意这里没有对象只有引用,说明可以只有引用没有对象。
创建对象
又了引用就必须要有对象,对象一般需要new出来,如String s=new String("asd");
。
对象的存储
- 寄存器
位于处理器内部最快存储区,所以你不能直接控制。 - 堆栈
位于通用RAM(随机访问存储器)中,堆栈指针受处理器控制,指针上移则分配新的内存,下移则释放内存。所以是一种快速有效的存储方法,仅次于寄存器。创建程序时,java系统必须知道在堆栈所有项的确切生命周期(下代码控制),以便上下移动指针,这一约束限制了程序的灵活性。对象引用和基础类型数据等存储在这。 - 堆
一种通用的内存池(RAM),用于存放java对象。具有很大灵活性,编译器不需要知道存储的数据的生命周期。新建一个对象就会自动分配空间,也会自动清理,但是时间慢。 - 常量存储
常量值直接存储在程序代码内部。 - 非RAM存储
某些数据完全存活在程序之外,比如流对象和持久化对象。
基本类型
基本类型数据不需要new来创建一个对象,同时它存储在堆栈中。基本类型具有包装器可以创建一个非基本对象,如Character ch=new Character('x');
,存放在堆中。
java数组
在C和C++中使用数组是危险的,因为C和C++中数组就是内存块。如果数组越界或者使用没有初始化的数组,将会导致不可预料的后果。java为了安全和高效,付出了内存开销和运行时检查的代价。当创建数组但没有初始化时,数组会被自动初始化一个特定值null,null告诉java它还没有被初始化,如果使用就会报错,基本类型的数组初始值为0。
对象的销毁
java对象不具备和基本类型一样的生命周期。当用new创建一个java对象时,它可以存活在作用域之外。如下:
{ String s=new String("a string");}
作用域结束时对象引用所占堆栈内存就释放了,但s指向的对象可以仍然 占用空间或许它会被传到其他需要。(当然基础类型的数据可能也会被需要但是它比较简单直接赋值就行,new出来的对象包含基础类型数据在传值的时候重新赋值比较麻烦?ps:我自己的思考)
担心对象一直占用空间?不用,java有一个垃圾回收器,可以监控对象是否被需要,如果不就释放所占空间,这样就消除了内存泄漏的问题。
- Java对象
- Java对象
- java对象
- JAVA-对象
- java对象
- Java 对象
- Java对象
- java对象
- Java 对象
- java对象
- java对象
- java对象
- java对象
- Java 对象
- Java对象
- java对象
- Java对象
- java----Java面向对象
- 汇编语言: 编写一个程序,从键盘输入一个 0~65535 之间的 10 进制无符号数,然后以 16 进制 和四进制数形式显示出所输入的数。
- tomcat的性能调优
- gcc常用命令参数
- mybatis缓存原理
- USACO-Section 1.3 Wormholes[搜索]
- java对象
- You are my brother
- 自定义Chrome浏览器新建标签页为空白页
- 看《我的工科女友》感受
- 瑞利信道,莱斯信道和高斯信道模型
- BZOJ 2120: 数颜色
- A + B (python)
- 备忘
- mac版 Intellij IDEA 弹窗报 this license XXXXXXXX has been cancelled