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

  对于这些个不为人知的小秘密,那么就带你了解一下好吗?
  最开始我要说的是,下面的一点子东西可能会有点长,没有耐心,没有恒心,没有意志力,还是慎读的好,
因为这个不关于像什么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去掉了.
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值