Java基础
一、目标
- 【了解】Java语言发展史
- 【理解】Java语言平台版本
- 【理解】Java语言特点
- 【理解】JRE与JDK
- 【掌握】Java开发环境搭建
- 【掌握】第一个Java程序
- 【掌握】注释
- 【理解】关键字/标识符
二、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.4 Java跨平台
2.4.1 什么是平台
通过Java语言编写的应用程序在不同的系统平台上都可以运行
2.4.2 跨平台的原理
只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即 可。由JVM来负责Java程序在该系统中的运行。
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。
注意:安装路径不要包含中文或者空格等特殊字符(使用纯英文目录)。
开发工具包含运行环境jre以及源码,可以直接使用默认目录安装(注意:如果自定义路径需要创建jdk与jre文件夹)
2.6.3 jdk自定义安装
注意:jdk8之前安装jdk与jre分别安装
(1)双击安装工具 点击更改选择安装路径
(2)选择jdk安装路径(自定义安装路径不会自动创建文件夹 需要手动创建)
(3)点击下一步开始jdk的安装
(4)jdk8之前需要额外安装jre 重新选择jre路径进行jre安装
jre与jdk一样如果使用自定义路径不会自动创建文件加 需要手动创建(jdk与jre存在同名文件,jre安装时如果与jdk在同一文件夹会覆盖 导致不能使用)
三、DOS命令
3.1 为什么学习DOS命令
在接触集成开发环境之前,我们需要使用命令行窗口对java程序进行编译和运行,所以需要知道一些常用DOS命 令。也为以后学习Linux等其他内容做一些准备!
3.2 如何打开DOS命令窗口
打开命令行窗口的方式:
- win + r 打开运行窗口,输入cmd,回车。
- 点击win窗口图标,输入cmd,选择命令提示符
3.3 常用的DOS命令
操作 | 说明 |
---|---|
盘符名称: | E:回车,表示切换到E盘。 |
dir | 查看当前路径下的内容。 |
cd | 目录 进入单级目录。cd JavaSE |
cd… | 回退到上一级目录。 |
cd 目录1\目录2… | 进入多级目录。cd JavaSE\baiyunshan |
cd\ | 回退到盘符目录。 |
cls | 清屏。 |
exit | 退出命令提示符窗口。 |
四、环境搭建
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; ,放在最前面,不要忘了加英文的分号
jdk环境配置
JAVA_HOME:用于配置jdk安装路径,用于提供第三方软件支持
CLASSPATH:jdk1.5以后默认配置,无需配置(如果配置不要配错),配置源代码编译后生成位置
PATH:使bin下工具可以在任意路径下使用
注意:在修改环境变量之后需要重新打开cmd窗口
4.2 测试开发环境
通过javac和java命令验证
注意 :如果提示 javac不是内部或者外部命令,原因是path配置错误, 重新按照上一步的步骤进行配置即可!
避免C:\WINDOWS\system32出现所有名字以java开头的文件,有,删之;
注意 :jdk不要安装在带中文的路径下,最好也是不包含空格字符的英文路径;
五、HelloWorld案例
5.1 Java程序开发运行流程
开发Java程序,需要三个步骤:编写源程序,编译程序,运行程序2。
5.2 编写HelloWorld程序
-
新建文本文档文件,修改名称为HelloWorld.java
-
用记事本打开HelloWorld.java文件,输写程序内容
-
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。
六、java基础语法
6.1 注释
6.1.1 什么是注释
注释是对代码的解释和说明文字,可以提高程序的可读性,因此在程序中添加必要的注释文字十分重要
6.1.2 注释的分类
- 单行注释
单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字
// 这是单行注释文字
- 多行注释
多行注释的格式是使用/* 和 */将一段较长的注释括起来
/*
这是多行注释文字
这是多行注释文字
这是多行注释文字
*/
// 注意:多行注释不能嵌套使用。
- 文档注释
文档注释以
/**
开始,以*/
结束
/**
这是文档注释的内容
*/
//单行注释 以//开始注释本行内之后的所有数据
public class HelloWorld{//如果在//前拥有代码不会被注释
public static void main(String [] args){
System.out.println("hello world!1");
/*多行注释 以/*开始 以※/结束 注释之间内容
会注释中间的多行内容
与单行注释相同不会注释之前的内容 并且之后也不会注释
*/
System.out.println("hello world!2");
/**
文档注释以/**开始 以※/结束 注释之间内容
与多行注释内容相同,唯一不同的是,文档注释
可以书写相应的文档标签@autor 作者 @date 时间
通过javadoc指令可以生成文档(现在已经不用了)
*/
}
}
注意:注释会在编译期间自动忽略(不会编译到class文件中)
6.2 关键字
6.2.1 什么是关键字
关键字是指被java语言赋予了特殊含义的单词
6.2.2 关键字的特点
关键字的字母全部小写。
单词
常用的代码编辑器对关键字都有高亮显示,比如现在我们能看到的public、class、static等。
常用的关键字51+2个
2个保留字conest goto
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);
}
}
在java中会将常量存储在在常量池中
在jvm运行过程中会将程序中所有的常量数据存储在常量池中(第一次使用)
在实际执行过程中虚拟机执行代码读取执行过程中发现存在常量,会先去常量池中查找是否存在,如果不存在则开辟空间存储数据,如果存在则直接返回,只有当程序执行结束后GC(垃圾回收器)会自动回收(删除数据释放资源)
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是一个强类型语言,对每一种数据都规定了范围.
- 数据类型的分类
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NqxXwQGx-1644405102852)(assets/image-20201030171038319.png)]
- 基本数据类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cu31vYLk-1644405102853)(assets\image-20210601074509354.png)]
- 注意
e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。
==在java中整数默认是int类型,浮点数默认是double类型==
6.5 变量
6.5.1 什么是变量
在程序运行过程中,其值可以在一定范围内发生改变的量,从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化
6.5.2 变量定义的格式
- 格式一
数据类型 变量名 = 初始化值; // 声明变量并赋值
int age = 18;
System.out.println(age);
-
格式二
// 先声明,后赋值(使用前赋值即可) 数据类型 变量名; 变量名 = 初始化值;
double money; money = 55.5; System.out.println(money);
-
格式三
在同一行定义多个同一种数据类型的变量,中间使用逗号隔开
数据类型 变量名 = 值,变量名 = 值, ....;
int a = 10, b = 20; // 定义int类型的变量a和b,中间使用逗号隔开 System.out.println(a); System.out.println(b); int c,d; // 声明int类型的变量c和d,中间使用逗号隔开 c = 30; d = 40; System.out.println(c); System.out.println(d);
6.5.3 变量注意事项
1. 在同一对花括号中,变量名不能重复。
2. 变量在使用之前,必须初始化(赋值)。
3. 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。
4. 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。
5. 变量实际存储的是数据的地址,修改的也是地址
声明的变量保存在栈中,栈中不保存数据,实际保存的是数据的地址,变量修改实际修改的是保存的地址
注意:修改变量数据,也不会删除对应常量,常量池中的数据gc回收实际为程序执行结束
6.6 标识符
6.6.1 什么是标识符
标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名。
6.6.2 标识符的组成规则
由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。
不能使用java中的关键字作为标识符。
标识符对大小写敏感(区分大小写)。
6.6.3 标识符的命名规范
见名知意:根据名字知道标识符对应功能
驼峰命名法:如果标识符由多个单词组成除首个单词首字母外其余单词首字母大写 passWord
- 类名
一个单词: 首字母大写 Hello
多个单词: 每一个单词的首字母都要大写 HelloWorld (大驼峰)
- 变量名和方法
一个单词: 全部小写 value get()
多个单词: 从第二个单词的首字母开始,每一个单词都要大写 maxValue getValue() (小驼峰)
- 包
一个单词: 全部小写 cn com
多个单词: 全部小写中间用
.
分割 cn.yunhe公司的域名倒着写
www.baidu.com–>com.baidu.xxx
com.yunhe.部门名.功能名
- 自定义常量
一个单词: 全部大写 MAX VALUE
多个单词: 全部大写 中间用 _ 隔开 MAX_VALUE