欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java编程思想笔记(二)一切都是对象

程序员文章站 2022-03-15 11:50:47
...

 

1 . java中5个存放数据或对象的地方:

 

(1).寄存器(Registers):位于CPU内部,是速度最快的存储区,但是数量和容量有限。在java中不能直接操作寄存器。

(2).栈(Stack):栈位于通用随机访问存储器 (General random-access memory,RAM,内存) 中,通过处理器的栈指针访问,栈指针从栈顶向栈底分配内存,从栈底向栈顶释放内存。栈是仅次于寄存器的速度第二快的存储器,在java程序中,一般的8种基本类型数据和对象的引用通常存放在栈内存中,不通过new关键字的字符串对象也是存放在栈的字符串池中。栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。

(3).堆(Heap):也是位于通用随机访问存储器 (General random-access memory,RAM,内存) 中的共享内存池。Java的堆是一个运行时数据区,类的对象从中分配空间,凡是通过new关键字创建的对象都存放在堆内存中,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。

(4).常量存储器(Constant storage):java中的常数值通常直接置于程序代码内部(final修饰),或存放在系统内嵌的只读存储器中(read-only memory,ROM)的,更严格.

(5).非随机存储器(Non-RAM storage):对于流对象和持久化对象,对于流式对象,对象会变成字节流,通常会发给另一台机器。持久化对象通常存放在程序外的存储器,如硬盘。

 

2.特例:基本类型

new一个对象存储在堆里,因此用new创建一个对象——特别是小的,简单的变量往往不是很有效的。
对于这些类型,Java采取不用new来创建变量,而是创建一个并非是引用的自动变量(直接存储值,并且存储在堆栈中)。

Java语言对于每种基本类型所占存储空间大小是固定的,不像其他语言随机器硬件架构的变化而变化。(可移植性更高)
java编程思想笔记(二)一切都是对象
            
    
    博客分类: javawebjava编程思想笔记 java编程 

 

       /**
         * 基本类型创建的不是引用,而是一个自动变量,直接存储值,并且存储在栈中,性能更高
         * 基本类型都有相对应的包装器类,能在堆中创建一个非基本对象,用来表示相对应的基本类型。
         * 如果是用包装类型(Integer,Character)会放入堆中
         */
        //基本类型
        int i = 5;
        //包装类型
        Integer integer = new Integer(i);
        //Java SE5自动包装
        Integer integer1 = 4;
        //反向转换
        int i1 = integer1;

 2.1 高精度数字

Java 1.1 增加了两个类,用于进行高精度的计算:BigInteger 和BigDecimal。尽管它们大致可以划分为

“封装器”类型,但两者都没有对应的“主类型”。这两个类都有自己特殊的“方法”.

运算需要调用方法才行,计算速度慢些,但换来高精度.

 

3. 数组

创建对象数组时,实际创建的是一个引用数组。而且每个引用都会自动初始化成一个特殊值,并带有自己的

关键字:null(空)。一旦Java 看到null,就知道该句柄并未指向一个对象。正式使用前,必须为每个引用都分配一个对象

 

4. Java只处理public和protected访问控制权限成员的文档注释,private和默认的包访问控制权限成员的文档注释将被忽略。

 

 

相关标签: java 编程