大家好,我叫何先振,今天给大家做java的基本介绍,让大家了解java,并且教会如何编写出java的第一个小程序。

第一部分:Java的历史及特点

1.什么是Java

Java首先它是一门语言。我们都知道平时跟人交流,我们需要使用语言。在中国我们沟通用中文,在国外我们又需要英语,根据不同的国家用不同国家的语言。那么我们如何跟计算机交流按照我们的命令帮我们做事为我们服务呢?那也需要用到语言,这种语言是专门跟计算机交流的语言,叫做程序设计语言,而Java就是程序设计语言的一种。

2.Java的历史

关于Java的历史,最初并不是叫java,它的前身是叫Oak语言。1991年Sun公司想研发出一套应用在电视机、电话、冰箱、烤面包机的嵌入式家用电器的程序设计语言。由这家公司的James Gosling等人开始开发。后来由于这些智能化家电的市场需求,没有预期的 高,正好当时互联网兴起,Sun公司看到互联网发展的前景,于是改造Oak,在1995年5月更名为java并正式发布。Java伴随着互联网的发展而发展,逐步成为重要的网络编程语言。

3.Java的特点

Java之所以能够发展的如此迅速。主要是因为Java有几个特点:

面向对象

借鉴了其他高级语言的优点,比如C++,采用的也是面向对象的设计。面向对象是相比面向过程,更加适用于开发大型软件工程,使复杂的软件开发变得更加容易和管理。至于具体什么是面向对象,后面的章节我们会详细讲到。

跨平台

相比其他语言开发出的软件,你在Windows系统上开发出来,却不能够在其他系统上运行,比如Liunx。这大大限制了软件的可扩展性。Java却突破了这个限制,达到了一次编译到处运行的效果。你要是用Java在Windows系统上编写开发程序,除了可以在Windows系统运行,也可以在Liunx系统上运行。

这其中的原因是Java提供了一个叫Java虚拟机,简称JVM。Java程序就运行在JVM上,不直接跟系统打交道。如果Java想要运行在不同的系统上,只需要下载对应系统的JVM,然后把Java程序放在对应不同系统的JVM上,就可以运行了。

自动垃圾回收机制

其他语言,当我们编写程序时用变量从硬盘拿数据到内存中给CPU使用,使用完需要我们开发手动去清空删除。这个时候如果开发人员忘记清空删除,不用的变量就会越来越多,积累到一定程度就会造成内存泄漏。Java就提供了能够自动处理你很久没有使用的数据,帮你清空删除掉。程序员就不必每次写完,要自己清空删除,Java中有自带垃圾收集器,帮你处理掉很久没有使用的数据来释放内存。但是这并不代表不会满,不会出现内存泄漏。如果回收不及时或者写的程序有问题回收不了,也会造成内存泄漏。

4.Java的技术体系

Java的技术体系分为JavaSE、JavaEE、JavaME。

JavaSE,用于开发桌面程序,就是平时我们打开电脑登录的QQ,网易音乐等,会在电脑界面出现窗体。

JavaEE,适用于企业级应用的开发。很多企业级的大型软件项目都需要使用Java做开发。

JavaME,用于移动终端开发,以前我们手机上就看到有Java做的游戏以及其他软件,不过现在已经淘汰掉了,也不是很火。相比这些技术体系,JavaEE企业级开发,目前是Java使用场景最多的。平时我们学出来,去企业中面试找工作,也更多的是JavaEE工程师。最近,随着大数据火起来,也出现了另一个Java的使用场景,就是Java大数据方向。这两个是目前使用Java的主流场景。

第二部分:配置Java环境

1.Java的jdk、jre、jvm介绍

前面主要让我们了解了Java的基本介绍,后面会教大家如何去编写Java的第一个程序并且运行。但是要想编写Java的第一个程序并且运行,首先我们要配置好Java的开发环境。我们如何配置Java的环境呢?这就需要我们先了解java的jdk、jre、jvm。jdk是Java的开发工具包,是专门提供给java开发人员使用的,其中包括了java的开发工具,也包括了jre。

jre被称为java的运行时环境,如果想要运行开发好的java程序,只需要在计算机中安装jre就行。竟然是运行时需要的,上面说过,java是在虚拟机jvm上运行实现跨平台的,那么jre也包括了jvm,jre中除了jvm还有一些java程序的核心类库。他们之间的关系是,jdk包括了jre。而jre又包含了jvm。所以我们开发人员安装了jdk,就不需要安装了jre了,jdk除了有jre,还有一些开发工具,比如编译工具javac.exe,以及打包工具java.exe等。

2.jdk的安装

