计算机基础知识
Java基础分类:
- 计算机基础知识
- Java基础语法
- 编程思维的建立
1.2 计算机简介
计算机俗称电脑,是第二次世界战争时,美国国防部利用它来进行弹道计算。第一台通用计算机叫做:ENIAC。当时计算机是一个庞然大物,用了18000个电子管,占地170平方米,重达30吨,耗电功率约150千瓦,每秒钟可进行5000次运算。
随着时间和科技的不断进步,直到发展到了我们今天使用到的笔记本电脑。但需要知道的是,不管计算机发展到什么程度,本质都是进行数据计算和处理。
1.3 计算机硬件和软件
1.3.1 计算机硬件
冯·诺依曼提出了计算机硬件分类:
- 运算器
- 控制器
- 存储器
- 输入设备
- 输出设备
运算器和控制器
运算器和控制器合在一起就是现在的CPU。CPU就是计算机的大脑。
输入设备
目前的输入设备有鼠标和键盘。把自己的一些数据交给计算机就是通过这些输入设备进行操作的。
存储器
存储器就是硬盘和内存。
硬盘:永久存储。
内存:临时存储。
输出设备
最为常见的输出设备就是显示器,计算机把最终的结果展现出来给我们看到。除此之外,输出设备还有打印机。
1.3.2 计算机软件
- 系统软件
- 应用软件
系统软件
简单理解就是操作系统。平时所说的安装系统,其实就是安装系统软件而已。常见的系统软件有平时用的最多的windows,还有苹果电脑MacOS,还有就业班会学习到的Linux。下面从左到右分别为windos操作系统图标,MacOS操作系统图标,Linux操作系统图标。
应用软件
应用软件就非常的熟悉了。我们平时使用的基本都是应用软件,比如QQ,微信,Stream平台。在今后我们开发的大多数也是应用软件。
应用软件架构分类
C/S: Client/Server 客户端/服务器端:
在用户本地有一个客户端程序,在远程有一个服务器端程序 。
比如:QQ,微信,Stream。
B/S: Browser/Server浏览器/服务器端:
只需要一个浏览器,用户通过不同的网址,客户访问不同的服务器端程序。
比如:京东,淘宝。
1.4 计算机语言
人与计算机沟通交流的表达方式。
计算机语言的发展
机器语言
机器语言就是 0/1 代码。计算机只能识别 0 和 1。在计算机内部,无论是一部电影还是一首歌曲或是一张图片,最终保存的都是 0/1 代码。
汇编语言
汇编语言就是将一串很枯燥无味的机器语言转化成英文单词。
比如:add 1, 2。其实就是让1和2进行相加。
计算机在执行的时候,会先把这串英文转成0101010101的形式,再交由计算机执行。但是汇编语言比较麻烦,比如我用汇编语言给你打个招呼。代码量会非常的大。所以我们也不会学习他。
高级语言
使用普通英语进行编写源代码,通过编译器将源代码翻译成计算机直接识别的机器语言,之后再由计算机执行。这样的代码就比较符合正常人的思维逻辑。
比如,下面的这段代码。判断年龄age是否大于等于18,如果是的,就可以浏览学习网站。这样就非常符合正常人的思维逻辑。
int age = 18; if (age >= 18) { System.out.println("可以浏览学习网站"); } else { System.out.println("民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善"); }
上面的这段代码在执行的时候,会先对代码进行编译,再交由计算机执行。
1.5 人机交互
图形化界面
我们平时使用计算机都是使用图形化界面操作方法,需要打开文件,直接用鼠标双击打开即可,需要删除一个文件,直接右键点击文件选择删除即可。
命令行
计算机刚开始出现的时候,是没有图形化界面的,都是命令行的方式操作计算的。
DOS命令提示符。
命令行打开方式:
- 按下 win + R
- 在弹出的运行窗口中输入cmd + 回车
在出现的黑屏窗口中就可以输入dos命令来操作计算机了。
比如:shutdown -s -t 300 就可以在300秒后关机
比如:shutdown -a 就可以取消刚刚的关机计划
常见的DOS命令
操作 | 说明 |
---|---|
盘符名称: | 盘符切换。E:回车,表示切换到E盘。 |
dir | 查看当前路径下的内容。 |
cd 目录 | 进入单级目录。cd itheima |
cd 目录1\目录2… | 进入多级目录。cd itheima\JavaSE |
cd … | 回退到上一级目录。 |
cd \ | 回退到盘符目录。 |
cls | 清屏。 |
exit | 退出命令提示符窗口。 |
思考:打开QQ
如何使用DOS窗口去打开QQ呢?
- 在图形化界面中直接找到qq的安装路径,双击QQ.exe就可以了
- 在图形化界面中,可以先切换到QQ安装的盘符,然后利用cd命令进入到qq安装目录的bin目录下。再输入qq即可。
Java程序初体验
2.1 Java背景介绍
2.1.1 Java名称的由来
在最初,Java语言是叫做oak(橡树)。是因为刚开始公司门口有一颗橡树。所以就叫做橡树。然后发现oak已经被美国橡树公司注册了,就不能再继续使用了。所以需要改名。而程序员最爱喝的是咖啡,盛产咖啡的岛叫做爪哇岛,由此语言就叫做Java了。
2.2.2 Java语言的发展
Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com
Java语言共同创始人之一:詹姆斯·高斯林 (James Gosling),被称为“Java之父”
2.2.3 Java的三大平台
JavaSE
Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。
JavaME
Java 语言的(小型版),用于嵌入式消费类电子设备。
JavaEE
Java 语言的(企业版),用于 Web 方向的网站开发。
JavaSE:
Java 语言的(标准版),用于桌面应用的开发,是其他两个版本的基础。
学习 Java SE 的目的 : 为今后要从事的 Java EE 开发,打基础。
桌面应用 :
用户只要打开程序,程序的界面会让用户在最短的时间内找到他们需要的功能,同时主动带领用户完成他们的工作并得到最好的体验。
比如:操作系统里面的计算器。
比如:坦克大战小游戏。
JavaME:
Java ME : Java 语言的(小型版),用于嵌入式消费类电子设备。
比如:以前诺基亚的塞班系统,里面的一些应用程序就是用JavaME开发的。
但是随着塞班系统渐渐的没落,JavaME也退出了历史舞台。
JavaEE:
Java 语言的(企业版),用于 Web 方向的网站开发。
网站:通过跟后台服务器的交互,将查询到的真实数据再通过网页展示出来。
简单理解:网站 = 网页浏览器数据展示 + 后台服务器
比如:
2.2 Java跨平台工作原理
2.2.1 平台
平台:指的是操作系统。
- Windows
- MacOS
- Linux
2.2.2 跨平台
Java 程序不需要进行任何修改,就可以在任意操作系统上运行。
注意:不是所有的语言都具备这样的特征。比如:C#只能在windows上运行。
2.2.3 Java实现跨平台的原理
编写的Java代码并不是直接运行在操作系统当中的。而是运行在安装的JVM虚拟机中的。每一个操作系统都会对应各自版本的虚拟机。
思考:JVM 本身是否可以跨平台
JVM 虚拟机本身不允许跨平台,每一个操作系统都有对应版本的虚拟机。允许跨平台的是 Java 程序
2.3 JRE和JDK介绍
- **JRE ** (Java Runtime Environment) :是Java程序的运行时环境,包含
JVM
和运行时所需要的核心类库
。 - JDK (Java Development Kit):是Java程序开发工具包,包含
JRE
和开发人员使用的工具。
我们想要运行一个已有的Java程序,那么只需安装JRE
即可。
我们想要开发一个全新的Java程序,那么必须安装JDK
。
小贴士:
三者关系: JDK > JRE > JVM
2.4 JDK的下载和安装
2.4.1 Java的发展历史
- 1995年Sun公司推出Java语言
- 1996年发布Java 1.0版本
- 1997年发布Java 1.1版本
- 1998年发布Java 1.2版本
- 2000年发布Java 1.3版本
- 2002年发布Java 1.4版本
- 2004年发布Java 5.0版本
- 2006年发布Java 6.0版本
- 2009年Oracle甲骨文公司收购Sun公司
- 2011年发布Java 7.0版本
- 2014年发布Java 8.0版本
- 2017年9月发布Java 9.0版本
- 2018年3月发布Java 10.0版本
- 2018年9月发布Java 11.0版本
- 2019年3月发布Java 12.0版本
- 2019年9月发布Java 13.0版本
- 2020年3月发布Java 14.0版本
小贴士:
Java5.0:里程碑性质的版本,也是第一个大版本号更新。
Java8.0:企业中用的最多的版本。
Java14.0:目前最新的,也是课程中学习的版本。
2.4.2 下载
通过官方网站获取JDK
网址:http://www.oracle.com
- 拖动到页面的最下方,点击"JAVA SE14 download"
- 点击下载
- 针对不同的操作系统,需要下载对应版本的JDK。
如果是windows64位的操作系统,可以点击下方红框的连接进行下载
2.4.3 安装
这里准备了JDK8的安装包,从网盘下载安装即可,双击打开安装包
准备8是因为jdk8是市面上企业开发使用最多的版本,保有量大,并且免费
下载链接:链接:https://pan.baidu.com/s/1BBSAinxKYKz6D1vw9omQMQ?pwd=8888
提取码:8888双击打开之后,直接点击下一步
选择安装路径,再点击下一步
等待进度条完成
点击关闭,安装成功。
小贴士:
安装路径不要有中文,不要有空格
找一个固定的文件夹专门安装所有跟开发相关的软件,方便管理。
2.4.4 JDK的安装目录介绍
目录名称 | 说明 |
---|---|
bin | 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。 |
conf | 该路径下存放了 JDK 的相关配置文件 |
include | 该路径下存放了一些平台特定的头文件 |
jmods | 该路径下存放了 JDK 的各种模块 |
legal | 该路径下存放了 JDK 各模块的授权文档 |
lib | 该路径下存放了 JDK 工具的一些补充 JAR 包 |
2.5 HelloWorld
2.5.1 HelloWorld的仪式感
HelloWorld中文意思是『你好世界』。该程序的效果就是在让程序帮我们展示一段文字,内容为 HelloWorld。
程序员在学习任何一门编程语言,第一个入门案例,都是 HelloWorld。
2.5.2 书写步骤
- 新建一个Java文件,修改名称为HelloWorld.java
- 用记事本打开HelloWorld.java文件,输写程序内容
保存(快捷键Ctrl+s)
编译文件
javac HelloWorld.java
运行文件
java HelloWorld
小贴士:
新建的HelloWorld.java文件一定要放在JDK安装目录的bin目录下面。
2.5.3 HelloWorld代码详解
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
class : 定义一个类,后面跟上的是类名名称。类是Java中最基本的组成单元。
第二行代码:程序执行时的入口点,main方法称之为主方法。
第三行代码:使程序能够输出打印双引号中包裹的内容。
2.6 Path环境变量的配置
2.6.1配置环境变量的目的
在刚刚写的代码中,只能存放在bin目录下,才能使用 javac 和 java 工具。如果我想把代码存放在任意的目录下,在任意的目录下都可以使用javac 和 java 工具该怎么办呢?
就可以把 javac 和 java配置到环境变量当中。
2.6.2 配置步骤
按下 Win键 + E ,找到计算机
右键点击计算机,选择属性
- 点击高级系统设置
- 选择高级,再点击下面的环境变量
- 点击系统变量下面的新建
- 会弹出这样的界面
变量名后面输入:JAVA_HOME
变量值后面:将JDK的安装路径复制过来,
注意:不带bin目录
操作完毕点击确定
选择Path。
此处还是要选择下方系统变量中的Path。
点击编辑
- 在弹出的页面中点击编辑文本
点击完毕之后会弹出这样的界面。
注意:里面的内容不能删除。
在变量值的最前面输入:
%JAVA_HOME%\bin; 输入完毕确定。
其中使用两个百分号包住JAVA_HOME,表示引用了JAVA_HOME里面的值。
分号,表示多个环境变量之间的间隔。
注意:所有符号一定要是英文状态下的。
打开CMD,输入java回车。
如果出现一长串很多的白色文字,表示配置成功。
2.7 注释
2.7.1 什么是注释
注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。
2.7.2 注释的分类
单行注释
格式:
// 注释信息
多行注释
格式:
/* 注释信息 */
文档注释
格式:
格式:/** 注释信息 */
文档注释目前用不上,了解即可。
2.7.3 注释的使用
//这是通过class创建了一个类,类名叫做HelloWorld
public class HelloWorld {
/*
这是程序的入口点,main方法也称之为主方法。
如果代码中没有编写主方法,将无法运行
*/
public static void main(String[] args) {
//这是一条打印语句,可以将双引号中所包裹的内容打印在控制台。
System.out.println("HelloWorld");
}
}
2.7.4 注释的注意点
注释内容不会参与编译和运行。
举例:哪怕注释写成下面这个样子,在运行的时候也不会有问题。
因为注释的内容是不会参与编译和运行的。