摘要:上一篇文章中简单介绍过synchronized关键字的方式,其中,同步代码块使用monitorenter和monitorexit两个指令实现,同步方法使用ACC_SYNCHRONIZED标记符实现。后面几篇文章会从JVM源码的角度更加深入,层层剥开synchronized的面纱。 在进入正题之前,肯 阅读全文
面经 | 我是如何通过校招拿到京东的Offer的
2018-11-13 18:54 by GarfieldEr007, 561 阅读, 0 推荐, 收藏, 编辑
摘要:本文来自粉丝投稿,原作者:红鼻子熊。 版权归Hollis所有。 OFFER:京东2018校招物流研发岗 个人:211小硕 面试时间:2017年秋天 整体:三轮面试,前两轮为技术面试,最后为hr面试 一面 面试时间较长,回答速度也较快,所有问题都进行了完整的回答。形式为电话面试,都是基础,难度一般,不 阅读全文
学了编译原理能否用 Java 写一个编译器或解释器?
2018-11-13 18:36 by GarfieldEr007, 1306 阅读, 0 推荐, 收藏, 编辑
摘要:16 个回答 默认排序 16 个回答 默认排序 默认排序 RednaxelaFX JavaScript、编译原理、编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能。我一开始学编译原理的时候就是用Java写了好多小编译器和解释器。其实用什么语言来实现编译器并不是最重要的部分(虽然Ja 阅读全文
Javac编译原理
2018-11-13 18:34 by GarfieldEr007, 414 阅读, 0 推荐, 收藏, 编辑
摘要:java源代码(符合语言规范)-->javac-->.class(二进制文件)-->jvm-->机器语言(不同平台不同种类) 如何让java的语法规则适应java虚拟机的语法规则?这个任务由javac编译器来完成java语言规范转换成java虚拟机语言规范。 编译流程: 流程: 词法分析器:将源码转 阅读全文
Java编译原理
2018-11-13 18:33 by GarfieldEr007, 296 阅读, 0 推荐, 收藏, 编辑
摘要:1. 关于动态加载机制 学习Java比C++更容易理解OOP的思想,毕竟C++还混合了不少面向过程的成分。很多人都能背出来Java语言的特点,所谓的动态加载机制等等。当然概念往往是先记住而后消化的,可有多少人真正去体会过动态加载的机制,试图去寻找过其中的细节呢? 提供大家一个方法:在命令行窗口运行J 阅读全文
深入分析Java的编译原理
2018-11-13 18:33 by GarfieldEr007, 708 阅读, 0 推荐, 收藏, 编辑
摘要:在《Java代码的编译与反编译》中,有过关于Java语言的编译和反编译的介绍。我们可以通过javac命令将Java程序的源代码编译成Java字节码,即我们常说的class文件。这是我们通常意义上理解的编译。 但是,字节码并不是机器语言,要想让机器能够执行,还需要把字节码翻译成机器指令。这个过程是Ja 阅读全文
无IDE时编译和运行Java
2018-11-13 18:29 by GarfieldEr007, 391 阅读, 0 推荐, 收藏, 编辑
摘要:最近 Java subreddit 出现了一篇”在没有IDE的情况下编译Java包” 的帖子,这个帖子抛出了这么一个问题,“是否存在一个命令可以编译一组处于同一文件夹下独立包内的java文件的方法(这称之为bin),同时怎样运行新的类文件呢?” 它的提出者 kylolink解释说,“当我开始依赖Ec 阅读全文
Java 代码编译和执行的整个过程
2018-11-13 18:28 by GarfieldEr007, 222 阅读, 0 推荐, 收藏, 编辑
摘要:Java 字节码的执行是由 JVM 执行引擎来完成,流程图如下所示: Java 代码编译和执行的整个过程包含了以下三个重要的机制: Java 源码编译机制 类加载机制 类执行机制 Java 源码编译机制 Java 源码编译由以下三个过程组成: 分析和输入到符号表 注解处理 语义分析和生成 class 阅读全文
java常见反编译工具
2018-11-13 18:23 by GarfieldEr007, 2548 阅读, 0 推荐, 收藏, 编辑
摘要:1、Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改window -> Preferences -> Java -> JadClipse 阅读全文
Java代码的编译与反编译那些事儿
2018-11-13 18:23 by GarfieldEr007, 500 阅读, 0 推荐, 收藏, 编辑
摘要:编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language)。编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language)。 机器语言(Machine Lang 阅读全文