那么如何安装jdk呢?可以去官网,Oracle公司把Sun公司收购了,现在Java变成了,Oracle的了。第一种去:www.oracle.com,第二种也可以去Sun公司的官网,但是打开后还是会跳到Oracle公司的官网:java.sun.com

下载的时候有个注意点,因为不同的操作系统,需要的jvm不一样,所以我们也要根据对应的操作系统,下载对应平台的jdk。比如Windows64位的操作系统,就需要下载Windows64位版本的jdk。下载之后,进行傻瓜式安装,下一步,下一步就可以安装好。下载好之后,我们就会有个文件夹,里面存放的就是jdk。如图:

jdk的目录中bin目录就是存放我们的java的开发工具与运行工具。其中比较常用的两个javac.exe和java.exe。javac是编译时需要用到的命令,java是解释运行时用到的命令。javadoc是生成文档用的指令。如图:

jdk的db目录是java写的一个数据库。如图:

jdk的include目录是存放C语言编写的一些文件。如图:

jdk的jre目录是我们java运行时环境。上面有提到过,包含了JVM和一些常用类库。

如图:

jdk的lib中存放了很多的jar包,以后我们程序中会调用。如图:

jdk目录下的src.zip就是存放了jdk的一些开源源码。我们查看jdk里面写的一些代码的时候,就可以把这个文件加载进来方便查看。如图:

3.配置Java环境变量

为什么需要配置环境变量:

安装好jdk之后,我们写完java代码之后,就可以通过jdk的bin目录提供的几个命令工具,来运行我们的java代码。当我们要调用jdk的bin目录下的javac.exe这个工具的时候,我们就需要在我们的Windows进入cmd界面。 找到javac的同级目录,如图:

输入cmd,按回车。如图:

进入cmd界面 。此时我们就进入了windows的命令窗口。这个时候,我们进入的目录就是jdk的bin目录中,因为我们是在jdk的bin目录输入的cmd。

如图:

因为jdk 的bin目录中存在javac.exe,java.exe。所以我们直接输入,是有效的。

如图:

如图:

我们也可以输入java -version查看jdk的版本是1.8.0_112,以及虚拟机用的是HotSpot。

如图:

但是,我们离开了这个jdk的bin目录,这些命令就失效了。比如我们定位到系统的根目录,如图:

输入java.exe就提示命令不存在。如图:

这样的原因是我们不在jdk的bin目录下,系统就找不到这个命令文件。如果我们要想在任何目录下都可以访问到jdk的java命令,就需要我们配置环境变量。

如何配置环境变量:

第一步找到我的电脑,鼠标点击右键,点击我的属性。两种方式可以找到我的电脑。

方式一,如图:

方式二,如图:

找到高级环境变量,如图:

点击环境变量,如图:

进入环境变量界面,其中分为用户环境变量和系统环境变量。用户环境变量是针对你这个windows的账号使用的,不是这个账号就没用。系统环境变量是针对所有用户使用的。

如图:

这些变量列表,其中有个Path的变量。它的作用是当windows系统执行命令时要搜寻的路径。如果我们在Path变量这配置了jdk的bin目录,就可以在任何目录下输入cmd命令打开命令操作界面,输入java命令都可以找到。因为他会找Path变量里面配置的路径,也就是jdk的bin目录的路径,发现有这些命令,从而可以运行。

如图:

下面我们给Path变量配上JDK的bin目录路径。复制jdk的bin目录路径,如图:

把路径配置到Path变量上,可以上移到第一行,别忘了点击确定保存。如图:

然后重新打开cmd界面,随便在一个目录下,输入java命令,验证是否可以访问到jdk的命令。注意要重新打开cmd界面,原先的需要关闭,因为配置完,打开界面他要重新加载。

搜索框输入cmd,如图:

默认,进入系统目录C:\User\hxz\ ,如图:

输入java -version 可以查看到jdk的信息, 验证成功。如图:

    但是一般情况下,我们不直接在Path变量中配置jdk的bin路径,我们需要新建一个JAVA_HOME的变量,在JAVA_HOME的变量中配置JDK的路径,然后在到Path变量中引入JAVA_HOME的路径也就是jdk的路径,拼上bin的路径,具体操作如下:

复制JDK地址,配置上去,如图:

新建JAVA_HOME变量,配上jdk的路径。如图:

在Path变量中引入JAVA_HOME,拼上bin路径,其中%变量名%是引入变量名中的路径,JAVA_HOME配置的是jdk的路径,拼上bin也就是jdk的bin目录下的路径。

如图:

此时重新打开cmd界面,验证java的命令也是可以成功的。如图:

