摘要:
一、什么内存会被回收 可达性分析算法 通过一系列的GC ROOT的对象作为超始点,从这些节点开始向下搜索,搜索所走的路径称为"引用链",当一个对象到GC ROOT之间没有任何引用链,则会对该对象进行一次标记,说明对象暂时是没用的 GC ROOT对象指: 虚拟机栈(栈帧中的局部变量表)中的引用对象 方 阅读全文
摘要:
Jvm的内存结构: 程序计数器:是JVM中一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过这个计数器的值来 选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理等(线程私有) 虚拟机栈:虚拟机栈是指方法执行的内存模型,每个方法执行的时候都会创建一个栈 阅读全文
摘要:
一、问题 Java方法调用过程中,Jvm是如何知道调用的是哪个类的方法?Jvm又是如何处理? 二、概念 a、当子类和父类(接口和实现类)存在同一个方法时,子类重写父类(接口)方法时,程序在运行时调用的方法时,是调用父类(接口)的方法呢?还是调用子类的方法呢?我们将确定这种调用何种方法的操作称之为绑定 阅读全文
摘要:
一、概念 方法内联就是把调用方函数代码"复制"到调用方函数中,减少因函数调用开销的技术 函数调用过程 1、首先会有个执行栈,存储它们的局部变量、方法名、动态连接 2、当一个方法被调用,一个新的栈帧会被加到栈顶,分配的本地变量和参数会存储在这个栈帧 3、跳转到目标方法代码执行 4、方法返回的时候,本地 阅读全文
摘要:
一、概念 java程序运行时动态的创建类并调用类的方法和属性 二、原理简介 Class<?> clz = Class.forName("java.util.ArrayList"); ArrayList object = (ArrayList) clz.newInstance(); Method me 阅读全文
摘要:
在了解类加载机制前,我们要大概了解Jvm加载的是什么文件,里面包含了什么? Class文件 一、概述 计算机只能识别0和1,所以大家写的代码都需要通过编译器,转换成0和1的计算机本地代码。Java文件通过编译器转换成class文件,JVM虚拟机加载CLASS,通过执行引擎解释CLASS格式指令执行。 阅读全文
摘要:
为了深入学习Zookeeper,准备把zookeeper源码导入eclipse中学习 一、Ant环境准备 因为我自己用的是Mac,直接输入命令:brew install ant即可 如果是window环境,只需要下载对应版本的ant,配置环境变量即可 二、Git上 clone zookeeper源码 阅读全文
摘要:
最近公司这边在考虑Api gateway,准备用zuul来实现,借此机会,把SpringMvc又了解了下 SpringMvc我相信大家都有用过,但SpringMvc的整个执行流程,不知道大家是否了解。今天主要是针对SpringMvc的执行流程及原理和大家做个分享。 首先,我们可以通过一张图来了解Sp 阅读全文
摘要:
什么是Java虚拟机? 作为程序员,大家都知道写的代码都是在Java虚拟机上运行的,但大家是否知道,Java虚拟机又是什么呢? 先看看网上搜到有关JAVA虚拟机的介绍 : 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆 阅读全文
摘要:
一直告诉自己静下心来记录点什么,可从来没有开始过,从最开始的system.out到现在的分布式、高并发、多线程发现自己并没有多少积累,时间却从来没有放过自己,有时候想想真的挺累 我明白自己一路走来也不容易,不管后面怎么样,还是想把所有学到的技术做一个总结与归纳,为自己的下一个目标努力 阅读全文