java基础学习菜鸟入门第一天(编写java第一个程序及JDK安装、环境变量配置)
第一章:HelloWorld
1.1.1计算机发展历史
第一代电子数字计算机(ENIAC)于1946年在美国诞生,通过操作电子管进行控制,存储器是磁芯,指令用二进制编程。
第二代计算机(1958-1964),晶体管代替电子管,晶体管计算机 。晶体管之父:威廉 ·肖克利
第三代计算机(1964-1970),集成电路(IC),将电路集成在单块芯片上 ,中小规模集成电路计算机
第四代计算机(1971-至今),大规模集成电路计算机。
总而言之,计算机从发展到现在一直在向微型化、智能化等方向发展。
计算机之父:冯罗伊曼 人工智能之父: 图灵 java之父;詹姆斯·高斯林
计算机依赖二进制来运算,二进制数据用0和1来表示
Byte就是一个字节,bit就是一位,一个二进制数0或1就是1位。
1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB
1T=1024GB
1.1.2计算机语言的发展历史
1、机器语言:一种二进制语言直接使用二进制代码进行表达指令,是计算机硬件可以直接识别和执行的程序语言。例如:1101001000111011,最大优点:可以直接对芯片进行指令操作 ,最大的缺点:不同的计算机结构的机器指令不同,换一套硬件设备机器语言几乎都会卡壳,并且指令难以记忆,不利于编码,不利于后期维护。
2、汇编语言:直接使用机器语言编写程序十分不便,并且二进制代码编写的程序可读性极差,难以修改,因此,汇编语言使用助记符与机器语言中的指令进行一一对应,例如执行数字2加3的加法,汇编语言指令位add2,3 result,结果存放在result中。值得一提,机器语言和汇编语言都是直接操作计算机硬件。缺点:不利于编码,不利于后期维护。
3.高级语言:高级语言是更加接近于自然语言的一种计算机程序设计语言。例如执行数字2加3的加法,result=2+3,这个代码只和编程语言相关,与计算机的结构无关,同一种编程语言在不同计算机上的表达方式一致。高级语言按程序执行方式分为编译型和解释型
编译型
编译型语言是指使用专门的编译器,针对特定的操作系统将某种高级语言源代码一次性转换成可被该操作系统硬件执行的机器码(该过程叫编译),并包装成该操作系统所能识别的可执行程序的格式(编译和执行可以分开)。该可执行的程序可以脱离开发环境在该操作系统上运行(因为编译型语言是一次性完成编译,所以可以脱离开发环境运行,又因为被编译成为特定平台的机器码所以跨平台不便,至少需要相关平台的编译器重新编译,但是效率高)
解释型
指使用专门的编译器将某种高级语言逐行解释称特定平台(操作系统)的机器码并立即执行,可以认为,每次执行解释型语言的程序都需要进行一次编译,因此效率较低且不能脱离解释器,但是跨平台容易,只需要提供每个平台的解释器即可。
分类:按照处理单元:面向过程式和面向对象式。
C语言典型的面向过程式 Java典型的面向对象式
1.2Java语言的来历
1.2.1Sun公司
java是Sun公司的产品。最开始java主要用来编写的程序是用来执行在可持设备(手机、遥控等),对于语言的选择而言(要求语言本身中立),java可以支持跨平台,而c语言在当时的场景下是不能支持跨平台的。
2009年时Oracle公司收购了Sun公司。
Java语言之父:詹姆斯.高斯林(高司令)
1.2.2java语言的特点
1、历史悠久,周边生态完善;
2、自身可以支持跨平台(可以在不同的平台上执行相同的代码,得到相同的结果);
3、简单性(放弃了c语言中功能强大但是特别容易出错的指针,而改为通过“引用”去完成);
4、健壮性(强类型机制、异常处理、垃圾回收机制(垃圾回收交由Java中GC去处理)等)以及安全性相对比而言比较好
1.2.3java语言常见“单词”
i.Java语言的整体架构方向
-
javaSE:java语言的基础版本(游戏、图形化界面)
-
JavaEE:java企业级开发(web开发、 服务器开发)
-
JavaME:java移动开发(嵌入式开发)
ii.Java语言的结构![捕获.PNG](https://i-blog.csdnimg.cn/blog_migrate/9e1baf1db0803d6e312f9f3e199e5e38.png)
-
JDK :java开发工具包= 常用的命令+JRE+工具包(开发人员必须要有)
-
JRE: java运行环境(一个程序如果只需要运行,只需要保证有JRE存在即可)
-
JVM Java虚拟机:
- 是一个虚拟的计算机(通过软件模拟实现一个计算机)
- 虚拟机的作用:用来执行字节码文件
- 是一个规范、规约(产生虚拟机的硬/软件实现的方案:【HotSpot】)
总结:JDK包含了JRE,JRE包含了JVM,JVM是一个程序能够被执行的核心,它是Java跨平台的基础,Java之所以能跨平台就是依赖于JVM,JRE是提供了java程序执行环境。
1.3Java跨平台的方式
书写源代码(.java文件)–>编译源代码程序生成字节码文件(.class文件)–>解释执行字节码文件
1.4准备书写第一个Java程序
i.下载
·官网下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk13-downloads-5672538.html
ii.安装
**·**按提示安装即可
**·**安装的默认路径是:C:\Program Files\Java\jdk1.8.0_131\bin"
·打开dos命令窗口
方法一:window+r
方法二:输入cmd
·运行cmd,输入java-version输出当前JDK的版本就成功了(能够看到当前版本的信息)
1.4.2准备编写第一个HelloWorld
i.了解JDK的目录结构
ii.编写第一个程序
1、新建一个.java文件
(1)新建文本文档一定要显示文件的全部后缀名称
(2)文件后缀名是.java
(3)文件名首字母一定要大写
2、编写第一个程序
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
注意:类名和.java文件名一定要一样,符号一定要是英文,不能是中文符号,否则无法编译。
3、运行第一个程序
方法一:window+r
方法二:输入cmd
-
在dos命令窗口输入.java文件所在的盘区 例如:c:
-
再输入cd ,进行切换到.java文件所在目录 例如:cd C:\Program Files\Java\jdk1.8.0_131\bin
-
通过javac命令进行编译,在dos命令窗口输入javac Helloworld.java进行编译.编译成功后生成.class文件
-
通过java命令解释执行,在dos命令窗口输入java Helloworld 进行运行
注意:在cmd中输入javac命令,结果显示javac不是内部或者是外部命令原因是由于没有配置环境变量。
C:\Users\wawjy>javac
'javac'不是内部或外部命令,也不是可运行的程序或批处理文件。
环境变量:windows操作系统中在cmd里以命令的方式在去启动一个程序时,需要指定当前程序所在的路径,寻址方式是现在当前cmd所处的路径下去寻找,如果没有找到则去环境变量中的path中继续寻址。如果还没有,则报错。不是内部或外部命令,也不是可运行的程序。
**问题:**在安装完jdk之后,发现使用java -version没有问题,但是使用javac有问题,javac和java
是在同一个目录下的。为什么一个可以使用一个不可以使用?
**问题原因及解决方法:**在安装jdk的时候,默认在系统变量的path里添加一个路径:C:\ProgramData\Oracle\Java\javapath。而且里面包含了java.exe,但没有包含javac.exe,所以可以找到java命令
如何寻找到javac命令,如何操作?
- 在cmd中进入到bin目录
- 将其路径配置到环境变量中√
配置环境变量的目的就是为了让计算机能够找打java以及javac命令。
在我的电脑->右击->属性->高级系统设置->环境变量->系统变量->path
增加如下配置:
C:\Program Files\Java\jdk1.8.0_131\bin
重新启动cmd,然后继续测试。
iii.常见命令
cd:改变目录
>cd c:\Users\wawjy
cd…:返回上一级目录
>cd..:\users\wawjy
dir:查看当前目录下的所有文件以及文件夹
>dir:\users\wawjy
echo:将aaa内容写入到指定文件夹或者新建文件夹a.txt(.指当前目录新建一个文件夹)
>echoaaa>a.txt
md:新建一个目录 例如:java题库
>md java题库
rd:删除目录
> rd java题库
tab:自动补全
cls:清楚屏幕
↑↓箭头:将之前历史命令显示出来
help:查看当前计算机dos窗口命令支持的命令