目录
1. 计算机的诞生
1946年2月14日,世界上第一台通用计算机“ENIAC”在美国宾夕法尼亚大学诞生,用于军事领域,美国国防部用来弹道计算。
2. 计算机组成
计算机由硬件部分(hardware)和软件部分(software)组成。
硬件是可以看的到的一些物理部分,都是一些电子元器件;
软件是看不到的部分,他是一系列的指令,这些指令主要用于控制一些特定的工作。
冯诺依曼(电子计算机之父之一):冯诺依曼体系(计算机的五大组成部分):(硬件存储程序,程序控制硬件)
- 控制器
- 运算器
- 输入设备
- 输出设备
- 存储器:硬盘、磁盘、U盘、内存等,分为两大类
- ROM:只读存储设备,能够永久保存
- RAM:随机读取设备,可以擦除数据
一台计算机是由以下几个主要的硬件组成的:
- 中央处理器(Center Processing Unit,CPU):控制器、运算器
- 内存:临时性存储数据的存储设备RAM,缓存数据,为CPU的运算提供对应的数据,有电的情况下,数据才能保存,如果断电,则数据全部清空!BIOS里面的数据存储在内存中,为了断电数据不丢失,BIOS自带电池。
- 存储设备:永久性存储设备ROM,任何数据都是以二进制的形式存储的。机械硬盘、固态硬盘、U盘、光盘、移动硬盘
- 输入、输出设备:
- 键盘:输入字符数据
- 鼠标:输入定位数据
- 显示器:输出图像图形数据
- 扬声器、麦克风
- 网络设备:
- 输入:从互联网上下载数据
- 输出:从本地上传数据到互联网
3. 人机交互方式
我们如何与计算机打交道的:
- 图形化界面方式(Graphical User Interface, GUI):给用户提供对应画面。操作简单,表现直观,容易上手操作,步骤繁琐,占用空间大
- 命令行方式(Command Line Interface):命令行接口,没有画面,或者说画面就是命令行。CMD窗口(Command,win + R 输入cmd回车),操作复杂,命名较多,不容易上手,步骤简单,占用空间小,适合远程操作
命令行中,不同的系统,使用的命令可能有出入(当然也有一样或者类似的)
Windows系统下的一些常用基本命令:
- c: 进入c盘根目录
- d: 进入d盘根目录
- cd path xxx进入xxx目录,切换目录(change directory)
- dir 查看当前目录下文件以及文件夹(类似于Linux中 ls 命令)
- dir /s 查看当前电脑中所以的文件和文件夹
- dir+path 查看指定目录下文件以及文件夹
- cd/ 进入到当前所在盘符的根目录
- cd.. 返回上一级目录
- cls 清除屏幕(类似于 clear 命令,clear screen 简写)
- ipconfig 查看电脑的IP地址(类似于Linux ifconfig命令)
- exit 退出cmd窗口
- md 创建目录make directory
- rd 删除目录(rd只能删除目录下的空文件夹)
- copy src dest 拷贝文件
- notepad 打开记事本
- mspaint 打开画图
- calc 打开计算器
- del 删除文件 del 1.docx 删除指定文件 del *.txt 删除目录下该类型后缀的文件 del+文件夹名称是删除文件夹下的所有文件(递归一层一层删,从最底层开始)
- 填充内容到指定文件夹:echo javase>1.doc
- /? 获取帮助等价help,如dir /? == help dir
系统的路径问题:在操作系统下,每一个目录下都存在两个目录,这两个目录默认不可见,但是存在,就是‘当前目录’和‘上一级目录’。
- 当前目录:.
- 上一级目录:..
- 根目录:/
4. 编程语言
编程语言是一种人类创造出来,用来告诉计算机进行运算的规则的特定语法
编程语言的发展历史:
4.1 第一代的编程语言:机器语言
机器语言:计算机中计数的最小单位是位(bit),是有半导体材料模拟出来的。因为这些指令都是以二进制代码的形式存在,所以,为了以机 器原生语言的形式给计算机指令,必须以二进制代码输入指令。例如,为进行两个数的相加,可能必须 写成如下的二进制形式:
100101001010100101010101
位 | bit(b) | 最小单位 |
字节 | byte(B) | 8个位组成 |
短整型 | short | 2个字节(16个位)组成 |
整形 | int | 4个字节(16个位)组成 |
长整形 | long | 8个字节(16个位)组成 |
4.2 第二代的编程语言:面向机器的编程语言
汇编语言:通过一些单词也叫助记符,将一些常用的操作用单词表示,在程序中慢慢出现了人类的语言,比如计算2+3的结果,在汇编语言里是以下结果。这种代码计算机读不懂,还得将这些助记符转换成对应的二进制提交给计算机进行计算。转换的工具,称之为汇编器。汇编语言它的计算方式,还是依赖于计算机的计算方式的。想学好汇编语言,还得事先了解计算机的工作原理。使用特定指令完成对应的操作。
add 2,3 result
4.3 第三代的编程语言:高级语言
从20世纪50年代产生
C语言 ==> C++语言 ==> Java语言 ==> C# ==>Python
高级编程语言完全由单词,符号和数字组成,并且书写流程也是符合人类的流程。比如计算2 + 3如下代码所示,更容易让人类去理解。同样计算机不能读取这段代码,还得将代码进行转换二进制提交给计算机。转换的形式:编译,解释
int a = 2 + 3;
- 静态编译语言:C、C++、Java
- 静态:在定义变量时有明确的数据类型的区分
- 编译:将源代码全部进行编译,生成一个可执行的二进制文件,计算机去执行这个二进制文件来运行程序。(翻译一本英文书)
- 动态解释语言:Python、JS
- 动态:在定义变量时没有明确的数据类型的区分
- 解释:将源代码从头到尾,读取一行,编译一行,运行一行(同声传译)
5. Java语言介绍
5.1 Java的诞生
Java是由James Gosling在Sun公司领导的小组开发的(2010年Sun公司被Oracle收购)。Java最初被称为Oak(橡树),是1992年为消费类电子产品(机顶盒)的嵌入式芯片而设计的。
1994年,美国硅谷大会上,James使用Java做了个动态网页。
1995年,因为专利问题更名为Java(爪哇岛咖啡),推出了Java编程语言。
1996年,JDK1.0推出。
5.2 Java的版本变迁
1996年,JDK1.0
……
2004年,JDK5.0 == JDK1.5
……
2011年,Oracle公司推出JDK7.0(短期过渡版本)
2014年,JDK8.0(长期支持版)
2019年,JDK11(长期支持版)
5.3 技术架构
Java语言分为三种技术架构:
JavaSE(Java Standard Edition,Java标准版):Java编程语言的基础、GUI编程、网络编程、IO……等桌面型应用程序
JavaEE(Java Enterprise Edition Java企业版 ):服务器应用程序,做Java企业级应用
JavaME(Java Micro Edition Java微型版):用来开发移动设备和嵌入式应用程序(比如:Android)
5.4 Java最大的特点——跨平台
跨平台的意思就算说,一个软件可以在多个平台上运行,而不是更改软件的内容。
是因为JVM的功劳:JVM(Java Virtual Machine)Java虚拟机。
Java源代码文件后缀名为xxx.java,所编译出来的二进制文件后缀名为xxx.class
JVM主要负责将java语言的字节码文件转换为本地操作系统指令的一个工具软件。
Java虚拟机(Java Virtual Machine,JVM):它是运行所有Java程序的抽象计算机,是Java语言的运 行环境,它是Java 最具吸引力的特性之一,JVM读取并处理编译过的与平台无关的字节码(class)文件。
所以,最终是字节码文件在跨平台。
6. Java开发环境搭建
6.1 JRE、JDK和JVM
JDK(Java Development Kit)Java开发工具包:sun、Oracle为开发者提供的用来Java的工具,如果我们的计算机想要去开发 一个Java程序的话,装这个即可。
JDK = 开发工具集(例如javac编译工具) + JRE
JRE(Java Runtime Environment)Java运行环境:如果我们的计算机仅仅想运行Java程序的话,装这个软件即可。是用来编译、运行、测试Java代码的一个软件
JRE = JVM + 核心类库。
JVM(Java virtual machine):Java虚拟机,用来解释和运行Java代码的
使用JDK的开发工具完成的Java程序,交给JRE去运行
6.2 Java环境的搭建和配置
手写的代码是字符串,需要通过【编译器 / 解释器】代码编译解释为机器语言
运行环境:Java官方提供了一个JDK(Java Development Kit),所以需要安装JDK
推荐使用:JDK8、JDK11 这两个长期支持版(LTS)
当然如果想要尝鲜,大家可以下载JDK17、JDK18最新的版本。
开发环境:怎么写代码,
记事本工具:notepad、notepad++、UE、EditPlus、sublime、VScode
JDK的下载与安装
- 先注册登录Oracle
- 去Oracle官网下载JDK,最新JDK15,我们目前用JDK1.8,网址:www.oracle.com
- 点击Products
- 点击SoftWare下的Java
- 右上角Download Java
- 找到JavaSE8 点击Download
- 下拉在下载列表中选择Windows X64
- 双击打开JDK安装程序
- 点击下一步
- JDK不需要更改目录,直接下一步,可以更改安装的路径,C盘会出现权限问题,注意:安装目录不要出现特殊符号,不要使用中文
- JRE不需要更改目录,直接下一步
- 安装完成,点击关闭即可
- win + r 打开cmd 输入
java -version
- 说明安装成功!
Java环境变量配置
此电脑 => 属性 => 高级系统设置 => 环境变量 => 系统环境变量
path:Windows系统执行命令时要搜寻的路径。
- 新建一个环境变量:JAVA_HOME:Java安装的主目录;
- 将%JAVA_HOME%\bin 配置到Path中;
- 点击确认,确认
- 关闭cmd,重新打开cmd,
- 输入
java -version,javac -version,或输入path查看是否有Java的环境变量。
classpath是java命令用来操作字节码文件的路径的
7. 运行一个Java代码
在JDK9.0之后,Java代码有两种写法
1. JDK9.0之后,JDK提供了一个新功能,一个终端:jshell.exe
可以在终端中直接书写Java代码
终端中,不适合写大型的代码,只适合于用来测试代码!!!
2. 通过创建Java脚本的方式书写Java代码
创建一个Xxx.java文件,注意:Xxx是名称,有规则约束!!!
如Test01.java:
public class Test01 {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
cmd运行:
D:\code\欧鹏\JavaDay01>javac Test01.java
D:\code\欧鹏\JavaDay01>java Test01
Hello World!
步骤:
1. 将 Java 代码编写到扩展名为 .java 的文件中;
2. 通过 javac 命令对该 java 文件进行编译(.class);
3. 通过 java 命令对生成的 class 文件进行运行。
8. 常见问题及解决方法
1. java和javac的版本不一致:调整JDK安装
2. 代码语法错误
public class Test01 {
public static void mian(string[] args) { //main,String
system.out.println("Hello World!") //System, 缺少分号;
}
//缺少大括号},括号成对存在
3. 编码问题【重点问题】
Java代码在编写和运行的时候,要保持编码一致
工具的不同,可能会出现不同的编码问题
vscode:一般不会出现编码,自带控制台【一般编码都是统一的】,而使用sublime、editplus等工具开发时,使用的是系统的cmd
总结:开发时和运行时编码保持一致即可(gbk或者utf-8)
9. 小结第一个程序
1. Java源文件以“java”为扩展名。源文件的基本组成部分是类(class),如本例中的Test02类。
2.Java应用程序的执行入口是main()方法。它有固定的书写格式:
public static void main(String[] args) {...}
3.Java语言严格区分大小写。
4.Java方法由一条条语句构成,每个语句以“;”结束。
5.大括号都是成对出现的,缺一不可。
6.在一个java源文件中可以声明多个class,但是只能最多有一个类声明为public,且要求声明为public的类名必须与源文件名相同,不一致会报 错误:类Test02是公共的,应在名为Test02.java的文件中声明。
7.编译的过程:编译以后,会生成一个或者多个字节码文件(.class),字节码文件的名称与源文件(.java)中声明的类名一致。
10. Java注释
注释:标注的解释。提高了代码的阅读性;调试程序的重要方法
注释的类型:
1. 单行注释://,将注释写在 // 后面
2. 多行注释:/* 注释内容(可写多行) */
注:对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。多行注释里面不允许有多行注释嵌套。
3. 文档注释:/** 文档注释(可写多行) */
注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形 式体现的该程序的说明文档。javadoc -d myHello -author -version 文件名.java