本帖最后由 enjoycode 于 2018-6-15 00:10 编辑
每种编程语言都有自己的操作内存中元素的方式,在Java中,一切都被视为对象,因此可以采用单一固定的语法。尽管一切都看作对象,单操作的标识符实际上是对象的一个“引用”。可以用遥控器(引用)来操控电视(对象)的例子来理解。只要握住这个遥控器,就能保持与电视机的连接。当有人想改变频道或者减小音量是,实际操控的是遥控器(引用),再由遥控器来控制电视机(对象)。此外,及时没有电视机,遥控器也可以独立存在。也就是说,你拥有一个引用,并不需要有一个对象与之关联。因此,如果想操控一个词或者句子,则可以创建一个String引用:String str;
但这里所创建的知识引用,并不是对象。如果此时向s发送一个消息,就会返回一个运行时错误。这是因为此时s实际上没有与任何事物相关联。因此,一种安全的做法是:创建一个引用的同时扁对其进行初始化。String s = “hello”; 这里用到了Java语言的一个特性:字符串可以用带引号的文本初始化。通常,必须对对象才会用一种更通用的初始化方法:String s = new String(“hello”); new关键字的意思是创建一个新对象。
为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的数据处理方式和内存管理方式。JVM的内存划分情况如下:
1、寄存器:这是最快的存储区,因为它位于不同于其他存储区的地方—处理器内部,单是寄存器的数量极其有限,所以寄存器是根据需求进行分配,不能直接控制。
2、本地方法栈:JVM在使用操作系统功能时使用,与我们开发无关。
3、方法区:存储可以运行的class文件。
4、堆内存:存储对象或者数组,有new来创建的都存储在堆内存。
5、方法栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行。 |
|