typedef struct structTest { char xchar; int xint; int yint; }xStruct; @interface ViewController () { char xchar; int xint; int yint; } xStruct xTest = {'a', 1, 2}; NSLog(@"%p,%p, %p",&xTest.xchar, &xTest.xint, &xTest.yint); NSLog(@&q…
JVM内存区域的划分(内存结构或者内存模型)   运行时数据区域: 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 程序计数器(线程私有): 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也称为“线程私有”的内存. 正在执行java方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址).如果还是Native方法,则为空. 这个内存区域是唯一一个在虚拟机中没有规定任何OutOfMemoryError情况的区…
一.JVM 垃圾回收机制和常见算法 Sun 公司只定义了垃圾回收机制规则而不局限于其实现算法,因此不同厂商生产的虚拟机采用的算法也不尽相同.GC(Garbage Collector)在回收对象前首先必须发现那些无用的对象,如何去发现定位这些无用的对象?常用的 搜索算法 如下: 1)引用计数器算法(废弃) 引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器-1,当计数器为 0 的时候,JVM 就认为对象不再被使用,是“垃圾”了.引用计数器实现…
名称空间分为3种: 1. 全局名称空间 2. 内置名称空间 3. 局部名称空间(临时) 作用域 全局作用域              1全局名称空间 2 内置名称空间 局部作用域             1.局部名称空间 取值顺序     ----就近原则 局部名称空间 --------  全局名称空间   ---------- 内置名称空间     从小到大的原则进行进行查找, 如果在全局名称空间调用的值,那么他将会在全局名称和内置名称空间取值. 变量的加载顺序 内置空间变量 --------…
原文地址:http://www.2cto.com/database/201505/399285.html 1 Oracle数据库结构 关于这个话题,网上一搜绝对一大把,更别提书籍上出现的了,还有很多大师们的讲稿.但是我们不去管那些,按照我们自己节奏记出特性.记出精彩来. 首先插入本系列第一张图片,图一(绝对来自官网),看蛤蟆对于图片使用是多么小心的,如果大伙对这个图已有自己独到的理解,那么可直接跳过本篇笔记吧,当然温故而知新也未尝不可,知耻而后勇….额,而来知耻? 1.1 总体结构 这个图1从总…
本文详细描述了 Java 堆内存模型,垃圾回收算法以及处理内存泄露的最佳方案,并辅之以图表,希望能对理解 Java 内存结构有所帮助.原文作者 Sumith Puri,本文系 OneAPM 工程师编译整理. 下图展示了 Java 堆内存模型,以及运行在 Java 虚拟机中任意 Java 应用的 PermGen (内存永久保存区域),下面的比率展示了 JVM 各代类型允许的内存大小分配情况,所有的数据均适用于 Java 1.7 及以下版本.该图也被称为 Java 内存模型的"管理区(Managed…
一.代码——命令行模式 //main.m #import <Foundation/Foundation.h> struct __block_impl { void *isa; int Flags; int Reserved; void *FuncPtr; }; struct __main_block_desc_0 { size_t reserved; size_t Block_size; }; struct __main_block_impl_0 { struct __block_impl i…
JMM内存模型和JVM内存结构 JAVA内存模型(Java Memory Model) Java内存模型,一般指的是JDK 5 开始使用的新的内存模型,主要由JSR-133: JavaTM Memory Model and Thread Specification 描述. JMM就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范. 内存模型可以理解为在特定的操作协议下,对特定的内存或者高速缓存进行读写访问的过程…
JVM宏观认知 1.什么是虚拟机? 虚拟机是一种软件. 可分为系统虚拟机(仿真物理机)和程序虚拟机(执行单个计算机程序,比如JVM). 2.什么是Java虚拟机(JVM)? JVM是一种将字节码转化为机器码的软件.(同上) 历经时间的迭代,目前广泛应用的Java虚拟机是Oracle的HotSpot VM. 3.JVM有什么用? 理论:加深对Java底层运行机制的了解和认知 实践:自定义性能更强的JVM(参数调优),排查由于Java应用本身导致的线上问题(调优主要是调堆) JDK的发布版本了解一下…
JVM内存结构 JVM内存的运行时数据区: 线程私有(在线程启动时创建) 程序计数器Program Counter Register 一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令. 虚拟机栈VM Stack 描述的是Java方法执行的内存模型:每个方法在执行的同时会创建一个栈帧[Stack Frame]用于存储局部变量表.操作数栈.动态链接.方法出口等信息.每一个方法从调用直至执行完成的过程,就对应…