自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 问答 (3)
  • 收藏
  • 关注

原创 虚拟机字节码执行引擎(二)

虚拟机字节码执行引擎(二)关于栈的字节码解释执行引擎关于Java虚拟机是如何调用方法、进行版本选择的内容以及全部讲解完毕,从本节开始,我们来看看虚拟机是如何执行方法里面的字节码指令的。概述中曾提到过,许多Java虚拟机的执行引擎在执行Java代码的时候都有解释执行(通过解释器执行)和编译执行(通过即时编译器产生本地代码执行)两种选择,在本节中,我们将会分析在概念模型下的Java虚拟机解释执行字节码时,其执行引擎是如何工作的。作者在文章多次强调了 概念模型 ,是因为实际的虚拟机实现,譬如HotSpot的模

2021-11-02 00:11:05 152

原创 虚拟机字节码执行引擎

虚拟机字节码执行引擎概述执行引擎是Java虚拟机核心的组成部分之一。虚拟机一个相对于物理机的概念,这两种都有执行代码的能力,其区别是,物理机的执行引擎是建立在处理器,缓存,指令集和操作系统层面上的,而虚拟机的执行引擎则是软件自行实现的,所以可以不受物理条件约束,自定义指令集和执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。在《Java虚拟机规范》中制定了Java虚拟机字节码执行引擎的概念模型,这个概念模型成为各大开发商的Java虚拟机执行引擎的统一外观 Facade 。在不同的虚拟机实现

2021-07-27 23:34:12 225

原创 责任树模式(含测试源码)

策略树模式(含测试源码)学习设计模式主要是为了代码的可读性,可维护性,让代码易于维护,隔离不同的业务,对代码进行解耦。同时,如果需要学习框架的源码,对于设计模式的了解是必不可少的,框架中的源码会大量使用设计模式,学习设计模式也有利于更快看懂源码,同时可以提升自己对代码的理解,让自己可以从不同角度观察代码结构,对代码进行优化,重构。策略树模式可以优化过多的if判断,是责任链模式和策略模式的结合,属于行为行设计模式。责任链模式责任链模式是实现了类似“链表”结构的逐级处理,通常是一条链式结构,将不同的业

2021-07-05 17:50:23 1251

原创 java虚拟机类加载机制, Java模块化系统(二)

java虚拟机类加载机制, Java模块化系统(二)Java模块化系统在jdk9中引入的 java模块化系统(Java Platform Module System,JPMS) 是对java技术的一次重要升级,为了能够实现模块化的关键目标——可配置的封装隔离机制,java虚拟机对类加载架构也做出了相应的变动调整,才是模块化系统得以顺利的运作。jdk9的模块不仅仅像之前的jar包那样只是简单的充当代码的容器,除了代码外,java的模块定义还包含以下内容:依赖其他模块的列表导出的包列表,即其他模块可以

2021-05-19 23:33:51 311

转载 java虚拟机类加载机制(一)

虚拟机类加载机制

2021-05-18 22:32:04 157 2

原创 利用POI手搓一个简单的excel导出工具(含完整代码)

利用POI手搓一个简单的excel导出工具POI简介全称Apache POI,使用Java编写的免费开源的跨平台的Java API。 是创建和维护操作各种符合 Office Open XML(OOXML)标准和微软的 OLE 2 复合文档格式(OLE2)的 Java API。用它可以使用 Java 读取和创建, 修改 MS Excel 文件. 而且, 还可以使用 Java 读取和创建 MS Word 和 MSPowerPoint 文件。Apache POI 提供 Java 操作 Excel 解决方案

2021-03-26 17:44:05 300

原创 java 类文件结构详解

java 类文件结构详解简单介绍Class文件是一组以八个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在文件中,中间没有任何分割符号,所以整个class文件中存储的内容几乎全是程序运行的必要数据,没有空隙存在。当遇到需要占用八个字节以上空间的数据项时,则会按照 高位在前 (这种顺序被称为Big-Endian,具体顺序是指按高位字节在地址最低位,最低字节在地址最高位来存储数据,它是SPARC,PowerPc等处理器的默认多字节存储顺序。) 的方式分割成若干个八个字节进行存储。Class

