技术标签: java
不同版本的Applet在不同的JVM下可能无法正常运行,而Microsoft JVM只是Sun JVM的“低版本”,微软在windows xp/2003中干脆将JVM去掉了.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。今天特写此文,来整理下三者的关系。
JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Environment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK都是为了在某些方面得到一些提高,以适应自己的需求,比如IBM的JDK据说运行效率就比SUN的JDK高得多。但不管怎么说,我们还是需要先把基础的Sun JDK掌握好。
JDK有以下三种版本:
J2SE,standard edition,标准版,是我们通常用的一个版本;J2EE,enterprise edition,企业版,使用这种JDK开发J2EE应用程序;J2ME,micro edition,主要用于移动设备、嵌入式设备上的java应用程序。
我们常常用JDK来代指Java API,Java API是Java的应用程序接口,其实就是前辈们写好的一些java Class,包括一些重要的语言结构以及基本图形,网络和文件I/O等等 ,我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库供我们使用。
JRE:Java Runtime Environment(java运行时环境)。也就是我们说的JAVA平台,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。
JVM:Java Virtual Machine(JAVA虚拟机)。JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些辅助信息。
下图很好地表现了JDK,JRE,JVM三者间的关系:
我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
@java.lang.NoClassDefFoundError: javax/servlet/ServletContextTOCjava.lang.NoClassDefFoundError: javax/servlet/ServletContext使用idea 开发项目,启动时报如下错误"D:\Program Files\Java\jdk1.8.0_211\bin\java.exe" "-javaagent:D:\Program Files\IntelliJ IDEA Community Editi
我前前后后写过多篇与程序员找工作相关的文章,比如程序员跳槽神级攻略,找工作的辟邪剑谱,任性,春节前辞职,程序员该不该考虑初创公司,这些文章都收录在我的漫谈程序员专栏里,它们从跳槽时机、跳槽原因、简历优化等不同侧面讨论了程序员找工作的那些事儿,受到很多人的关注。今天呢,我准备专门分析一下程序员求职渠道,有料是必须的,就算你搜遍互联网深挖全宇宙,也会发现这篇文章将是史上最全、最强、最有针对性的程序员求
对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式。在本篇文章中,将重点研究java源代码的执行原理,即从程序员编写JAVA源代码,到最终形成产品,在整个过程中,都经历了什么?每一步又是怎么执行的?执行原理又是什么?.....当然,本篇文章的粒度可能稍微侧重于宏观方面,更细粒度的技术分析,需要在接下来的该系列文章中与大家分享....一 编写java源程序j...
从Android 9.0(API级别28)开始,默认情况下禁用明文支持。因此http的url均无法在webview中加载附上我使用的解决办法:<?xml version="1.0" encoding="utf-8"?><manifest ...> <uses-permission android:name="android.permission...
相信很多程序猿朋友都用过框架,不过你是否知道你用的是HTML框架、CSS框架还是JS框架,其实这都不重要,重要的是使用框架的目的是什么?是不是节约了开发项目时间陈本,这事多么伟大的一箱工程,根据几年前的一片文章中写到,使用前端框架的优劣势,从这边文章中整理出一部分分享给大家。
Docker是什么?开源软件部署方案,轻量级应用容器框架,可以打包发布任何,运行,任何应用。为什么要用Docket?
The NT native API is nothing new. It’s been discussed ad nauseum, it’s been exploited by umpteen different utilities, and portions of it have even migrated into the realm of the fully documented and s
以往认为脂肪组织是单纯能量储存器官,但随着脂肪组织在能量控制、炎症反应和免疫应答方面重要作用的验证,其已被确认也是一个内分泌器官。脂肪组织不仅响应来自传统内分泌系统和中枢神经系统的传入信号,还表达和分泌具有重要功能的细胞因子,包括瘦素(Leptin)、炎性细胞因子、脂联素(adiponectin)、补体成分、纤溶酶原激活物抑制剂-1(PAI-1)、肾素-血管紧张素系统蛋白和抵抗素(Resistin)等。脂肪组织中除了脂肪细胞外,还有干细胞、前脂肪细胞、巨噬细胞、嗜中性粒细胞、淋巴细胞和内皮细胞等。这些不
一、配置文件quartz.properties#ID设置为自动获取 每一个必须不同 (所有调度器实例中是唯一的)org.quartz.scheduler.instanceId=AUTO#指定调度程序的主线程是否应该是守护线程org.quartz.scheduler.makeSchedulerThreadDaemon=true#ThreadPool实现的类名org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool#Thread
项目包红叉,jar包冲突问题 先去maven库里,删除低版本jar包,然后返回项目重新更新下载jar包。即可解决。
HtmlUnit初步使用心得HtmlUnit是一款开源的java 页面分析工具,读取页面后,可以有效的使用HtmlUnit分析页面上的内容。项目可以模拟浏览器运行,被誉为java浏览器的开源实现。
前言话说JetPack已经出现了好久了,并且自己的项目中也使用过相关的东西,但是,却没有系统的学习和使用以下,各个部分中的东西。近来刚好有时间,学习了部分东西,想着光说不练嘴把式,特此记录以下方便自己以后理解和学习。首先写这篇文章之前我们先要搞懂什么是JetPack组件,它里面又包含了什么?JetPack组件是什么?Android Jetpack 组件是库的集合,这些库是为协同工作而构建的,不过也可以单独采用,同时利用 Kotlin 语言功能帮助您提高工作效率。可全部使用,也可混合搭