- 博客(17)
- 资源 (3)
- 收藏
- 关注
原创 JVM垃圾收集算法与收集器
算法是什么?复制算法copying:新生代内:GC ROOTS 根节点–>扫描M0老内存区–>标记live对象–>复制–>新内存M1–>清空M0老内存区场景:live少,dead多 为什么?反之 扫描+标记+复制+开辟新内存 增加成本为什么放新生代?答:新生代 eden from to 区域 内对象活动比较少 。为什么效率高?答:内存容量均等–>...
2020-03-16 00:06:59 194
原创 JVM
Jvm是什么?答:jvm 虚拟机规范的一套实现组成? 字节码指令集 PC寄存器 栈 堆 方法区等组成特性? 答: 跨平台如何执行? 答: 加载class文件解释成机器指令执行。JDK是什么?答:编译调试java程序开发工具包 基于JRE运行。JRE是什么?答:Java运行环境 可以叫做平台。和操作系统比呢?答:只是一个应用程序 一个进程。JVM是什么?答:JRE的...
2020-03-15 21:17:35 146
原创 Java虚拟机-类加载-双亲委派模型
双亲委派模型叫什么?答:一种类加载器组合关系模型描述什么?答:Bootstrap(启动类加载器) Extension(标准扩展类加载器) Application(应用类加载器) Custom(自定义类加载器) 三者之间的关系过程是怎么样的?答:req–>类加载器–>委托父类加载器完成。父类不存在无法完成<–父类加载器类加载器–>委托父类的父类加载器完成。...
2020-03-15 12:12:22 156
原创 Java虚拟机-类加载
java类加载什么是类加载?答:jvm将class文件加载到内存的过程称为类加载过程是啥样的?答:装载-链接-初始化-调用-卸载 这叫做类的生命周期每个过程又是啥样的?答:装载 Load:找到类的二进制数据-导入到内存中如何找? 答:根据类信息(如:类全名)找如何导入内存? 答:申请内存空间-流读取-写入内存啥意思? 答:字节流的静态存储结构放入运行时数据区的过...
2020-03-15 11:48:17 136
原创 Java虚拟机内存模型-命令大全
jps: 查看显示虚拟机进程以及进程的配置、环境信息jps -h :查看使用帮助jps -q :查看PIDjps -m :查看main函数参数 嵌入式为nulljps -l :查看mainclass的全名jps -v :查看jvm传递参数jps -V :隐藏jvm传递参数jcmd: 打印java进程中的线程信息 虚拟机信息 基本类信息jcmd -l : 查看当前机器所有jvm进程...
2020-03-14 14:28:39 306
原创 Java虚拟机内存模型-方法区
方法区:叫什么? 答:别名:Non-Heap(非堆区) 也叫永久区是什么? 答:JVM一种规范位置在哪?答:堆中的独立内存空间 1.8+ 实现方法区规范的元空间 位置移动到了本地内存区存储什么?答:元数据 :类结构:类全名 父类全名 类型修饰符 类直接接口类表 类型信息域信息:域全名 域类型 域修饰符方法信息:(方法名称 返回类型 方法参数 方法修饰符 方法字节码 操作数栈 方法...
2020-03-14 12:50:57 147
原创 Java虚拟机内存模型-元空间
元空间:叫什么? 答: MetaSpace区位置在哪?答:本地内存-nativeMemorySpace存储什么?答:元数据:类结构:类全名 父类全名 类型修饰符 类直接接口类表 类型信息常量池:串池 静态变量 域常量信息 方法常量信息域信息:域全名 域类型 域修饰符方法信息:(方法名称 返回类型 方法参数 方法修饰符 方法字节码 操作数栈 方法帧栈局部变量表大小 异常表)干什么?...
2020-03-14 12:46:55 385
原创 Java虚拟机内存模式-堆空间
堆空间:Java堆是干什么?答:为对象和数组分配空间。特点:线程共享组成:新生代(伊甸园 生存区1 生存区2) 老年代 永久代新生代叫什么?Young Generation伊甸园叫什么? 答:eden 用来干什么? 答:出生地生存区1叫什么?答:space0 | s0 |from space | 全名 用来干什么? 答:幸存...
2020-03-14 12:45:59 162
原创 Java虚拟机内存模型-本地方法栈
本地方法栈和虚拟机栈 区别是什么?相同点:答:1. 功能相同 创建栈帧-存放(局部变量表,操作数栈,动态链接,returnAddress);2. 异常相同 超出栈深度-StackOverflowError 超出内存容量-OutOfMemoryError3. 线程私有 生命周期与线程所在4. 栈结构相同 先进后出不同点:答:执行服务不同java虚拟机栈 执行字节码服务本地方法栈 ...
2020-03-14 10:00:32 117
原创 Jvm虚拟机内存模型-虚拟机栈
Java虚拟机栈:概念?答:动态内存模型过程?答:执行方法A-创建栈帧(部变量表,操作数栈,动态链接,方法出口等信息)-入栈-出栈-结束特点?答:线程私有 生命周期同线程所在构成:一、虚拟机执行引擎虚拟机和物理机执行引擎的区别?答:相同点:程序代码执行能力不同点:物理机执行引擎: --操作系统层面–执行操作系统的指令集虚拟机的执行引擎 --自己实现 --执行虚拟机字节码指...
2020-03-12 16:04:12 239
原创 jvm内存模型-程序计数器
程序计数器为什么有?答:连续执行 确定下一条指令的地址有啥特点?答:1. 小段空间 不溢出 为什么?答 :每次改变上一条值2. 当前线程执行的行号指示器 为什么?答:确定下一条指令的地址3. 谁来选取下一条指令? 答:字节码解释器4. 线程私有 为什么?答: 线程切换 恢复正确的执行位置5. 执行java方法: 计数器记录:当前执行的字节码指令的地...
2020-03-11 11:04:12 136
原创 扣减库存
场景: a. 电商中 商品下单后扣减库存 b. 七夕等节日抽奖活动中 奖品库存扣减 c. 项目或者活动场次预订或者下单扣减场次库存 d. 秒杀场景中 库存扣减以及避免超卖 e. 淘宝付费扣减库存等 f. 锦鲤活动促销的 扣减库存的场景。 如何设计扣减库存呢? 如果您是单机单体应用? 则...
2018-11-22 16:21:00 1966 1
原创 如何进行服务化?
发展:从单机单体应用到垂直应用再到RPC服务再到后来微服务体系发展大体经历了这样四个阶段。那么对于服务化也相应的经历了这样几个阶段:单点->远程服务调用->集群->RPC-服务治理。今天来浅谈一下以上四个阶段:单点:单机单体应用的核心问题。容易出现问题:宕机的单点故障问题。远程服务调用:说白了,就是把应用划分后,又一次的出现单点故障问题。集群:只是将一个...
2018-11-22 12:40:25 666
原创 如何进行有效的系统拆分?
条件:用户数是否大 交易数是否大 系统性能是否遇到瓶颈 对于目前来说大而全的系统已经是存在各种问题了。比如用户数和交易数的剧增,会带来多线程和高并发的业务问题甚至代码问题。再比如:系统性能在面对小用户数并发时依然低下的问题。因此我们就需要对我们的架构或者业务进行拆分。拆分是立马着手的吗?no,不是的。这需要我们在一些中小型企业或者一些更复杂的一些大平台比如像银行的一些系统中需要有...
2018-11-22 12:13:27 1852
原创 怎么理解和设计应用的无状态化?
什么是无状态?无状态(statelessness)指的是服务内部变量值的存储。这句话怎么理解?我们可以理解为在我们的服务器内部存储一个变量。一个请求过来,那么此时带着该变量的就为有状态,或者在客户端存储了该变量,请求过来时,需要重复使用该变量的也是有状态的体现。那么我们怎么做,可以让我们的应用软件是无状态。那么我们需要将该变量存储在第三方的一些服务或者中间件上,比如将用户登陆token...
2018-11-22 11:18:20 5658
原创 梳理Tree遍历-四种基本方法+JPA注解解决
已知已有对象为Tree。 public class Tree { long id; String name; Tree parent; Set children; public long getId() { return id; } public void setId(long id) {
2016-06-12 22:16:42 3684
原创 梳理spring-总结篇
spring Spring致力于提供一种方法管理你的业务对象。 我喜欢他的说法,因为最初的初衷,才有了spring,这个富于革命性的开源轻量框架。 1.方便解耦,简化开发 通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层
2016-06-11 17:24:40 1591
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人