对于这些个不为人知的小秘密,那么就带你了解一下好吗?
  最开始我要说的是,下面的一点子东西可能会有点长,没有耐心,没有恒心,没有意志力,还是慎读的好,
因为这个不关于像什么Because of love之类的东西,它考验的最主要的是你的意志力,以及抗犯困能力...
非大毅力者还是放弃的好。
  那么首先就是第一个比较神奇的东西,叫做神奇的JDK。
  那么问题来了,什么叫做JDK呢?
     JDK全称叫做Java Develoopment Kit,是Java 的开发工具包,包括JRE加上
  一个编译器(javac)和其他工具.
  那么问题是不是又来了,说其他工具,其他工具是啥呢?
      如果这样的话,我想你可能需要了解一手一个叫做基本组件的东西。
  说了这么多,JDK的基本组件包括什么呢?
     java想必都已经很熟悉了吧,那么javac想必也一定不陌生。这些在想当年那个
  在用记事本编写Java程序的岁月中,用到的次数我感觉应该是不会少的。
     那么除此之外还有一些,像jar,javadoc,jdb,appletiviewer,Javah,javap,
Jconsole的东西,如果感兴趣的话,可以去问一下度娘从而来了解一下。
  正所谓学而不思则罔,思而不学则殆,让你们去查的话,印象又会很深刻了,
所以就不用那么麻烦了,给你们总结一下,了解一手好吗?有点印象就行,别太在意。
      jar – 打包工具,将相关的类文件打包成一个文件
      javadoc – 文档生成器,从源码注释中提取文档
      jdb – debugger,查错工具
      java – 运行编译后的java程序(.class后缀的)
      appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
      Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
      Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
      Jconsole: Java进行系统调试和监控的工具.
好啦,JDK这个东西就到这,别纠结了,不懂没关系的。
那么接下来是个什么呢?ememememem....好吧,就JRE吧。
  JRE,说到JRE问题就又来了,什么是JRE呢?
  JRE全称叫做Java Runtime Environment,是Java的运行环境,它有点子厉害,包含了JVM标准实现及Java核心类库。
是不是想问一手什么是JVM啊,别着急啊,只是先提出来嘛,下面可能,大概,也许,应该会解释的吧,ememem......
谁知道呢。O(∩_∩)O哈哈~
   好了,废话不多说,进入正题。
   那么你要知道的是,JRE虽然说是Java的运行环境,但并不是一个开发环境,所以并没有包含任何开发工具(如编译器和调试器)
   这样的话,你们是不是要问一手什么是运行环境,什么又是开发环境了呢?
   不要瞎猜了,简单说一下,就是:
   开发环境指的是你当前操作的环境,举个例子我用win7系统,eclipse写代码.这些就属于开发环境。
   运行环境,指的就是java环境,学java的都知道,java运行依赖于JDK,JDK就java虚拟机,
java只有在java虚拟机中才能运行,而JDK就是运行环境,当然配合server(tomcat之类的)这些就属于运行环境.
   是不是感觉自己懵懵哒,没关系,因为下面可能你会更懵的,不这样你怎么会体验到什么是感觉自己萌萌哒呢。
那么接下来,就是你所期待已久的JVM了。
 那么什么是JVM呢,你的第一反应是什么,我觉得你应该会说是java虚拟机吧,那么虚拟机又是什么呢?emememem...不知道?知道说不出来?
哎呀,It's really out of date.
  JVM全称Java Virtual Machine(Java虚拟机)的缩写。那么是不是有人会问,你看你自己都说是Java虚拟机了,还说我说的不对,哼╭(╯^╰)╮,
别着急啊,你如果去面试的话,我相信没有一个面试官喜欢一个只知道JVM是Java虚拟机的人。所以...嘿嘿(*^▽^*),听我说嘛
  通俗来说,JVM就相当于我在计算机上又虚构出来了一个计算机,也就是经常说的Java虚拟机,
它呢,挺厉害的一个东西,它是整个Java实现跨平台最核心的部分。
  大家都知道一个Java文件,想要看到它的结果的话,那么就要先通过编译为.class文件,然后运行,那么这个运行就是运行在JVM上。
  也就是说,class并不直接与机器的操作系统相对应,而是JVM就是负责把以".class"结尾的字节码文件解释成具体平台(Windows、linux..)上的机器指令
但代码的执行会用使用到java的核心类库中的各种类。
  引入Java虚拟机后,Java语言在不同平台上运行时不需要重新编译,这就是Java能够“一次编译,多次运行”的原因。

其实简单来说,就是JDK包含了JRE,而JRE含JVM。
  
  那么他们三个之间有什么...ememememem...区别吧?
     jdk:开发中用
     jre:运行时用
     jvm:解决了跨平台,把class文件编译成别的平台认可的文件.

JDK是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
    JRE是运行Java程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
    JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序。

那么说完三个的区别之后,联系又是什么呢?
      那么Java喊出的带有标志性口号的“Write once,Run Anywhere”(一次编译,到处运行)正是建立在JRE的基础之上。

而JVM就是这样的一台机器,它模拟实际处理器的结构,解释字节。
JRE的地位就象一台PC机一样,我们写好的Win32应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。
要运行Applet,在客户端必须安装有 JRE,即“运行时”,
容易一点理解,就象所谓的“插件”,要开发JAVA应用程序\Web应用
,就必须在服务器端安装相应的 JVM+JDK 了(开发应用 Java web应用 时,客户端不需要安装任何的JVM)
  如果你使用JAVA开发应用,就需要安装 JRE+JDK,就是 J2SE.  
  如果在客户端运行Applet,客户端浏览器必须嵌有JAVA JVM,
