您的位置:首页 > 编程语言 > Java开发

对象

2015-11-24 00:30 274 查看

一切都是对象

尽管java是基于C++的,但是java是一种更加纯粹的面向对象的程序设计语言。(都是混合/杂合型语言)

2.1用引用操作对象

每种变成语言都有自己的曹总内存中元素的形式。有时候,程序员必须注意将要处理的数据是什么类型
所有这一切在java这里都得到了简化。一切都被视作对象,因此可采用简餐固定的语法

String s;
这里的创建只是引用,并不是对象。如果此时向s发送一个消息就会返回一个运行时错误

String s = "asdf";
字符串可以用带引号的文本初始化

2.2必须由你创建对象

一旦创建了一个引用,就希望它能与一个新的对象关联。通常用new操作符来实现。new的意思是“给我一个新对象”
String s = new String("asdf");
2.2.1存储到什么地方
程序运行时,对象是怎么进行放置安排的被?特别是内存是怎样分配的呢?

1)寄存器

这是最快的存储区,因为它位于不同于其他存储区的地方--处理器内部,寄存器的数量极其有限,所以寄存器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器的任何迹象

2)堆栈

位于通用RAM(随机访问存储器)中,但是通过堆栈指针可以从处理器哪里获取直接支持。堆栈指针若向下移动,则分配新的内存,向上移动则释放已经分配的内存。这是一种快速有效的分配内存的方法,仅次于寄存器。创建程序的时候java必须知道堆栈内所有项的确切生命周期,以便于上下移动指针。这一约定限制了程序的灵活性。所以某些java数据存储于堆栈中--特别是对象引用,但是java对象并不存储在其中

3)堆

一种通用内存池,用于存放所有的java对象。堆位于不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存放了多长时间。更具有灵活性
当需要一个对象的时候我们只需要用new写一行简单的代码就OK了。这种灵活是有代价的:分配和清理需要比堆栈花费更多的时间

4)常量存储

常量值通常直接存放在程序代码内部,这样做是安全的,因为他们永远不会被改变。有时候,在嵌入式系统中,常量本身会于其他部分分割离开,所以这种情况下,可以选择将其存放在ROM中

5)非RAM存储

如果数据完全存活在程序之外,那么他可以不受程序控制,程序没有运行也可以存在。(流对象和持久化对象)流对象中,对象转化成字节流,通常被发送给另一台机器。在持久化对象中,对象被存放在磁盘上,因此即使程序终止,也可保存自己的状态。这种存放方式的技巧在于:对象转换成在其他媒介上的失误,在需要时可以恢复成常规的

2.2.2特例:基本类型

boolen 对应bool
基本类型都有自己的包装器类型。。以后再看

2.2.3永远不需要销毁的对象

java不允许作用于隐藏

2.4 创建新的类型:类

2.4.1 字段和方法

成员变量在java中叫做字段
成员函数在java中叫做方法

class DataOnly
{
int i;
double d;
boolean b;
}

DataOnly = new DataOnly();

除了局部变量java变量在没有赋初值的情况下 都会有默认值

2.5方法、参数、返回值

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java