bluuusea的专栏

bluuusea的博客

JVM之javac编译器、java语法糖

文章目录1.概述2.javac编译器2.1.javac源码即执行过程2.2.解析与填充符号表2.3.注解处理器2.4.语义分析与字节码生成3.语法糖3.1.泛型与类型擦除3.2.自动装箱、拆箱与遍历循环3.3.条件编译3.4.其他语法糖4.注解处理器简单实现 1.概述 2.javac编译器 2.1...

2019-07-16 19:48:30

阅读数 16

评论数 0

JVM字节码执行引擎

文章目录1.概述2.运行时栈帧结构2.1.局部变量表2.2.操作数栈2.3.动态连接2.4.方法返回地址2.5.附加信息3.方法调用4.基于栈的字节码解释执行引擎4.1.解释执行4.2.基于栈的指令集与基于寄存器的指令集4.3.基于栈的解释器执行过程 1.概述 字节码执行引擎是java虚拟机的核心...

2019-06-30 12:30:45

阅读数 47

评论数 0

JVM执行子系统类加载机制及主动引用被动引用

文章目录1.什么是类加载2.类加载的过程2.1.加载2.2.验证2.2.1文件格式验证2.2.2.元数据验证2.2.3.字节码验证2.2.4.符号引用验证2.3.准备2.4.解析2.5.初始化3.类加载器介绍 1.什么是类加载 类加载机制就是虚拟机把类的数据从class文件加载到内存,并对数据进行...

2019-06-23 17:59:22

阅读数 35

评论数 0

二进制及原码反码补码介绍、八进制、十六进制及Java中移位运算详解

