- 浏览: 1482173 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (691)
- linux (207)
- shell (33)
- java (42)
- 其他 (22)
- javascript (33)
- cloud (16)
- python (33)
- c (48)
- sql (12)
- 工具 (6)
- 缓存 (16)
- ubuntu (7)
- perl (3)
- lua (2)
- 超级有用 (2)
- 服务器 (2)
- mac (22)
- nginx (34)
- php (2)
- 内核 (2)
- gdb (13)
- ICTCLAS (2)
- mac android (0)
- unix (1)
- android (1)
- vim (1)
- epoll (1)
- ios (21)
- mysql (3)
- systemtap (1)
- 算法 (2)
- 汇编 (2)
- arm (3)
- 我的数据结构 (8)
- websocket (12)
- hadoop (5)
- thrift (2)
- hbase (1)
- graphviz (1)
- redis (1)
- raspberry (2)
- qemu (31)
- opencv (4)
- socket (1)
- opengl (1)
- ibeacons (1)
- emacs (6)
- openstack (24)
- docker (1)
- webrtc (11)
- angularjs (2)
- neutron (23)
- jslinux (18)
- 网络 (13)
- tap (9)
- tensorflow (8)
- nlu (4)
- asm.js (5)
- sip (3)
- xl2tp (5)
- conda (1)
- emscripten (6)
- ffmpeg (10)
- srt (1)
- wasm (5)
- bert (3)
- kaldi (4)
- 知识图谱 (1)
最新评论
-
wahahachuang8:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
websocket的helloworld -
q114687576:
http://www.blue-zero.com/WebSoc ...
websocket的helloworld -
zhaoyanzimm:
感谢您的分享,给我提供了很大的帮助,在使用过程中发现了一个问题 ...
nginx的helloworld模块的helloworld -
haoningabc:
leebyte 写道太NB了,期待早日用上Killinux!么 ...
qemu+emacs+gdb调试内核 -
leebyte:
太NB了,期待早日用上Killinux!
qemu+emacs+gdb调试内核
How To Write Directly to a Memory Locations In Java
http://robaustin.wikidot.com/how-to-write-to-direct-memory-locations-in-java
http://robaustin.wikidot.com/how-to-write-to-direct-memory-locations-in-java
If anyone has ever told you, you cannot write directly to memory locations in java, then they are wrong. Well, to be precise, they are half-wrong, you can write to memory locations as long as the memory is control by the JVM. Although this is possible, I strongly recommend that you don’t do it. Failing to get your code 100% correct will cause the JVM to crash. There maybe cases where you wish to optimize you code and write to memory directly but I would only do this as a last resort. On the Hotspot JVM, you are able to write and read directly to memory. One of the advantages of this technique is that is very fast, however it comes with no safe guards usually provided by the Java APIs. Its also not document by SUN. Use the java class sun.misc.Unsafe, some of the methods you may be interested in are : public native long getAddress(long address); public native void putAddress(long address, long value); public native long allocateMemory(long size); public native long reallocateMemory(long l, long l1); public native void setMemory(long l, long l1, byte b); public native void copyMemory(long l, long l1, long l2); You can't instantiate the class directly as it has a private constructor, so you will have to create an instance like this : Unsafe unsafe = null; try { Field field = sun.misc.Unsafe.class.getDeclaredField("theUnsafe"); field.setAccessible(true); unsafe = (sun.misc.Unsafe) field.get(null); } catch (Exception e) { throw new AssertionError(e); } you can then call import java.lang.reflect.Field; import sun.misc.Unsafe; public class Direct { public static void main(String... args) { Unsafe unsafe = null; try { Field field = sun.misc.Unsafe.class.getDeclaredField("theUnsafe"); field.setAccessible(true); unsafe = (sun.misc.Unsafe) field.get(null); } catch (Exception e) { throw new AssertionError(e); } long value = 12345; byte size = 1; long allocateMemory = unsafe.allocateMemory(size); unsafe.putAddress(allocateMemory, value); long readValue = unsafe.getAddress(allocateMemory); System.out.println("read value : " + readValue); } } this will output : read value : 12345
发表评论
-
tomcat的https的例子
2016-09-22 17:50 463参考http://jingyan.baidu.com/arti ... -
jpa
2014-11-25 20:14 580可以使用jpa生成数据库表 import javax.pe ... -
hadoop复习 1搭建
2014-07-23 17:38 784参考http://hadoop.apache.org/docs ... -
jspwebshell
2014-06-20 12:35 6729<%@ page contentType=" ... -
jvm总结
2013-03-04 19:02 1741分代 年轻代: 所有新生 ... -
java的upload
2013-01-24 19:31 1968好久没写java的东西了 遇到个服务器,不是标准的httpSe ... -
spring lucene rmi例子
2012-09-18 16:24 1905http://www.blogjava.net/freeman ... -
jna的使用
2012-04-22 21:06 2918遇到java调用共享内存的 ... -
hessian
2012-04-10 10:40 927http://hessian.caucho.com/ 这个好 ... -
jvm调优应该知道的一点东西
2012-02-27 18:13 1265概念 概念 Java 工具 jsta ... -
java socket备份
2012-02-22 10:01 1064package org.hao; import java ... -
单例模式7中
2011-12-28 09:56 924package com.sohu.zookeeper; // ... -
jprofiler6远程resin
2011-07-07 23:17 2703网上找的破解码:L-Larry_Lau@163.com#784 ... -
eclipse不装插件配置resin,可以debug
2011-06-27 23:41 1837新建java工程 1.目录如下 G:. ├─.settings ... -
session所有信息
2011-06-07 11:32 790转载http://www.99inf.net/Software ... -
看端口号用netstat -abn
2011-05-14 00:27 1312张孝祥讲过个fport,到哪都依赖他看端口被什么占用, 原来n ... -
hessian的helloworld
2011-05-12 11:02 1201参考http://hessian.caucho.com/#Ex ... -
resin日志
2011-05-03 14:40 1469resin-pro-3.1.9\conf\resin.conf ... -
maven-resin
2011-05-02 22:39 2345关于resin http://2hei.net/mt/2008 ... -
maven笔记
2011-05-02 14:31 1651国内的源 <repository ...
相关推荐
在Windows操作系统中,内存管理是一个非常重要的方面。Windows实现按需调页的虚拟内存机制,使得应用程序可以使用超过物理内存容量的虚拟内存。此外,Windows还使用了页面文件来扩展物理内存的容量。 在Java中,...
内存操作流是Java I/O系统的一个关键组件,它允许程序高效地在内存和外部存储之间移动数据。本文将深入探讨Java中的内存操作流,并以`ByteInp.java`这个文件为例进行讲解。 Java I/O库提供了多种流类型,包括字节流...
Java 实现内存动态分配主要涉及Java内存模型以及内存管理机制,包括堆内存和栈内存的分配,以及垃圾回收等概念。下面将详细解释这些知识点。 1. **Java内存模型** Java程序运行时,内存分为堆内存(Heap)和栈内存...
3. **Java Stack(Java栈)**:每个线程都有自己的Java栈,用于存储方法调用的局部变量、操作数栈和方法返回地址。当栈溢出时,会抛出`java.lang.StackOverflowError`。 4. **Program Counter Register(程序计数器...
Java内存模型是Java虚拟机规范中定义的一部分,它规定了Java程序中变量的读写行为,以及线程之间的交互规则。理解Java内存模型对于编写正确、高效的多线程程序至关重要。在Java 5之前,Java内存模型的描述比较模糊,...
### Java内存泄漏解决方案详解 #### 一、Java内存泄漏概述 在Java开发过程中,经常会遇到内存泄漏的问题,尤其是在长时间运行的应用程序中更为常见。本文将详细介绍如何解决Java内存泄漏问题,帮助开发者更好地...
在深入理解Java内存机制之前,我们需要了解底层硬件和操作系统的限制。 **硬件限制**:计算机硬件的限制决定了物理内存的可用性。例如,处理器的寄存器大小和物理地址大小共同决定了处理器能够直接寻址的内存范围。...
### Java的内存管理机制分析 #### 一、Java内存区域划分 Java的内存管理机制将内存分为以下几个区域: 1. **栈(Stack)**: - 存储局部变量(如基本类型的变量和对象的引用)。 - 每个线程拥有一个独立的栈。 ...
### Java之内存泄露 #### 一、引言 在Java编程中,内存管理是一个至关重要的环节。虽然Java具有自动垃圾回收机制,但这并不意味着开发者可以完全忽视内存管理问题。事实上,Java同样面临着内存泄露的风险。本文将...
Java内存模型,简称JMM(Java Memory Model),是Java编程语言规范的一部分,它定义了程序中各个线程如何访问和修改共享变量,以及如何确保数据的一致性。深入理解Java内存模型对于编写高效的并发程序至关重要。本文...
Java虚拟机(JVM)内存模型是Java编程语言的核心组成部分,它定义了程序运行时的数据区域和内存管理方式。深入理解这一模型对于优化Java应用程序性能、避免内存泄漏以及理解线程安全至关重要。以下是对Java虚拟机...
- **栈内存**:访问速度快,因为采用先进后出的方式进行操作。 #### 四、实际应用中的注意事项 1. **合理选择数据存储位置**:对于生命周期短的简单变量,推荐使用栈内存;而对于需要长期存在的复杂数据结构,则应...
在Java中,I/O流主要用于处理磁盘、网络等外部数据源,而内存流则专注于在内存中的数据操作。内存流通常用于读写内存对象,如数组,提供了一种高效且灵活的方式来传输和处理数据。 内存流主要分为两大类:`...
在本实验项目“JAVA操作系统实验存储管理图形化模拟程序”中,主要涉及的是操作系统领域的内存管理知识,通过JAVA 16编程语言实现了一个具有图形用户界面(GUI)的应用。这个程序设计的目标是帮助用户理解并可视化...
Java堆栈内存分析是Java编程中的重要概念,它关乎程序的性能优化和内存泄漏的预防。堆和栈是Java内存管理的两个主要区域,它们各自承担着不同的职责。本笔记将深入探讨这两个区域的工作原理以及如何进行有效的分析。...
Java内存模型定义了一套规则,确保多个线程间内存操作的可见性,从而可以正确地共享和修改数据。内存屏障(Memory Barrier)是一种用于控制指令重排序和内存可见性的机制,保证了内存操作的有序性和一致性。 最后,...
Java内存模型是并发编程中一个至关重要的概念,它定义了共享变量的访问规则,以及这些变量如何在多线程环境下进行读写操作。在深入理解Java内存模型之前,我们需要先了解并发编程模型的分类,然后掌握Java内存模型的...
Java内存模型,简称JMM(Java Memory Model),是Java编程语言规范的一部分,它定义了线程如何共享和访问内存,以及在多线程环境中如何保证数据一致性。理解JMM对于编写高效、正确且线程安全的Java代码至关重要。 ...
在详细介绍Java 8内存模型之前,需要了解的是,JVM(Java虚拟机)在启动时,操作系统会为JVM进程分配一系列内存区域,这些内存区域包括堆(Heap)、元空间(MetaSpace)、线程堆栈(Thread Stack)、共享库(Shared ...
Java内存模型,简称JMM(Java Memory Model),是Java虚拟机规范中定义的一个抽象概念,它规定了程序中各个线程如何访问共享变量,以及对这些访问进行同步控制的规则。理解Java内存模型对于编写多线程并发程序至关...