bboyjing's blog


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 公益404
bboyjing's blog

自己动手写JVM三【解析class文件(一)】

发表于 2017-01-03 | 分类于 JVM

上一章节已经实现了读取class文件,测试的时候还打印出一堆杂乱无章的数字,本章就来学习下,这些数字到底是什么,如何解析这些class文件。

class文件

作为类信息的载体,每个class文件都完整地定义了一个类,也就是说所有的信息都包含在那一堆数字当中,我们可以通过网络下载、从数据库加载,甚至是在运行中直接生成class文件。所以,class文件并非特指位于磁盘中的.class文件,而是泛指任何格式符合规范的class数据。
为了更好的理解class文件,我们再建一个java项目,和go项目同级,该项目的作用就是在需要的时候测试自己写的JVM。现在,新建一个class:

阅读全文 »
bboyjing's blog

Redis学习笔记十六【使用Redis构建应用程序组件-消息拉取】

发表于 2016-12-28 | 分类于 Redis

多个客户端在互相发送和接收消息的时候,通常会使用以下两种方式来传递消息。第一种时消息推送,也就是由消息发送者来确保所有接受者已经成功接收到了消息,Redis内置了PUBLISH和SUBSCRIBE命令可以实现;第二种时消息拉取,这种方法要求接收者自己去获取存储在某种mailbox里的消息。尽管消息推送非常有用,但是客户端因为某些原因而没办法一直保持在线的时候,采用这一消息传递方法的程序就会出现各种各样的问题。本章节将尝试编写不同的消息拉取方式,来替代PUBLISH和SUBSCRIBE。

阅读全文 »
bboyjing's blog

自己动手写JVM二【搜索class文件】

发表于 2016-12-26 | 分类于 JVM
1
2
3
4
5
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello, world!");
}
}

上面是一段最简单可运行Java代码了,要运行这么一段简单的代码,其实要做很多工作。加载HelloWorld类之前,首先要加载它的超类java.lang.Object,在调用main()函数之前,虚拟机要准备好参数数组,所以需要加载java.lang.String和java.lang.String[]类。把字符串打印到控制台还需要加载java.lang.System类,等等。。。这一章节就来学习下Java虚拟机是从哪里寻找这些类的。

阅读全文 »
bboyjing's blog

Redis学习笔记十五【使用Redis构建应用程序组件-任务队列】

发表于 2016-12-22 | 分类于 Redis

本章节将学习如何使用Redis来构建任务队列,实现类似RabbitMQ之类的消息队列的功能。

先进先出队列

依然使用之前虚构的例子,现在来实现通过电子邮件来订阅商品交易市场中已售出的商品的相关信息。因为对外发电子邮件可能会有非常高的延迟,甚至可能会出现发送失败的情况,所以将使用任务队列来记录邮件的收信人以及发送邮件的原因,并构建一个可以在邮件发送服务器运行变得缓慢的时候,以并行方式一次发送多封邮件的工作进程。我们要编写的队列将以“先到先服务”的方式发送邮件,并且无论发送是否成功,程序都会把结果记录到日志中。
邮件队列采用List构成,存储JSON格式的字符串,数据结构如下:

  • key
    • queue:email
  • list value
    • “{“seller_id”:1,”item_id”:”Item_M”,”price”:97,”buyer_id”:27,”time”:1482399576744}”
    • ××××××
阅读全文 »
bboyjing's blog

自己动手写JVM一【准备环境】

发表于 2016-12-19 | 分类于 JVM

之前看过两遍《深入理解java虚拟机》,能吸收点知识,但是远远没有能够深入理解。最近购入张秀宏著的《自己动手写Java虚拟机》一书,抱着想要更深地理解JVM的目的去学习,并记录下学习笔记。第一章节还是先来准备环境。

Java

关于Java环境的准备步骤就不赘述了,本人使用的版本是1.8.0_91

Go

这本书的JVM实现是用Go写的,之前没有接触过,在这一学习过程中顺带就把Go也简单地学习下了。Go的安装参照golang,选择的是目前最新版是1.7.4。Go的参考资料选择Go语言圣经和Go语言指南。

阅读全文 »
1…202122…30
bboyjing

bboyjing

147 日志
17 分类
20 标签
友情链接
  • bailaohe
© 2021 bboyjing
由 Hexo 强力驱动
主题 - NexT.Mist