没有合适的资源?快使用搜索试试~ 我知道了~
Java学习笔记,Java基础,Java之路
需积分: 0 5 下载量 135 浏览量
2010-09-08
15:30:21
上传
评论
收藏 18KB DOCX 举报
温馨提示
试读
2页
Java学习笔记,个人学习Java的心得及体会
资源详情
资源评论
资源推荐
对象:要想请求一个对象,就必须对该对象发送一条消息。更具体的说,可以把消息
想你为对某个特定对象的方法的调用请求。
可以确保类的每个基本数据类型成员有一个默认值,但这并不适用于“局部”变量
(即并非某个类的字段),这种变量不会被自动初始化。
在执行社会化转换时,总是对该数字执行截尾。如果想要得到舍入的结果,就需要使
用 中的 方法。
系统在创建对象时,会先自动初始化父类的静态字段,接着初始化自己的静态字段,
然后初始化父类的非静态字段,然后初始化自己的非静态字段,最后才调用构造器。
堆和栈的区别:
把内存划分成两种:一种是栈内存,一种是堆内存。
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。
当在一段代码块定义一个变量时, 就在栈中为这个变量分配内存空间,当超过变
量的作用域后, 会自动释放掉为该变量所分配的内存空间,该内存空间可以立即
被另作他用。
堆内存用来存放由 创建的对象和数组。在堆中分配的内存,由 虚拟机的自动
垃圾回收器来管理。
在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变
量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的
引用变量。引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使
用栈中的引用变量来访问堆中的数组或对象。
栈与堆都是 用来在 中存放数据的地方。与 不同, 自动管理栈和堆,
程序员不能直接地设置栈或堆。 的堆是一个运行时数据区类的对象从中分配空间。
这些对象通过 、、 和 等指令建立,它们不需要
程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存
大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的, 的垃
圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,
存取速度较慢。
栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存
在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型
的变量(!"#$##%)和对象句柄。
栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义:
!&'
!#&;
编译器先处理 !&;首先它会在栈中创建一个变量为 的引用,然后查找栈中是否
有 这个值,如果没找到,就将 存放进来,然后将 指向 。接着处理 !#&;在
创建完 # 的引用变量后,因为在栈中已经有 这个值,便将 # 直接指向 。这样,就出
现了 与 # 同时均指向 的情况。
这时,如果再令 &;那么编译器会重新搜索栈中是否有 值,如果没有,则将 存
放进来,并令 指向 ;如果已经有了,则直接将 指向这个地址。因此 值的改变不
会影响到 # 的值。
要注意这种数据的共享与两个对象的引用同时指向一个对象的这种共享是不同的,
因为这种情况 的修改并不会影响到 #它是由编译器完成的,它有利于节省空间。而
一个对象引用变量修改了这个对象的内部状态,会影响到另一个对象引用变量。
(! 是一个特殊的包装类数据。可以用:
xwanglyxwangly
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0