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

方法调用 方法调用并不等同于方法执行,方法调用阶段唯一任务就是确定调用哪个方法,暂时还不涉及方法内部的具体运行过程。在程序运行时,进行方法调用时最普遍最频繁的操作,但前面讲过,class文件的编译过程并不包含连接步骤,一切方法调用在class文件里存储的都是符号引用,而不是方法在实际运行时内存布...

2019-06-18 10:21:03

阅读数 7

评论数 0

Java晚期(运行期)优化

概述 Java程序起初是通过解释器(Interperter)进行解析执行的,当虚拟机发现某个代码或方法特别频繁时,就会把这些代码认定为热点代码(hot spot code)。为了提高热点代码执行效率,运行时,会将其编译为本地的机器码,并进行各种层次优化,完成这个任务的编译器称为即时编译器(Jus...

2019-06-17 15:29:56

阅读数 61

评论数 0

Java早期编译优化

概述 Java语言编译期是一段不确定的操作过程,可能指前端编译器(叫编译器的前端更准确)把*.java文件转变为*.class文件的过程,也可能指虚拟机后端编译器(JIT编译器 Just Time Compiler)把字节码转为机器码的过程;还可能指静态提前编译器(AOT编译器)直接把*.jav...

2019-06-12 10:46:34

阅读数 4

评论数 0

Integercache问题

昨天在开发中遇到一个问题,定义了两个Integer变量,暂且定义为Integer a; Integer b; 这两个值由前端赋值并传到后台,前台传的是a = 12345, b = 12345, 但我在后台比较的时候 if (a == b),却返回false,好无语啊,不都是123吗?为什么返回f...

2019-06-10 20:11:17

阅读数 6

评论数 0

tomcat:正统的类加载器架构

主流的Java Web服务器,如Tomcat、Jetty、WebLogic、WebSphere或其他服务器,都实现了自己定义的类加载器(一般都不止一个)。因为一个功能健全的Web服务器,要解决如下几个问题: 部署在同一个服务器上的两个Web应用程序所使用的Java类库相互隔离。这是最基本的需求,...

2019-06-10 19:35:41

阅读数 6

评论数 0

虚拟机字节码执行引擎(一)

代码编译的结果从本地代码转为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 概述 执行引擎是Java虚拟机最核心的组成部分之一。虚拟机是一个相对于物理机的概念,这两种代码都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、硬件、指令集和操作系统上的,而虚拟机的执行引擎则是...

2019-05-27 20:33:25

阅读数 11

评论数 0

Java类加载机制(三)

类加载器 虚拟机设计团队把类加载阶段中的:通过一个类的全限定名来获取描述此类的二进制字节流,这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最...

2019-05-26 08:59:43

阅读数 4

评论数 0

Java类加载机制(二)

验证 验证是连接阶段第一步,这一阶段目的是确保class文件字节流信息符合当前虚拟机要求,并且不会危害虚拟机自身安全。 Java语言相对于c/c++是安全的,使用纯粹的Java代码无法做到如访问数组边界以外的数据,将一个对象转型为它并未实现的类型、跳转到不存在的代码行之类的事,如果这样做了,编...

2019-05-23 10:59:10

阅读数 3

评论数 0

Java类加载机制(一)

概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、解析、初始化,最终形成被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 与编译时进行连接工作的语言不同,在Java中,类型的加载、连接、初始化都在程序运行期间完成。这种策略虽然会稍微增加一些性能开销,但是会为Ja...

2019-05-21 13:45:43

阅读数 12

评论数 0

b+树图文详解

转载自:伯乐专栏作者/玻璃猫,微信公众号 - 梦见漫画:什么是b+树 这一次我们来介绍 B+ 树。 一个m阶的B树具有如下几个特征: 1.根结点至少有两个子女。 2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m 3...

2019-05-20 09:30:24

阅读数 14

评论数 0

BTree与B+Tree详解

首先B-tree树即B树,B即Balanced,平衡的意思。因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解。如人们可能会以为B-树是一种树,而B树又是另一种树。而事实上是,B-tree就是指的B树 B+树索引时B+树在...

2019-05-20 09:17:48

阅读数 13

评论数 0

策略模式

https://www.cnblogs.com/lewis0077/p/5133812.html

2019-05-15 14:06:05

阅读数 9

评论数 0

cglib动态代理源码解析 超级详细

一、CGLIB动态代理实例 小A同学想要找女朋友,自己又不好意思,所以需要一个媒婆帮助他找对象,媒婆作为小A的代理,下面我们使用cglib动态代理,来用代码实现下: xiaoA: public class XiaoA { public void findLove(){ System....

2019-05-13 20:31:20

阅读数 16

评论数 0

代理模式 静态代理与动态代理 绝对通俗易懂

静态代理: 假设现在有一个人(person接口),他的名字叫A(class A implement person),小A 40岁了必须要找对象,但是呢自己比较害羞不好意思开口,这样就需要一个媒婆来帮他找对象(MeiPo 代理类),至此就是静态代理模式,下面我们用带来实现下。 Person: ...

2019-05-12 09:43:17

阅读数 20

评论数 0

Java高级特性 反射

https://blog.csdn.net/sinat_38259539/article/details/71799078

2019-05-10 09:38:04

阅读数 17

评论数 0

工厂模式与抽象工厂模式

创建型模式共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 简单工厂模式 首先简单工厂模式不属于23种设计模式,简单工厂一般分为:普通简单工厂,多方法简单工厂,静态方法简单工厂。 下面例子中鼠标,键盘,耳麦为产品,惠普,戴尔为工厂。 简单工厂模式 简单工厂模式不是...

2019-05-07 20:57:38

阅读数 21

评论数 0

建造者模式

https://blog.csdn.net/u010102390/article/details/80179754

2019-05-07 17:16:34

阅读数 18

评论数 0

dubbo中文官方文档(新地址)

看了几篇关于dubbo的博客,基本上都是从官方API copy 的所以有什么问题,直接看API就完事了 https://dubbo.gitbooks.io/dubbo-user-book/content/configuration/xml.html

2019-04-25 16:04:01

阅读数 23

评论数 1

dubbo常用配置

1.启动服务检查 假设a依赖b,b依赖c,如果c没有启动,而b启动了,此时如果b启动了检查到c没有启动,那么b就会报错,导致a也不可用。 这时候就应该通过check=false设置关闭启动检查服务,默认是true。 应用标签: dubbo:reference dubbo:consum...

2019-04-24 22:08:59

阅读数 31

评论数 1

dubbo角色及运转流程分析

dubbo中的角色 Container 容器 Provider 生成者 Consumer 消费者 Registry 注册中心 Monitor 监控中心 dubbo的流程 首先,加载dubbo容器,这里我们来看下源码dubbo都加载了哪些容器: 这里我们使用的是dubbo的mai...

2019-04-23 21:55:57

阅读数 42

评论数 2

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