zoukankan      html  css  js  c++  java
  • Java补漏(一)

    

    第一章前言

            在学长的建议下,为了弥补之前学Java漏下的或者不是非常清楚的知识点,买了本蛮好的教科书-Java学习笔记(JDK6)》,正式又一次学习。为了记下一些让我恍然大悟的知识。写了本文档。

    第二章Java入门

    2.1 JVM的认识

            说究竟Java是一种计算机高级语言,一般高级语言假设须要在操作系统上执行,那么它必须编译成机器语言。比方C语言,它的编译过程就是从C语言到汇编语言到机器语言。而Java的奇妙之处在于Java的编译没有直接变成机器语言,而是一种中间语言,那么中间语言要在机器上执行就必须一个转换环境,这就是Java虚拟机即JVM扮演的角色。

    这样做不是非常麻烦吗?为什么不直接编译成机器语言,而是变成中间语言?这样做不是提高了Java开发的成本吗,还要安装一个虚拟机?

            的确,C语言的开发在一些系统中甚至不须要下载编译器,比方Linux系统下的C语言仅仅须要写一个.c文本文件,然后在终端上直接输入gcc xxx.c指令就可以编译成功。

            可是这样做的优点在于,通过建立不同操作系统下的JVM版本号。能够使得Java编译后的中间语言通过不同系统版本号的JVM直接执行。也就是说我们不须要在编译同一个Java程序多次。一次编译成功的.class中间语言文件就可以在多个平台上执行。

    而你在windows系统下c语言编译得到的.exe文件却不能在linux系统下执行。你须要将原来的c语言源码拿来,在linux系统下再编译一次。

        细致想想,这有点像司马光砸缸的故事。是让人离开水还是水离开人?是又一次编译多次还是下载安装一次虚拟机?

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    2.2 JDKJRE的差别

            JRE全称JavaRuntime Environment,即Java执行环境,它是JVM的详细实现。当你下载好JDK的时候,你会发现名为jre的一个文件夹。打开后是这样一个文件夹。

    2.1 jre文件夹文件夹

            bin目录中是一些可运行文件,lib目录中是运行class文件所需的类库。

            JDK。全名JavaDevelopment Kit,即Java开发包。它本身自带一个jre,主要用来开发測试之用。这个jre与公共jre的差别在于有没有server选项。

            

    2.2 jdk文件文件夹

    2.3 JDK环境配置中的path系统变量和classpath系统变量

            曾经配置环境的时候一直没理解path变量和classpath变量的作用。蹭这个机会好好理解一遍。

    2.3.1 Path变量

            Path变量是用来在cmd上加入指令的

            比方说如今你有一个英雄联盟的游戏,你希望在cmd上直接打开,这时候你能够在Path变量中加入英雄联盟游戏exe可运行文件所在文件夹地址

    2.4 Client.exe双击便開始游戏

    2.5Client所在文件夹地址加入到Path变量中

     

    2.6cmd上输入Client指令

     

    2.7输入发现游戏启动了

     

    从上面的步骤能够看出Path变量的作用。

    配置Jdk环境时在Path系统变量中加入Jdk目录下的bin目录的地址的目的就是为了让操作系统找到指定的工具程序(以windows来讲就是找到.exe文件)。

    2.3.2 Classpath变量

            设置Classpath的目的是让Java运行环境找到指定的Java程序,即.class文件。

    在配置Java环境的时候,这个变量设置为jdk/lib目录中的tools.jarrt.jar文件的绝对地址。

    jar文件里事实上是一堆的.class文件,用压缩文件管理器打开tools.jarrt.jar。能够看到一堆的.class文件。

    2.8 tools.jar文件解压后文件夹

     

    jar格式压缩文件Java执行环境是能够直接执行的。执行是寻找当中的主方法。

    如果你有一个.class文件在桌面上,而你把桌面文件夹的地址加入到了Classpath变量中。那么会发生什么呢?

    2.9Classpath中加入一个地址

    2.10cmd上使用Java指令直接执行Test.class文件

     

            发现假设在Classpath中设置了一个文件夹地址。或者一个jar文件的地址,那么该文件夹中或者该jar文件里的class文件是能够直接执行的。

  • 相关阅读:
    为Android系统内置Java应用程序测试Application Frameworks层的硬件服务
    为Android系统的Application Frameworks层增加硬件访问服务
    为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口
    为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
    为Android系统内置C可执行程序测试Linux内核驱动程序
    Android内核驱动程序的编写和编译过程
    添加一个Application Framework Service
    getopt()函数
    Google推Android新开发语言Sky:流畅度 秒iOS
    开发人员要避免的七个心态问题
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6783250.html
Copyright © 2011-2022 走看看