你每天写的 Java 代码都需要 JDK 的支持,都要跑在 JVM 上,难道你就不好奇 JDK 长什么样子吗.好奇,就来编译并实现一个自己的 JDK 吧. 本次编译环境 macOS 10.12,编译的是 JDK 11 版本. 安装 OpenJDK 11 编译 OpenJDK 需要先在机器上安装 OpenJDK 10 或者 OpenJDK 11,作为 Boot JDK. 先安装 openJDK 11 编译需要,可以到 adoptopenjdk 网站去下载. pkg 格式安装 进入页面 https:…
为什么用java.exe执行编译的类文件的时候,不这样写java Welcome.class 是因为java虚拟机调用Welcome的时候,已经替我们增减了.class,如果你还要写java Welcome.class ,那么实际上你的执行是java Welcome.class.class…
经常使用MyEclipse要么Eclipse编辑写java程序猿代码.您可能经常会遇到一个黄色警戒线:dead code:一般程序猿遇到这些问题都会置之不理,反正也不影响程序的编译运行.对,这不是bug,仅仅是一个提示,对于一个有强迫症的程序猿来说,他非要代码一点问题都没有,包含黄线警告都要消灭掉,这里简单说下dead code 即死代码.无作用的代码提示的原因和解决方法. 顾名思义,死代码.即你编写的那一行是无效代码,可有可无,说白了就是一行废话:这是你就要看一下这一行的处理逻辑是什么,可能是…
本文转自:http://www.ibm.com/developerworks/cn/education/java/j-jython1/index.html 关于本教程 本教程介绍哪些内容? 这个两部分的教程将介绍 Jython 脚本语言,并提供开始开发基于 Jython 的应用程序所需的足够知识.Jython 是 Python 的一种实现,已无缝集成到 Java 平台中.Python 主要在 UNIX 环境中使用,是一种强大的面向对象的脚本语言. Jython 非常有用,因为它运行于 JVM 上…
前言 我曾经是一名 .Net 开发,如今的我是一名 Java 开发者.在我享受着 Java 成熟的生态时,我常常怀念 c# 简洁的语法:自动属性.类型推断.自动初始化器 .... 鱼,我所欲也,熊掌亦我所欲也; 二者不可得兼; 直到我遇到了 lombok . 添加依赖及 IDE 插件 maven 添加依赖: <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok-maven&l…
查看手写JAVA虚拟机系列可以进我的博客园主页查看. 我们知道,我们编译.java并运行.class文件时,需要一些java命令,如最简单的helloworld程序. 这里的程序最好不要加包名,因为加了包名的话编译和运行需要有所改动. 看这里的命令.javac为编译命令,我们知道java的特点是一次编译,到处运行.这里的编译指的就是javac,对于java程序即.java文件,先要用javac编译成字节码.然后将字节码(.class文件)放到java虚拟机中运行,即上图中的java HelloW…
查看手写JAVA虚拟机系列可以进我的博客园主页查看. 前面我们介绍了准备工作以及命令行的编写.既然我们的任务实现命令行中的java命令,同时我们知道java命令是将class文件(字节码)转换成机器码,那么我们现在的任务就是读出这个class文件里面的内容. 正文: java虚拟机规范中是没有规定虚拟机该从哪里找类,也就是找class文件的,而oracle的是根据类路径,也就是classpath来搜索类的.搜索的优先级:启动类路径(bootstrap classpath)>扩展类路径(exten…
1.反编译工具之_jd-gui 官网下载地址:http://java-decompiler.github.io/#jd-gui-download 使用: 下载后解压直接使用即可. jd-gui的优势是图形化界面 操作简单,但gui很久没有更新了 存在无法反编译的情况.   2.反编译工具之_CFR 官网下载地址:http://www.benf.org/other/cfr/ 使用: (1)命令行操作: 进入到CFR所在目标 执行命令(需反编译jar:http_operator.jar.反编译后输出…
go语言下载 配置GOROOT(一般是自动的),配置GOPATH(如果想自己改的话) 参照<自己动手写Java虚拟机> > 第一章 指令集和解释器 生成了ch01.exe文件 这里还生成了一个gopkgs.exe文件 执行以上操作,这里说明:go开发java虚拟机实际上这段模拟的是命令行在安装好java JDK后的一些输入,比如查看java的version信息. 这里已经在代码中写好了. main.go : package main import "fmt" func…
最近做项目需要在JS脚本里面调用一个JAVA的函数得到数据,在网上查了很久,发现JS脚本里面不能写JAVA函数.只能把JS脚本里面的代码写进JSP文件里面的<script>标签内,然后写JAVA代码.(或许是我资料查少了,如果有办法,请告诉我一下)如: <!-- 动态生成li标签 --> <script type="text/javascript"> var JSarraylistProjectname = new Array(); <% fo…