当前位置: 首页 > 面试题库 >

Dalvik的内存模型与Java的相同吗?

谷光誉
2023-03-14
问题内容

Dalvik的内存模型与Java的相同吗?我对引用和非long/非double原始变量的读写是否是原子的特别感兴趣,但是我也想知道两个平台的内存模型之间是否存在差异。


问题答案:

从4.0(冰淇淋三明治)开始,Dalvik的行为应与JSR-133(Java内存模型)相匹配。

从3.0(Honeycomb)开始,大多数组件都已安装到位,但忽略了一些在实践中很难遇到的小事情(例如,最终确定中的一些边缘案例)。

从2.3版(Gingerbread)开始,Dalvik在单处理器上通常是正确的,但是final缺少在SMP硬件上正常运行(例如正确的现场处理)所需的一些关键功能。

在姜饼之前,根本没有记忆障碍,而且基本的东西volatile long都坏了。



 类似资料:
  • 使用包含Scala和Akka在内的Typesafe平台的主要好处是它简化了并发软件的编写过程。本文将讨论Typesafe平台,尤其是Akka是如何在并发应用中访问共享内存的。 Java内存模型 在Java 5之前,Java内存模型(JMM)定义是有问题的。当多个线程访问共享内存时很可能得到各种奇怪的结果,例如: 一个线程看不到其它线程所写入的值:可见性问题 由于指令没有按期望的顺序执行,一个线程观

  • 一、Java内存区域 方法区(公有): 用户存储已被虚拟机加载的类信息,常量,静态常量,即时编译器编译后的代码等数据。异常状态 OutOfMemoryError 其中包含常量池:用户存放编译器生成的各种字面量和符号引用。 堆(公有): 是JVM所管理的内存中最大的一块。唯一目的就是存放实例对象,几乎所有的对象实例都在这里分配。Java堆是垃圾收集器管理的主要区域,因此很多时候也被称为“GC堆”。异

  • 规范了Java虚拟机与计算机内存是如何协调工作的,规定了一个线程如何及何时能看到其他线程修改过的共享变量,在必须时如何同步地访问共享变量,控制线程本地内容和共享内容之间的同步。 2. 同步八种操作 操作 定义 lock(锁定) unlock(解锁) read(读取) load(载入) use(使用) assign(赋值) store(存储) write(写入) 3. 同步规则 Read和Load之

  • 在了解什么是 Java 内存模型之前,先了解一下为什么要提出 Java 内存模型。 之前提到过并发编程有三大问题 CPU 缓存,在多核 CPU 的情况下,带来了可见性问题 操作系统对当前执行线程的切换,带来了原子性问题 译器指令重排优化,带来了有序性问题 为了解决并发编程的三大问题,提出了 JSR-133,新的 Java 内存模型,JDK 5 开始使用。 简单总结下 Java 内存模型是 JVM

  • 我正在努力避免使用多个JTable重复数据。基本上我有一个TableModel,它有一个数据的arraylist和一个字符串[]头。 到目前为止没有什么新东西。现在我有了另一个TableModel,它具有相同的数据数组列表,但具有不同的字符串[]标头。 我无法使我的代码正常工作。我很想知道如何跨多表模型共享数据的arrayList。 因此,当我更改数据时,所有模型都会更新,不会出现数据重复。我想避

  • 问题内容: 我想知道与ArrayList相比,Java HashMap的内存开销是多少? 更新: 我想提高搜索相同对象的大包装(600万以上)的特定值的速度。 因此,我正在考虑使用一个或多个HashMap而不是使用ArrayList。但是我想知道HashMap的开销是多少。 据我了解,密钥不是存储的,只是密钥的哈希,因此它应该类似于 对象的哈希大小+一个指针 。 但是使用什么哈希函数?是对象提供的