文章目录1.二进制1.1.原码1.2.反码1.3.补码2.八进制3.十六进制4.位运算4.1.与(&)运算4.2.或(|)运算4.3.非(~)运算4.4.异或(^)运算4.5.移位(<<   &...

2019-06-22 15:51:08

阅读数 25

评论数 0

JVM参数说明介绍

文章目录1.JVM运行时数据区内存参数说明2.JVM垃圾收集器参数总结 1.JVM运行时数据区内存参数说明 参数 选项 -Xms 堆的最小值 -Xmx 堆的最大值(Xms和Xmx设置一致,可以避免堆自动扩展) -Xmn 堆中新生代大小 -XX:SurvivorRatio...

2019-05-30 14:58:59

阅读数 24

评论数 0

JDK监控和故障处理工具

文章目录1.概述2.JDK的命令行工具jpsjstatjinfojmapjhatjstack3.JDK的可视化工具JConsoleVisualVM 1.概述 通常我们定位系统问题时候,都需要一些系统的监控和分析工具来处理线上的运行日志、异常堆栈、GC日志、线程快照、堆转储快照等数据,来达到快速定位...

2019-05-26 18:38:15

阅读数 26

评论数 0

深入JVM-内存分配策略

JVM中对象的内存分配,基本上是在堆上分配(也可能经过JIT编译后背拆散为标量类型并间接地在栈上分配),对象主要分配在新生代的Eden区,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配,少数情况下也可能会直接分配在老年代中,分配的规则取决于使用的垃圾收集器的组合及其参数配置。 1.对象优...

2019-05-24 22:25:55

阅读数 20

评论数 0

深入JVM-垃圾收集算法与垃圾收集器

1.垃圾收集算法 1.1.标记-清除算法 1.2.复制算法 1.3.标记-整理算法 1.4.分代收集算法 2.垃圾收集器 2.1.Serial收集器 2.2.ParNew收集器 2.3.Parallel Scavenge收集器 2.4.Serial Old收集器 2.5.Parallel Old收...

2019-05-02 12:24:02

阅读数 37

评论数 0

深入JVM-垃圾收集器之内存回收

1.前言 在JVM内存运行时数据区中程序计数器、虚拟机栈、本地方法栈等三个区域是线程私有的,即线程结束对应的内存就会回收。而方法区和堆则是线程公有的,这部分内存只有在在程序运行期间才会知道创建哪些对象,这部分内存是分配和回收都是动态的,而垃圾收集器所关注的就是这部分内存。 2.判断对象是否可回收?...

2019-04-24 21:56:02

阅读数 50

评论数 0

深入JVM-理解内存溢出

本文通过几个实例来验证JVM运行时数据区发生OutOfMemoryError(OOM)异常的场景,顺便介绍几个内存相关的基本的虚拟机参数。 1.

2019-04-10 22:38:33

阅读数 32

评论数 0

深入JVM-内存管理

1.运行时数据区 jvm运行过程中会将所管理的内存根据用途及创建销毁时间分为若干不同的区域,即如下图所示 2.内存区域详解 2.1.程序计数器

2019-03-13 23:26:39

阅读数 46

评论数 0

设计模式-访问者模式

1.定义 当外部需要访问一个组合系统中所有对象的状态时,可以定义一个访问者类,通过访问者类访问组合系统中所有对象的状态,外部系统只需要对接访问者类即可获取到组合系统中所有对象的状态 2.使用场景及设计 2.1.使用场景 对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作。 需要...

2019-03-09 17:55:16

阅读数 39

评论数 0

设计模式-原型模式

1.定义 通过复制现有的实例来创建新的实例,同时又能保证较高性能。 2.使用场景及设计 2.1.使用场景 创建对象耗时又耗费资源时候可以使用。 2.2.设计 使用原型模式克隆对象时候又分为浅拷贝和深拷贝。 浅拷贝 只拷贝目标对象,不拷贝对象的成员属性。 深拷贝 拷贝目标对象,并且拷贝对象的成员属...

2019-03-08 22:45:00

阅读数 13

评论数 0

设计模式-备忘录模式

1.定义 可以使对象可以返回到之前的状态,如撤销操作、或者学习系统上记住之前的学习状态等 2.使用场景及设计 2.1.使用场景 常用在系统中保存用户之前的状态及游戏的存档等。 2.2.设计 类图如下,其中Memento类用来保存状态,ManageMemento用来存取档,Client为客户端 3...

2019-03-07 22:42:32

阅读数 21

评论数 0

设计模式-中介者模式

1.定义 使用中介者对象使其他对象之间相互解耦,每个对象只需要向中介者对象发出请求和接受请求即可 2.使用场景及设计 2.1.使用场景 房屋中介就是最好的例子,房屋中介使每个租客和房东之间相互解耦,都只需要接受中介的消息即可。 2.2.设计 类图如下: 3.测试代码 入口代码如下: packag...

2019-03-06 22:32:33

阅读数 33

评论数 0

设计模式-解释器模式

1.定义 给定一个语言,定义它的语法表示,并使用一个解释器来解释语法或表达式 2.使用场景及设计 2.1.使用场景 可以用于sql解析,或者特殊符号处理等 2.2.设计 此处设计一个and语法解析器,类图如下: 3.测试代码 package com.glt.designpatt...

2019-03-05 21:29:39

阅读数 52

评论数 0

设计模式-蝇量模式/享元模式

1.定义 以共享的方式高效的支持大量的细粒度对象,能够减少运行时对象实例的个数,节省内存。主要用于减少对象的创建,以节省内存提高性能。 2.使用场景及设计 2.1.使用场景 系统中需要大量类似的对象。例:需要展示100000个随机生成的坐标及其年龄。 2.2.设计 创建一个专门展示坐标及其年龄的对...

2019-03-03 22:45:22

阅读数 22

评论数 0

设计模式-责任链模式

1.定义 将发送者与接收者解耦,为请求创建了一个接收者对象的链,使链上的所有对象都可能处理这个请求 2.使用场景 2.1.使用场景 java中servlet的Filter调用链、struts2拦截器调用链、spring启动流程、队列处理消息日志等 3.演示代码 3.1.演示流程 此处...

2019-03-03 13:31:45

阅读数 41

评论数 0

设计模式-生成器模式

1.定义 封装一个产品的构造过程,并允许按步骤构造 2.使用场景及设计 2.1.使用场景 需要经过多个步骤创建的对象,如实际生活中的点餐流程,管理系统中的导出框架等 2.2.简略流程图 此处以点餐流程为例 3.测试代码 3.1.类图 3.2.测试代码 入口代码 package com.glt.d...

2019-02-27 21:45:22

阅读数 33

评论数 0

设计模式--桥接模式

1.定义 使抽象和实现解耦,使之都可以独立扩展不会影响对方 2.使用场景及设计 2.1.场景 现在有十种不同类型的电视,每种电视都有自己的遥控器,电视变化,对应的遥控器也要变化,而且如果新增一种电视型号,就要新增一种对应的遥控器 2.2.设计 使用桥接模式制作一个抽象tv接口,在抽象出一个Remo...

2019-01-29 17:20:18

阅读数 43

评论数 0

提示
确定要删除当前文章?
取消 删除