JVM全称是java Virtual Machine(java虚拟机),JVM屏蔽了与各个计算机平台相关的软件和硬件差异。
在接下来的日子里,通过写博客的形式学习JVM,让自己更懂得Java!
本系列文章是对《深入分析javaweb技术内幕》和《深入理解java虚拟机》的总结,欢迎大家一起吐槽,一起进步。
《JVM解读》第一篇:JVM体系结构
《JVM解读》第二篇:JVM类加载器ClassL...
分类:
编程语言 时间:
2015-06-26 23:49:48
阅读次数:
161
引言 ? ? 学习Java也有一段时间了,总感觉有些东西学的不是很精通。例如Java内存区域到底是怎么样的?程序是怎么跑的?对象是怎么存放的?这些都影响了我对自己的代码的熟悉程度。 一 运行时数据区域 ? ? Ja...
分类:
编程语言 时间:
2015-06-24 22:41:37
阅读次数:
205
(五):系统调用的实现1:实现系统调用实现一个系统调用就是考虑他的用途,每一个系统调用都有一个确定的用途,在Linux中不提倡采用多用途的系统调用(一个系统调用通过传递不同的参数值来选择完成不同的工作)。2:参数验证系统调用必须仔细检查他们所有的参数是否合法有效。最重要的一项检查就是检查用户提供的指针是否有效。
在接收一个用户空间的指针之前,内核必须保证:?1:指针指向的内存区域属于用户空间,进程...
分类:
其他好文 时间:
2015-06-23 21:42:22
阅读次数:
138
1.前言
本篇文章的所有例子,基于RHEL6.5平台(linux kernal: 2.6.32-431.el6.i686)。
2.介绍
共享内存也是一种IPC,它是目前最快的IPC,它的使用方式是将同一个内存区映射到共享它的不同进程的地址空间中,这样这些进程间的通信就不再需要通过内核,只需对该共享的内存区域进程操作就可以了。
共享内存与其他的进程间通信最大的优点是:数据的复制只...
分类:
系统相关 时间:
2015-06-22 01:13:20
阅读次数:
436
堆内存:新域+旧域设置堆内存初始化大小java -Xms128m 设置堆内存初始化大小128MB设置堆内存最大大小java -Xmx256m 设置堆内存最大256MB通常将堆内存的初始化大小与最大大小设置成一样,这样就避免了在内存不足的时候动态增加堆内存的大小设置新域大小java -Xms256.....
分类:
其他好文 时间:
2015-06-21 15:40:48
阅读次数:
117
作为一个程序员,仅仅知道怎么用是远远不够的。起码,你需要知道为什么可以这么用,即我们所谓底层的东西。
那到底什么是底层呢?我觉得这不能一概而论。以我现在的知识水平而言:对于Web开发者,TCP/IP、HTTP等等协议可能就是底层;对于C、C++程序员,内存、指针等等可能就是底层的东西。那对于Java开发者,你的Java代码运行所在的JVM可能就是你所需要去了解、理解的东西。
我会在接下来的一段时间,和读者您一起去学习JVM,所有内容均参考自《深入理解Java虚拟机:JVM高级特性与最佳实践》(第二版),感谢...
分类:
编程语言 时间:
2015-06-21 11:56:36
阅读次数:
214
写了placement new也要写placement delete本文主要内容是对placement new 和 placement delete的介绍,以及在什么情况下使用placement new和placement delete。对于语句Widget* pw=new Widget;来说,该语句做了两件事情,第一件事情是申请了内存区域;第二件事情是在该内存区上进行对象的构造,即调用构造函数。我...
分类:
编程语言 时间:
2015-06-17 11:40:59
阅读次数:
136
目录Java垃圾回收概况Java内存区域Java对象的访问方式Java内存分配机制Java GC机制垃圾收集器Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和....
分类:
编程语言 时间:
2015-06-14 18:05:44
阅读次数:
211
1、堆:所有对象实例存放地,垃圾管理的主要对象,被所有java线程所共享2、栈:线程私有、存储局部变量表、操作栈、动态链接、方法出口3、方法区:线程共享的内存区域、存储类信息、常是、静态变量、即时编译器编译后的代码3、本地方法框:为虚拟机使用到的Native方法服务4、程序计数器:线程私有、指向下一...
分类:
其他好文 时间:
2015-06-10 18:54:01
阅读次数:
160
总体的设计思路: 首先按照内存块的大小申请N*块大小的连续内存区域。 构造内存块的双向链表,有2种,一种是空闲链表;另外一种为已经使用的链表。该双向链表也是一块固定大小的内存区域,每个链表节点存储了当前内存块的地址、该节点上一个节点以及下一个节点。#define ut_base(TYPE) \ .....
分类:
其他好文 时间:
2015-06-10 11:49:20
阅读次数:
143