关闭

对象访问时如何进行的

290人阅读 评论(0) 收藏 举报
分类:

首先最简单的访问也需要设计三个内存区:java栈,java堆,方法区

java栈:存放存放引用

java堆:存放实例、

方法区:包含能查找到此对象类型数据(如对象类型,父类,实现的借口,方法等)的地址信息


不同的虚拟机实现的对象访问方式会有所不同,主流的访问方式有两种,使用句柄,和直接指针

1:句柄方式访问:java堆中将会划分出一块内存来作为句柄池,,reference中存储的就是对象的句柄地址,而

句柄中包含了对象实例数据和类型数据各自的居停地址信息

2:直接指针,就是;reference中存放对象的地址

比较这两种方式的有优点和缺点

句柄方式:稳定(reference中存放的地址稳定),当对象地址发生改变时,只需要改变句柄池对对象的引用,缺点:消耗内存

直接指针:效率高,缺点:不稳定(reference中存放的地址不稳定),



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

javascript 创建对象,访问对象的属性,访问对象的方法。

/* 1.在 JavaScript中,几乎所有的事物都是对象。 2.JavaScript 语句向浏览器发出的命令。语句的作用是告诉浏览器该做什么。 ...
  • zhanggaofeixy
  • zhanggaofeixy
  • 2016-08-07 20:49
  • 1606

java多线程之对象的并发访问

1.synchronized同步方法 --1.1方法内的变量是线程安全的 解释:由于方法内的变量是私有的,本体访问的同时别人访问不了,所以是线程安全的。 --1.2实例变量是非线程安全的 解释...
  • ya_1249463314
  • ya_1249463314
  • 2016-09-18 09:11
  • 5050

java多线程(对象和变量的并发访问)

在现实开发中,我们写的线程肯定会有不同的实例在执行,此时就可能会出现”非线程安全问题”,非线程安全就是:多个线程对同一个对象中的实例变量进行并发访问时候,有可能A和B线程同时读取到数据,先后进行更改,...
  • mockingbirds
  • mockingbirds
  • 2016-07-11 09:37
  • 5531

【黑马程序员】关于多线程聊天室中出现的“由于其他线程拥有此对象,因此调用线程无法对其进行访问”问题的探究

在搭建多线程聊天室的过程中,由于涉及到多线程的知识,所以遇到了一个关于多线程间超线程操作的问题,即当服务端与客户端连接成功时,文本框中会显示“连接成功!”,而由于修改文本框的Text属性的是新线程,而...
  • ntyt123
  • ntyt123
  • 2013-12-13 00:47
  • 439

Oracle--DBLink 进行数据库之间对象的访问操作

Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作...
  • muzi1314_
  • muzi1314_
  • 2016-12-13 14:14
  • 355

**ANDROID**# 第七章图形与图像处理(静态处理) > Bitmap是有像素点构成的点阵图。 ------ ## 使用简单的图片 ---- * 通过Drawable对象进行访问。

使用简单的图片 通过Drawable对象进行访问。 R.drawable.file_name @drawable/file_name 通过BitmapDrawable对Bitmap对象进行封装...
  • Estom_yin
  • Estom_yin
  • 2017-06-10 11:06
  • 287

使用Oracle DBLink进行数据库之间对象的访问操作

Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作...
  • HarderXin
  • HarderXin
  • 2014-09-28 12:07
  • 1782

WPF 由于其他线程拥有此对象,因此调用线程无法对其进行访问

转自:  http://blog.sina.com.cn/s/blog_962250db0101487n.html 除非已经对WPF体系结构非常熟悉,对多线程开发很了解,不然我们在与WPF打...
  • macavalier
  • macavalier
  • 2015-04-22 18:44
  • 1834

使用Oracle DBLink进行数据库之间对象的访问操作

Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作...
  • wulianhai
  • wulianhai
  • 2017-04-25 11:31
  • 182

访问者模式(一个集合内部对象状态的改变,进行相应的炒作)

理解就根据不同人(一个人类的子类,还要满足,这个类比较稳定,且数量较少)的不同状态做出不同的相应。 这个代码主要实现就是二次分发: 这个不是很常有,慢慢理解吧!
  • dashileipeng
  • dashileipeng
  • 2013-06-07 19:13
  • 300
    个人资料
    • 访问:446060次
    • 积分:7850
    • 等级:
    • 排名:第3106名
    • 原创:342篇
    • 转载:138篇
    • 译文:4篇
    • 评论:67条
    博客专栏