如果没有,就需要安装,即: 在客户端创建JRE(运行时,包含JVM),
而客户端是不需要做开发的,所以,JDK就没有必要安装 了。
    不同版本的Applet在不同的JVM下可能无法正常运行,而Microsoft JVM只是Sun JVM的“低版本”,
微软在windows xp/2003中干脆将JVM去掉了.

关于一些不为人知的小秘密相关推荐

  1. [译]震惊!RxJava 5 个不为人知的小秘密

    原文地址:5 Not So Obvious Things About RxJava 原文作者:Jag Saund 译文出自:掘金翻译计划 译者: skyar2009 校对者:Danny1451, yu ...

  2. ArrayList不为人知的小秘密

    ArrayList不为人知的小秘密 Arrays.asList(new Object [] {}).toArray()在搞怪 案例1 案例2 toArray 的本质 ArrayList 线程不安全怎么 ...

  3. Java不为人知的小秘密

    Java中的main方法必须有一个外壳类,而且必须是静态的! Java中的所有函数都属于某个类的方法,所以main方法也不例外,必须放在一个类中才能编译运行. 例如: public class tex ...

  4. 计算机不为人知的小秘密

    用alt键加小键盘可以打出ASCII表 NB http://www.360doc.com/content/11/0720/10/3487199_134644268.shtml

  5. YMatrix 番外篇|透过镜头,那些不为人知的故事

    每一次指尖的滑动, 都是与 YMatrix 最亲密的交互 屏幕前的你,是否看倦了眼花缭乱的测评报告和硬核重磅的技术分享? 如果你的心里默默给了肯定,不妨继续向下滑动页面. 在接下来的几分钟里,你将会随 ...

  6. win10任务管理器快捷键_你都知道吗?Win10 任务管理器到底藏了多少 “小秘密”...

    任务管理器是大家熟悉的一款工具,特别是在稳定性普遍不佳的 Windows 上,使用率很高.尽管每天都在用,可大家对于这款工具的了解,却远不如其他软件.其实在任务管理器中,一直隐藏着几条不为人知的小秘密 ...

  7. 苹果专卖店的16个小秘密 每平方英尺销售额超6000美元

    苹果在世界上有363家专卖店,这些专卖店每年产生180亿美元的年收益,其中纯利润率为26%,也即是每年44亿美元的纯利润.苹果在世界上有4万2千2百名员工,在美国本土有3万名员工.平均每年一名员工为苹 ...

  8. 用net连某台电脑c盘怎么连_关于电脑的4个冷知识,恐怕90%的人连第一个都不知道!...

    很多人对于身边常见的事物都有一种自以为是的"误解",总觉得自己对它已经是非常了解的了.其实不然,就像很多高考生在考试前以为自己已到达政史地.数理化的巅峰,结果后来才发现自己仍然是个 ...

  9. linux+C环境下动态管理头文件和库文件

    本文共分三个部分:首先给出了一个简单的Makefile的例子,然后分别详细阐述了头文件和库文件的相关知识 1.一个Makefile的例: -L是指定链接时搜索路径,比如-L./等: -l是指定具体的库 ...

最新文章

  1. Notification和Notification Manager的使用
  2. spring单元测试报错:Failed to load ApplicationContext 的解决方法
  3. JS中避免命名冲突的三个方法
  4. linux tracepoint例子,tracepoint介绍
  5. 从会议、医患沟通和客服对话三大场景看对话文本摘要技术
  6. myeclipse打开jsp页面慢或者卡死
  7. SpringBoot环境切换
  8. 【笔试or面试】金山西山居2014校招笔试题
  9. python输出总字符个数_python每次处理固定个数的字符的方法总结
  10. pytorch.tensor格式图像的resize操作
  11. 【火炉炼AI】机器学习045-对股票数据进行隐马尔科夫建模
  12. mysql 主节点挂机_云服务器如何重启MySQL服务,正确重启mysql
  13. 快速突破面试算法之分治算法篇
  14. JDK API 中英文版 在线版、下载地址
  15. Lintcode-37 Python语言
  16. Suse12网络设置
  17. Visual Studio安装以及增加工具集C盘占用问题
  18. 2020身高体重标准表儿童_2020最新宝宝身高体重标准表(中国标准版)
  19. android 浏览器隐藏地址,移动端隐藏手机浏览器的地址栏一下底部的菜单栏
  20. 魔兽时间 一键宏 输出的原理与笔记

热门文章

  1. 华为hcip认证费用和报名资格
  2. linux服务器测试软件,linux服务器常用测试工具及命令
  3. Gym - 102174G 神圣的 F2 连接着我们 (线段树优化建图 + 多源最短路)
  4. 字符串输出时最后出现乱码
  5. xfs和ext4文件系统大小调整
  6. [excel]如果去掉科学计数法,以及将正常的减号进行计算
  7. 使用jq-ui实现选中多元素进行拖拽操作
  8. 03、滤波器设计——阶跃阻抗低通滤波器
  9. c语言编写的商品管理程序,C语言超市商品管理系统.docx
  10. sel2000服务器自动关闭,解决了SQL SERVER 2000自动停止的问题