我们之所以,不直接配,而要提出一个JAVA_HOME变量是因为我们一些开发工具需要用到JAVA_HOME这个变量,找到我们的jdk路径,去加载jdk的一些文件配置。如果不这么配,一些开发工具比如tomcat,会出现问题。

第三部分:编写Java的第一个程序

1.图形化界面操作与命令行操作介绍

环境变量配置好之后,现在我们来讲讲计算机的交互,可以分为两种:一种是图形化界面英文简称GUI,也就是我们电脑的Windows系统图形界面,大家可以通过鼠标点击界面操作计算机,还有一种交互方式就是命令行操作,也就是我们配置环境变量时,输入cmd打开的控制台,在这个控制台里面我们是输入命令进行操作计算机的,这种就是命令行操作计算机。他们各有好处,图形化界面操作简单直观,使用起来容易上手。命令行操作,需要有一个控制台,较为麻烦,需要记录一些命令,但是会比较快。

2.常用的几个命令

对于开发来说,我们还是需要掌握几个简单的DOS命令。因为我们在运行部署java软件的时候需要用到命令行操作方式,对计算机进行操作。那么以下是常用的dos命令:

1.dir:列出当前目录下的文件以及文件夹。如图:

2.md:创建目录。如图:

3.rd:删除目录。目录中有文件,用del删除该目录下的所有文件,然后在用rd删除目录。如图:

4.cd:进入指定目录。如图:

5.cd..:退回到上一级目录。如图:

6.cd\退回到根目录。如图:

7.del:删除文件。如图:

8.exit: 退出dos命令界面。

9.echo:创建文件。如图:其中my name is hexz >是将内容写到text.doc文件里面去。

3.编写Java的第一个程序

环境变量配置完之后,我们也知道了通过命令行操作计算机,下面我们就来学习编 写java的第一个程序-Hello Word.

首先编写一个java代码我们需要用工具,最简单的工具就是text系统默认的记事本。java的程序是写在.java文件中。

我们开始可以先创建一个txt的文件。如图:

然后改后缀为.java。如图:(之所以图标会变,因为我安装了一个文本工具,默认打开就用这个文本工具,可以忽略。)

然后在.java文件里面编写java代码。java文件被称为源文件。这里的java代码,是编写了一个class的类名,名字叫做HelloChina。如图:

通过javac命令对该java文件进行编译。编译成.class文件,class文件被称为字节码文件,字节码的文件名是我们在java文件中写的类名。如图:

通过java命令对生成的class文件进行运行。这里运行时报错,看提示告诉我们java程序中找不到main方法,所以要想运行必须要加上main方法。如图:

main方法定义,如图:

写完需要重新编译生成.class文件,重新运行。此时运行的结果发现,什么提示也没有。这是因为main是主程序的入口,我们主程序中什么都没写,所以什么都没有。

我们可以加些代码,比如打印语句。

重新编译,运行。此时我们可以看出运行时,打印出了我们代码里的Hello Word!

这里我们知道了,Java的运行机制是,首先我们在.java文件(源文件)里面编写代码,然后转译成.class文件(字节码文件)。最终执行的是.class文件。

4.Java的注释

注释的作用是对我们写的java代码做解释说明, 方便自己和别人去看,因为你写的代码久了可能会忘记自己写的是什么,更何况是别人,所以为了增加代码的可读性可以加注释进行说明。当编译的时候生成.class文件是不会编译注释内容。

注释的种类可分为以下三种:

单行注释:用双斜杠区分//,如图:

多行注释,/**注释内容**/,如图:

文本注释,是java特有的,文档注释可以被jdk的javadoc工具解析,生成一套以网页文件形式体现该程序的说明文档。他的格式是/**文本内容*/,如图:

可以通过运行javadoc -d 文件夹名字 -author -version HelloWord.Java生成说明文档。如图:

出现这个错误的原因是cmd运行java程序的时候,系统默认的编码格式是GBK,而包含中文字符的代码一般是UNICODE格式。所以我们可以通过加上encoding UTF-8解决这个问题,encoding的作用就是指定编码格式。关于编码格式:GBK,UNICODE,UTF-8。这个可以当成作业,自己去了解下,编码格式,后面章节我们会讲到。

如图:

当我们运行成功时,会创建好命令指定名字的一个文件夹,如图:

进入文件夹,打开index.html主页。如图:

可以看到文本注释的说明文档。如图:

5.Java的API文档说明。如图:

Java 的SE中包含了java的一些基本类库。而这些类库就是API,他是由Java提供的基础编程接口。而API文档就是对Java提供的基础编程接口的说明。

