前言这篇内容是上一篇[动态代理三部曲:上]-动态代理是如何"坑掉了"我4500块钱的补充,进一步分析篇。建议二者结合食用,醇香绵软,入口即化。好了,不扯淡了,开始...正文2、Class文件的格式这里为啥是2开头呢?因为上篇文章是1这部分内容不知道各位小伙伴是怎么感觉的。最开始学习的时候,我是一头雾水,不知道如何下手。当一步步结合反射、JVM内存模型,类加载机制后。再回过头来就
分类:
其他好文 时间:
2018-08-27 12:38:27
阅读次数:
234
== :比较java栈局部变量表中变量的地址或值是否相等。 equals : 比较变量的地址在java堆中引用对象是否为同一个对象。 hashcode : 通过对象在JVM内存中的存储地址通过特定算法返回一个hash值,主要是配合HashSet HashMap进行增加、删除等。 public nat ...
分类:
编程语言 时间:
2018-08-26 13:08:01
阅读次数:
121
参考文章: 1.Java 新生代、老年代、持久代、元空间 2.Java内存与垃圾回收调优 3.方法区的Class信息,又称为永久代,是否属于Java堆? Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象,如下图所示: 在 Java 中,堆被划分成两个不同的区域:新 ...
分类:
其他好文 时间:
2018-08-24 23:34:34
阅读次数:
1564
JAVA虚拟机在执行JAVA程序的时候,会把它管理的内存分成若干不同的数据区域,每个区域都有各自的用途。目前大致把JVM内存模型划分为五个区域:程序计数器,虚拟机栈,本地方法栈,堆和方法区。 程序计数器 程序计数器(ProgramCounterRegister)是当前线程所执行的字节码的行号指示器。 ...
分类:
其他好文 时间:
2018-08-22 17:06:03
阅读次数:
181
jinfo:可以输出并修改运行时的java 进程的opts。 jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。 jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。 jmap:打印出某个 ...
分类:
其他好文 时间:
2018-08-22 15:02:48
阅读次数:
166
在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。1 强引用特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,J ...
分类:
编程语言 时间:
2018-08-21 10:47:00
阅读次数:
177
工作相关使用到的JDK类及其相关源码、机制 设计模式,设计模式在工作中用到了哪些,具体使用场景 并发类的相关知识,线程安全、锁机制、信号量、闭锁、栅栏、线程池等 框架相关,Spring相关机制、Spring MVC相关机制、MyBatis相关机制、使用的细节点、框架实现原理等 JVM,内存布局、垃圾 ...
分类:
其他好文 时间:
2018-08-20 15:40:12
阅读次数:
169
前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。 网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》 ...
分类:
编程语言 时间:
2018-08-17 16:33:25
阅读次数:
174
一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法 ...
分类:
编程语言 时间:
2018-08-15 21:36:21
阅读次数:
233
主要内容如下: JVM启动流程 JVM基本结构 内存模型 编译和解释运行的概念 一、JVM启动流程: JVM启动时,是由java命令/javaw命令来启动的。 二、JVM基本结构: JVM基本结构图: 《深入理解Java虚拟机(第二版)》中的描述是下面这个样子的: Java中的内存分配: Java程 ...
分类:
编程语言 时间:
2018-08-14 21:56:36
阅读次数:
132