2021-03-02 22:47:29 425

原创 Garbage First (G1)收集器的部分实现细节

Garbage First (G1)收集器G1收集器简介Garbage First (G1)收集器是垃圾收集器发展史上具有里程碑意义的一个收集器,它开创了面向局部收集的设计思路和Region的内存布局形式。作为CMS的继承者,设计者们希望做出一款能够建立起停顿时间模型(Pause Prediction Model) 的收集器,停顿时间模型的意思是能够指定在一个长度为M毫秒的时间片段内,消耗在垃圾收集上的时间大概率不超过N毫秒这样的目标,这几乎已经是实时Java(RTSG)的中软实时垃圾收集器的特征了

2020-11-25 23:30:54 248

原创 Java垃圾收集器原理详解

java的垃圾收集器和内存分配策略垃圾收集器的起源不少人把这个技术当做java的伴生产物。其实垃圾收集的历史远远比java更为久远,在1960年诞生于麻省理工学院的Lisp是第一门开始使用内存动态分配和垃圾收集的技术语言。垃圾收集器是如何工作的?在Lisp在设计初期时,其作者 John McCarthy就思考过垃圾收集器需要完成的三件事情哪些内存需要回收?什么时候回收如何回收?我们根据这三个问题,来逐步了解垃圾收集器的工作流程,及细节实现等首先,我们必须确定哪些内存需要回收

2020-11-15 17:16:29 385

原创 初步了解:rabbitMQ,和其几种模式:直连模式,工作模式,发布订阅模式,路由模式,主题模式(含完整代码)

用RabbitMQ和Redis来实现一个下单功能让我们先来简单了解一下rabbitMQRabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)主要特性可伸缩性:集群服务默认模式,以两个节点(rabbit01、rabbit02)为例来进行说明。对于Queue来说,消息实体只存在于其中一个节点rabbit01(或者rabbit02),rabbit01和rabbit02两个节点仅有相同的元数据,即队列的结构。当消息进入rabbit01节点的Queue后,cons

2020-10-16 17:53:06 1266 2

原创 关于rabbitMQ在yml配置手动ack不生效,重复答应的问题

关于rabbitMQ在yml配置手动ack不生效,重复答应的问题在yml文件中配置了手动答应,但是消费者消费完成时,却还是自动答应以下是yml配置#rabbit配置spring: rabbitmq: # rabbit地址 host: 127.0.0.1 # rabbit端口号 port: 5672 # 用户账号和密码 username: guest password: guest #rabbit项目名,每个virtualHost的队

2020-10-16 11:48:57 2888 5

原创 Java策略模式,与根据SpringBoot的监听在项目中实现应用

Java策略模式,与根据SpringBoot的监听在项目中实现应用

2020-04-30 17:33:50 304

原创 mysql传入时间段查询是否有重叠,交叉的数据

mysql传入时间段查询是否有重叠,交叉的数据自己在写功能的时候遇到了很多次这个问题,测了好几次才测试出来了一个方法,但是感觉我自己的方法有点麻烦,今天搜了一下,方法大概就两种,怕忘记就记下来吧。第一种这种方法是最简单的了。只能有四种结果:true,true;false,false;true,false;false,true;首先,第一个判断如果为false,那这段时间肯定是不会...

2020-01-10 16:41:30 1432

原创 使用freemarker导出Word遇到的问题,文件损坏,手机打不开,本地下载可以打开,服务器打不开等问题。。。

使用freemarker导出Word遇到的问题,文件损坏,手机打不开,本地下载可以打开,服务器打不开等问题。。。本地导出xml格式的文件手机,office打不开文件,但是wps可以打开本地导出的文件可以打开,但是代码提交到tomcat服务器上,再导出的文件就打不开,文件损坏,改成xml格式发现里面的中文乱码了,这个需要修改tomcat的配置文件要注意的是,freemarker里的填充值是不允许为空...

2019-12-15 18:22:56 4036 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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