如图:

可以在网上下载java的api文档,这个可以当成学习的字典,如果不懂基础编程接口的可以在api说明文档上查。网上有中文也有英文版本的api。

如图:

5.Java的开发工具介绍

当我们写Java代码的时候不可能老是用记事本写,这样写的效率太低了。开发中我们用的开发工具是有idea或者Eclipse这个我们后面会讲,但是现在我们要介绍一个稍微比记事本好点的开发工具Editplus或者NotePad。这个可以网上找找这个软件下载下来,学下怎么使用。

好的,本期的内容就到这里了,想学Java的可以关注我,下期开始讲Java的基本语法。

何先振第2期:Java语言描述与编写第一个程序相关推荐

  1. 何先振第1期:Java编程入门计算机介绍

    大家好,我叫何先振,今天给大家介绍下计算机,帮助想学编程的人对计算机有个基本认识. 首先我们来看什么是计算机?计算机是能够按照程序运行控制硬件,自动,高速处理海量数据的现代智能电子设备.计算机的作用就 ...

  2. 《数据结构与抽象:Java语言描述(原书第4版)》一JI2.3 抛出异常

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...

  3. 《数据结构与抽象:Java语言描述(原书第4版)》一2.2.1 可变大小数组

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,第2.2.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timo ...

  4. 《数据结构与抽象:Java语言描述(原书第4版)》一2.1.4 让实现安全

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,第2.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timoth ...

  5. 《数据结构与抽象:Java语言描述(原书第4版)》一P.3.2 实现一个接口

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第1章 ,第1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy ...

  6. 《数据结构与抽象:Java语言描述(原书第4版)》一练习

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...

  7. 《数据结构与抽象:Java语言描述(原书第4版)》一P.4.1 标识类

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第1章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...

  8. 到天宫做客(洛谷P1178题题解,Java语言描述)

    题目要求 题目链接 分析 早期代码大概是这么写的,先是用了Date,结果连样例都过不去,就换了日期数组自己做,还是不对. import java.util.*;public class Main {p ...

  9. 高手追小萝莉的故事(洛谷P1184题题解,Java语言描述)

    题目要求 题目链接 分析 吐槽: 无时无刻都要跟着?这还追个锤子? 数据点1是:第一行1 1:第2行WC:第三行WC:追到女厕所-- 数据换行问题和空格问题真的恶心!!! 好了这个题,其实就用一个便于 ...

  10. 路径计数2(洛谷P1176题题解,Java语言描述)

    题目要求 题目链接 分析 我的思路很简单,因为这个题所有的点都是(1,1)(1,1)(1,1)开始的,所以直接把数组多开一个边,开一个[n+1][n+1]的数组就行了. 初始化f[1][1]=1f[1 ...

最新文章

  1. catv系统主要有哪三部分组成_你了解买车“三大件”之一的悬挂系统吗?家用车用什么悬挂系统?...
  2. HTTPS协议,SSL协议及完整交互过程
  3. PL/Sql Dev 调试Oracle存储过程、触发器、函数
  4. Linux安装pear包
  5. SQL 养成一个好习惯是一笔财富
  6. mybatis 字符串替换而不是设置的方法
  7. CSDN 勤写标兵勋章 颁发规则
  8. 查询数据库现在几个用户在连接
  9. Codeforces 768B - Code For 1(分治思想)
  10. 南昌大学计算机网络通信用什么书,南昌大学_计算机网络教材.doc
  11. WebApp - 微信浏览器解决安全提示“防盗号或诈骗,请不要输入QQ密码”
  12. 架构分类:软件架构、系统架构。
  13. 页面加载更多的css,十种加载样式
  14. java 实现写出倒立三角形的几种方法
  15. 地标海之珠夜色素材高清图片
  16. 基于TI AM5728(浮点双DSP C66x +双ARM Cortex-A15)的开发板
  17. 计算机实践教程采莲趣事,计算机基础作业采莲趣事
  18. 基于pycharts的白蛇2影评分析
  19. devServer和dev的区别,及vue代理接口的使用
  20. WampServer的下载方法

热门文章

  1. 最火前端Web组态软件(可视化)
  2. java实战项目教程
  3. 驱动实验准备篇(如何给驱动签名)
  4. 好用的图片压缩工具Tinypng
  5. Java基础学习总结(174)——Java 开发者应该会的流程图绘制技巧
  6. 基于大数据的精准教学模式探究
  7. server-sent events
  8. 电脑九大常用的网络命令 ,很实用!
  9. 通过ssh连接Termux
  10. 数据库系统概论--精简版