Java基础
Java之父:詹姆斯·高斯林(James Gosling) 1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来
二、Java语言概述
2.1 Java语言发展史
Java之父:詹姆斯·高斯林(James Gosling)

1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。

2.2 Java语言平台版本
JavaSE(Java Platform Standard Edition)标准版
- 是为开发普通桌面和商务应用程序提供的解决方案
该技术体系是其他,可以完成一些桌面应用程序的开发两者的基础
JavaME(Java Platform Micro Edition)小型版
- 是为开发电子消费产品和嵌入式设备提供的解决方案,已经被安卓 IOS
JavaEE(Java Platform Enterprise Edition)企业版
- 是为开发企业环境下的应用程序提供的一套解决方案
2.3 Java语言特点
| 简单性 | 面向对象 | 分布式 |
|---|---|---|
| 可移植性(跨平台) | 多线程 | 动态性 |
| 健壮性 | 安全性 | 开源 |
2.4 Java跨平台
2.4.1 什么是平台
通过Java语言编写的应用程序在不同的系统平台上都可以运行
2.4.2 跨平台的原理
只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
2.4.3 图解

2.4.4 总结
因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的可移植性。也称为Java具有良好的跨平台性。
2.5 JDK、JRE、JVM
- JDK(Java Development Kit Java开发工具包)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
其中的开发工具:编译工具(javac.exe) 执行工具(java.exe) 打包工具(jar.exe)等
- JRE(Java Runtime Environment Java运行环境)
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
- JVM(Java Virtual Machine Java虚拟机)
整个java实现跨平台的最核心的部分,保证程序的跨平台性,以及编译执行写好的java程序!
总结使用JDK开发完成的java程序,交给JRE去运行。由jvm保证跨平台性。
JDK、JRE、JVM 之间的关系

总结
JDK 包含JRE JRE包含JVM ,开发中我们只需要安装JDK即可!
2.6 JDK的下载安装
2.6.1 下载JDK
通过官方网站获取JDK http://www.oracle.com
注意:针对不同的操作系统,需要下载对应版本的JDK
2.6.2 安装JDK
傻瓜式安装,下一步即可。但默认的安装路径是在C:\Program Files下,为方便统一管理建议修改安装路径,将与 开发相关的软件都安装到一个目录下,例如:E:\develop。
注意:安装路径不要包含中文或者空格等特殊字符(使用纯英文目录)。
三、DOS命令
计算机功能键
| tab | shift | alt | 空格 |
|---|---|---|---|
| enter | window | 上下左右 | 26字母 |
| 数字键 | 删除键 | ctrl | |
快捷键
| 全选 ctrl + A | 复制 ctrl + c | 粘贴 ctrl + v |
|---|---|---|
| 剪切 ctrl + x | 撤销 ctrl + z | 保存ctrl + s |
| 打开所有磁盘 window + e | 最小化当前所有窗口 window +d | 切换程序 alt + tab / window + tab |
| 打开运行窗口 window + r |
3.1 为什么学习DOS命令
在接触集成开发环境之前,我们需要使用命令行窗口对java程序进行编译和运行,所以需要知道一些常用DOS命令。也为以后学习Linux等其他内容做一些准备!
3.2 如何打开DOS命令窗口
打开命令行窗口的方式:
- win + r 打开运行窗口,输入cmd,回车。
- 点击win窗口图标,输入cmd,选择命令提示符
3.3 常用的DOS命令
| D: | 盘符切换 |
|---|---|
| dir | 查当当前目录 |
| md | 创建目录(计算机中只有目录(文件夹)和文件) |
| rd | 删除目录 |
| echo > a.txt | 创建文件 |
| del | 删除文件 |
| cd | 指定进行目录 |
| cd.. | 退回上一级目录 |
| cd\ | 退回当前盘符的根目录 |
| cls | 清屏 |
| calc | 打开计算器 |
| notepad | 打开记事本 |
| control | 打开控制面版 |
| services.msc | 打开服务 |
| exit | 退出dos |
四、环境搭建
4.1 配置开发环境
4.1.1 为什么配置环境变量
开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的 bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK 的bin目录下,所以配置环境变量的作用就是可以使bin目录下的java相关命令可以在任意目录下使用。
4.1.2 配置步骤
首先右键==【此电脑】---> 选择【属性】---> 点击左侧的【高级系统设置】== ---> 点击==【环境变量】---> 在下方的【系统变量】中点击【新建】==

新建变量名为==【JAVA_HOME】,变量值我们点击【浏览目录】,选择jdk的安装路径jdk1.8.0_121文件夹
然后点击【确定】==

找到path路径中写 %JAVA_HOME%\bin; ,放在最前面,不要忘了加英文的分号

4.2 测试开发环境
通过javac和java命令验证
注意 :如果提示 javac不是内部或者外部命令,原因是path配置错误, 重新按照上一步的步骤进行配置即可!
避免C:\WINDOWS\system32出现所有名字以java开头的文件,有,删之;
注意 :jdk不要安装在带中文的路径下,最好也是不包含空格字符的英文路径;


五、HelloWorld案例
5.1 Java程序开发运行流程
开发Java程序,需要三个步骤:编写源程序,编译程序,运行程序

