在上篇文章中,我们介绍了Java自学大概的路线。然而纸上得来终觉浅,今天我们教大家写第一个java demo。(ps:什么是demo?Demo的中文含意为“示范",Demo源码可以理解为某种计算机语言的示例代码)

今天的文章将分为三个部分:

    • 简单介绍JRE、JDK、JVM

    • 介绍环境安装流程

    • 编写运行hello,word

一、JRE、JDK、JVM概念及关系

JVM是Java Virtual Machine(Java虚拟机)的缩写。JVM具有的跨平台特性,决定了Java语言具有强移植性的特点。因为JVM只识别class类文件,针对不同的系统有不同的 jvm 实现,再针对class类文件与其对应的操作系统交互,一次编译,多处运行便是这个道理。

JRE是JAVA Runtime Environment 三个单词的首字母缩写,顾名思义即为Java运行环境,JRE中包含了JVM及其他JAVA核心类库。若你只是Java程序的使用者,那么你安装JRE便可满足你的需求。

JDK是Java Development Kit的缩写,即为Java开发工具包,JDK中包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,等工具软件,还包含了java程序编写所需的文档和demo例子程序。以及其他java开发工具,简而言之,JDK是提供给java开发者使用的。

以一张自己做的图来表达三者之间的关系:

二、Java 环境安装

在介绍了三者关系之后,我们应该清楚开发者需要的JDK,我们需要先下载JDK,下面是下载JDK8的链接

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

点开链接后,勾选上accept,根据系统类型选择对应的版本,我这边选的是windows64位

现在JDK8及以下版本在官网下载需要登录Oracle账户了,有账户的可以登录下载,没有账户的就需要注册了。如果嫌麻烦的可以从下面网盘地址直接下载。jdk8-64位

https://pan.baidu.com/s/1slmpnvn

下载完了之后,开始安装,一直点击下一步,在选择安装路径时,记录住安装路径,等会儿配变量时需要。

然后一直点击下一步,完成安装即可。

接着返回电脑桌面,右键计算机,点击左侧高级系统设置,点击环境变量,如下图,再点击新建

变量名为JAVA_HOME,变量值为刚刚安装时的安装路径,我的路径为C:\Program Files\Java\jdk1.8.0_05\,你需要换成你的安装路径,新建完后点击确定。然后在系统变量中找到Path变量,双击他进入编辑状态,将光标移动到变量值的最前面,输入%JAVA_HOME%\bin; 接着一直点击确定就可以了。

此时打开cmd,输入java -version 出现版本号即为JAVA环境安装成功。

三、Hello,World!

接下来我们编写第一个hello,world程序~可别写出bug像这样..hhh

来看下我们的代码:

可以用记事本,也可以用其他编辑器,我这边用的是notepad++,一个注意点就是注意文件名要和类名一样,文件名应该是 公有类名.java,我这边类名为Demo,文件名为Demo.java,我这边将其保存在D:\下。

打开cmd,cd 到D:\下,输入javac 文件名  编译成class文件

接着输入 java 类名 运行类文件,打印出Hello world 即运行成功~


个人微信订阅号: Java从零单排

分享java学习资料链接,交流Java学习经验

一文搞懂Java环境,轻松实现Hello World!的更多相关文章

  1. 一文搞懂Java引用拷贝、浅拷贝、深拷贝

    微信搜一搜 「bigsai」 专注于Java和数据结构与算法的铁铁 文章收录在github/bigsai-algorithm 在开发.刷题.面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况 ...

  2. 一文搞懂Java引用拷贝、深拷贝、浅拷贝

    刷题.面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况,这种情况就叫做拷贝.拷贝与Java内存结构息息相关,搞懂Java深浅拷贝是很必要的! 在对象的拷贝中,很多初学者可能搞不清到底是拷贝 ...

  3. 夯实Java基础系列17:一文搞懂Java多线程使用方式、实现原理以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  4. 一文搞懂 Java 线程中断

    在之前的一文<如何"优雅"地终止一个线程>中详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程的方法吗?答案是肯定的,它就是我们今天要分 ...

  5. 夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  6. 一文搞懂--Java中重写equals方法为什么要重写hashcode方法?

    Java中重写equals方法为什么要重写hashcode方法? 直接看下面的例子: 首先我们只重写equals()方法 public class Test { public static void ...

  7. 一文搞懂Java/Spring/Dubbo框架中的SPI机制

    几天前和一位前辈聊起了Spring技术,大佬突然说了SPI,作为一个熟练使用Spring的民工,心中一紧,咱也不敢说不懂,而是在聊完之后赶紧打开了浏览器,开始的学习之路,所以也就有了这篇文章.废话不多 ...

  8. 一文搞懂 Java 中的枚举,写得非常好!

    知识点 概念 enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum关键字修饰的类型就是枚举类型.形式如下: enum Color { RED, ...

  9. 一文彻底搞懂Java中的环境变量

    一文搞懂Java环境变量 记得刚接触Java,第一件事就是配环境变量,作为一个初学者,只知道环境变量怎样配,在加上各种IDE使我们能方便的开发,而忽略了其本质的东西,只知其然不知其所以然,随着不断的深 ...

随机推荐

  1. ssh设置无密码登录

    设置无密码登录此处设为有主机a登录到主机b 1.在主机a生成公钥 ssh-keygen -t rsa  之后有导航(其实一直回车就可以) 2.此时在主机a/home/YOURHOSTNAME/.ssh ...

  2. 【转】shell expect spawn、linux expect 用法小记 看着舒服点

    使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: ######## ...

  3. jquery checkbox反复调用attr('checked', true/false)只有第一次生效 Jquery 中 $('obj').attr('checked',true)失效的几种解决方案

    1.$('obj').prop('checked',true) 2. $(':checkbox').each(function(){ this.checked=true; }) 为什么:attr为失效 ...

  4. java术语(PO/POJO/VO/BO/DAO/DTO)

    PO(persistant object) 持久对象在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库 ...

  5. 启动Android App时,动态将Sqlite数据库文件导入到手机中类方法

    package com.aqioo.db; import java.io.File; import java.io.FileOutputStream; import java.io.InputStre ...

  6. 2.2.9静态同步synchronized方法与synchronized(class)代码块

    关键字synchronized还可以应用在static静态方法上,这样写那是对当前的*.java文件对应的class类进行持锁, 测试如下 package com.cky.bean; /** * Cr ...

  7. 图解Eclipse中配置Maven并创建Maven的Web工程

      打开eclipse,Windows->Preferences,如下图所示: 2 在Preferences作如下配置,如下图所示: 3 配置完Maven的安装目录后,还需要配置Maven的配置 ...

  8. 当有多个form表单请求时如何处理?

    问题:当有多个表单请求时如何处理?两种获取form表单 name属性值来区分是哪一个form表单.问题:如何获取name的值呢?<form name="myForm" met ...

  9. hdu 5093 放置战舰 二分图匹配

    http://acm.hdu.edu.cn/showproblem.php?pid=5093 给定一个MxN大小的图,有3种点,冰山.浮冰.海.现在希望能在图中放置尽可能多的船.船的四个方向上不能有其 ...

  10. AngularJS 杂项知识点

    1.要用ngChange要同时使用ngModel,下拉选择获取当前选中值. 2.打包代替动态加载(js文件) requirejs真正的价值在于模块化,不是动态加载,angularjs本身有模块化机制, ...