JVM/JRE/JDK

JVM
Java虚拟机(Java Virtual Machine)它是运行所有Java程序的虚拟计算机
有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行

JRE
JRE是java runtime environment(java运行环境)
光有JVM还不能让class文件执行,因为在解释class的时候JVM需要调用解释所需要的类库li在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre

JDK
JDK是java development kit(java开发工具包)
程序员做Java开发时所需要的一些工具Javac.exe/jar.exe Java基础的类库/API

关系:

JDK包含JRE,而JRE包含JVM

软件下载地址
:https://www.oracle.com/technetwork/java/javase/archive-139210.html

环境变量配置

配置环境变量的目的
当查找一个命令的时候,会默认到当前目录当中去查找执行
如果当前目录当中没有,就会到系统的环境变量当中查找

我们安装完Java后,所有的命令都在你安装根目录的bin当中

必须要在当前目录当前才能执行上面的命令,我们如果想要在任意盘当中使用上面命令的话,就需要先配置一下环境变量. 配置完成后, 就可以在任意盘符当中使用了.配置步骤如下:

第一步:

第二步:

第三步:

第四步:

配置完成后, 就可以在任意目录当中输入java命令了

第一个Java程序

新建一个文本文件.txt的,在文本文件当中输入如下内容:

class Hello{    
    public static void main(String[] args){
       System.out.print("Hello World");
    }
}

过程:

1.将Java代码编写到扩展名为.java的文件当中
2.通过javac命令对该java文件进行编译,并生成一个扩展名为.class的文件
3.通过java命令对生成的class文件进行运行
我们生成字节码的名称它是跟class的名称一样的。
如果我们在calss前添加了一个public,那么你的文件名称必须得要跟class的名称保持一致

编写完成后, 在把扩展名改为.java 输入命令行进入到当前目录,执行如下命令

执行完成后, 我们会看到生成了一个.class的字节码

再继续执行以下命令:

执行完后, 就会看到输出的结果.
以上的内容仅作为学习演示过程, 我们在开发的过程当中, 不会直接在记事本当中进行开发的, 会有专门的开发工具. 上面的过程是让大家知道Java的执行过程.

Java编译过程:

Java编程语言学习01-编写第1个Java程序的更多相关文章

  1. java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3)

    概述 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又 ...

  2. Java基础学习总结(70)——开发Java项目常用的工具汇总

    要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具. 首先我们先了解完整项目开发过程,如图所示: 从上图中我们能看到一 ...

  3. 《深入Java虚拟机学习笔记》- 第1章 Java体系结构

    一.体系结构组成 当编写并运行一个Java程序时,就同时体验了这四种技术.用Java语言编写源代码,编译成Java Class文件,然后再在Java虚拟机上运行class文件.当编写程序时,通过调用类 ...

  4. Java基础学习总结(68)——有关Java线程方面的面试题

    不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java 语言一个重要的特点就是内置了对并发的支持,让 Java 大受企业和程序员的欢迎.大多数待遇丰厚的 Java 开发职位都要求开发者 ...

  5. Java工程师学习指南第5部分:Java网络编程与NIO

    本文整理了微信公众号[Java技术江湖]发表和转载过的Java网络编程相关优质文章,想看到更多Java技术文章,就赶紧关注本公众号吧. 深度解读 Tomcat 中的 NIO 模型 [Java基本功]浅 ...

  6. Java工程师学习指南第4部分:Java并发编程指南

    本文整理了微信公众号[Java技术江湖]发表和转载过的Java并发编程相关优质文章,想看到更多Java技术文章,就赶紧关注本公众号吧吧. [纯干货]Java 并发进阶常见面试题总结 [Java基本功] ...

  7. 《深入Java虚拟机学习笔记》- 第5章 Java虚拟机

    一.JVM的生命周期 当启动一个Java程序时,一个Java虚拟机实例就诞生了:当该程序关闭退出时,这个Java虚拟机也就随之消亡: JVM实例通过调用某个初始类的main方法来运行一个Java程序: ...

  8. java基础学习01

    学习主意:边看视频,边编写代码,学习成果体现在代码

  9. <java基础学习>01环境变量配置

    安装完JDK开始配置系统环境变量,在path变量里面添加java的bin目录 方法二: 配置完成后 在命令下输入javac查看是否配置成功 第一个java程序 hello world! class H ...

随机推荐

  1. HashMap扩容后是否需要rehash?

    需要,因为要重新计算旧数组元素在新数组地址.HashMap在JDK1.8中的rehash算法(也就是扩容后重新为里面的键值对寻址的算法)进行优化.hash寻址算法是 index =(n - 1) &a ...

  2. SpringBoot读取资源目录下的文件

    需要读取resources目录下的文件,那么方法如下: 假设在资源目录下的template目录下有一个文件a.txt,获取到文件流的方式 InputStream stream = this.getCl ...

  3. Dubbo与Zookeeper开发

    1.Dubbo 1.1RPC RPC全称是remote procedure call,即远程过程调用.比如有两台服务器A和B,它们上面分别部署了一个服务.此时B服务器想调用A服务器上提供的方法,由于不 ...

  4. Vue中Jsx的使用

    什么是JSX? JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解 ...

  5. 【小菜学网络】MTU

    不同的以太网接入设备,一帧能传输的数据量是有差异的. 普通的以太网卡,一帧最多能够传输 1500 字节的数据:而某些虚拟设备,传输能力要打些折扣.此外,链路层除了以太网还有其他协议,这些协议中数据帧传 ...

  6. js mysql 时间日期比较

    js代码 1 var date1 = '2017/2/13'; 2 //var date1 = new Date().toLocaleDateString(); 3 var date2 = '2017 ...

  7. java 基础语法学习

    kuangstudy 注释 单行注释 多行注释 文档注释 public class HelloWorld { public static void main(String[] args) { //单行 ...

  8. 快速查找未打补丁的exp

    在windows DOS窗口下输入以下内容,输出为未打的补丁信息列表 systeminfo>vul.txt&(for %i in (KB977165 KB2160329 KB250366 ...

  9. cpu缓存和volatile

    目录 CPU缓存的由来 CPU缓存的概念 CPU缓存的意义 缓存一致性协议-MESI协议 Store Buffers Store Forwarding Memory Barriers Invalida ...

  10. JavaScript快速上手

    引入JavaScript项目 在html中 <!DOCTYPE html> <html lang="en"> <head> <meta c ...