javac编译: 编译是你java源文件中语法(检查你的语法是否正确)
java运行: 运行是的你编译之后的字节码文件
5.2 编写HelloWorld程序
新建文本文档文件,修改名称为HelloWorld.java
用记事本打开HelloWorld.java文件,输写程序内容
class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
HelloWorld案例的编译和运行
编译:javac 文件名.java
范例:javac HelloWorld.java
////////////////////////////////////////////////////////////////////
执行:java 类名
范例:java HelloWorld
5.3 HelloWorld常见问题
大小写问题。Java语言对大小写敏感(区分大小写)
非法字符问题。Java中的符号都是英文格式的
在系统中显示文件的扩展名,避免出现HelloWorld.java.txt文件
编译命令后的java文件名需要带文件后缀.java
运行命令后的class文件名(类名)不带文件后缀.class
5.4 Notepad++软件的安装和使用
5.4.1 为什么要使用Notepad++软件
Notepad++功能比windows中的自带记事本功能强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++有行号,能够快速定位问题位置,还有语法高亮度显示、代码折叠等功能。而且它是免费的。
5.4.2 Notepad++软件安装
安装:傻瓜式安装,一直下一步即可。建议也安装到统一的开发软件目录下,比如E:\develop。
具体安装步骤请参见《Nodepad++软件安装及配置说明》文档。
5.4.3 Notepad++软件配置
安装完毕之后,为了使用方便,做一个简单的配置:修改默认语言和编码。
具体配置的说明请参见《Nodepad++软件安装及配置说明》文档。
六、Java基础语法
6.1 注释
6.1.1 什么是注释
注释是对代码的解释和说明文字,可以提高程序的可读性,因此在程序中添加必要的注释文字十分重要
6.1.2 注释的分类
单行注释
- 单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字
// 这是单行注释文字
多行注释
- 多行注释的格式是使用/_ 和 _/将一段较长的注释括起来
/*
这是多行注释文字
这是多行注释文字
这是多行注释文字
*/
// 注意:多行注释不能嵌套使用。
文档注释(面象对象时讲解)
- 文档注释以/*开始,以/结束
/**
这是文档注释的内容
*/
6.2 关键字
6.2.1 什么是关键字
关键字是指被java语言赋予了特殊含义的单词
6.2.2 关键字的特点
关键字的字母全部小写。
常用的代码编辑器对关键字都有高亮显示,比如现在我们能看到的public、class、static等。
6.3 常量
6.3.1 什么是常量
在程序运行过程中,其值不可以发生改变的量。
6.3.2 Java中常量的分类
字符串常量
- 用双引号括起来的多个字符(可以包含0个、一个或多个),例如"a"、"abc"、"中国"等
整数常量
- 整数,例如:-10、0、88等
小数常量
- 小数,例如:-5.5、1.0、88.88等
字符常量
- 用单引号括起来的一个字符,例如:'a'、'5'、'B'、'中'等
布尔常量
- 布尔值,表示真假,只有两个值true和false
空常量
- 一个特殊的值,空值,值为null
6.3.3 常量演示
除空常量外,其他常量均可使用输出语句直接输出
/*
常量的分类:
字符串常量 "123" "abc"
整数常量: 100 1 -1 -100
小数常量: 1.1 1.2 -1.1 -1.2
字符常量: 'a' '1' '你'
字符'' 有且仅有一个字符
布尔常量: true false
空常量: null
*/
public class Demo01{
public static void main(String[] args){
// 字符串常量 "123" "abc"
System.out.println("abc");
// 整数常量
System.out.println(100);
System.out.println(-100);
//小数常量
System.out.println(1.1);
System.out.println(-1.1);
// 字符常量
System.out.println('a');
System.out.println('你');
// System.out.println('');
System.out.println(' ');
// 布尔常量: true false
System.out.println(true);
System.out.println(false);
// null是不能直接打印,有特殊应用的,在后面的数组 集合 对象中使用
// System.out.println(null);
}
}
6.4 数据类型
6.4.1 计算机存储单元
我们知道计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母”b”表示。而计算机中最基本的存储单元叫“字节(byte)”,
通常用大写字母”B”表示,字节是由连续的8个位组成。
6.4.2 存储单位换算
除了字节外还有一些常用的存储单位,其换算单位如下
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB
6.4.3 Java中的数据类型
为什么有数据类型
- Java是一个强类型语言,对每一种数据都规定了范围.
数据类型的分类
基本数据类型
注意
- e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。在java中整数默认是int类型,浮点数默认是double类型
6.5 变量
6.5.1 什么是变量
在程序运行过程中,其值可以在一定范围内发生改变的量,从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化
6.5.2 变量定义的格式
格式一
数据类型 变量名 = 初始化值; // 声明变量并赋值
格式二
// 先声明,后赋值(使用前赋值即可)
数据类型 变量名;
变量名 = 初始化值;
格式三
- 在同一行定义多个同一种数据类型的变量,中间使用逗号隔开
数据类型 变量名 = 值,变量名 = 值, ....;
6.5.3 变量注意事项
1. 在同一对花括号中,变量名不能重复。
2. 变量在使用之前,必须初始化(赋值)。
3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。
4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。
6.6 标识符
6.6.1 什么是标识符
标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名。
6.6.2 标识符的组成规则
由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。
不能使用java中的关键字作为标识符。
标识符对大小写敏感(区分大小写)。
6.6.3 标识符的命名规范(江湖规矩)
类名
- 一个单词: 首字母大写 Hello
多个单词: 每一个单词的首字母都要大写 HelloWorld (大驼峰)
变量名和方法
- 一个单词: 全部小写 value get()多个单词: 从第二个单词的首字母开始,每一个单词都要大写 maxValue getValue() (小驼峰)
包
- 一个单词: 全部小写 cn com多个单词: 全部小写中间用.分割 com.itfxp公司的域名倒着写www.baidu.com-->com.baidu.xxx
自定义常量
- 一个单词: 全部大写 MAX VALUE多个单词: 全部大写 中间用 _ 隔开 MAX_VALUE

