Java基础语法
学习目标
- 能够使用常见的DOS命令
- 理解Java语言的跨平台实现原理
- 理解JDK/JRE/JVM的组成和作用
- 能够编写HelloWorld程序编译并执行(掌握)
- 能够配置环境变量JAVA_HOME(会参照笔记配置)
- 能够辨识关键字(掌握)
- 理解标识符的含义(掌握)
- 理解Java中的基本数据类型分类(掌握)
- 能够定义8种基本数据集类型的变量(掌握)
第一章 Java概述
1. 基础常识
**软件:**一系列按照特定顺序组织的计算机数据和指令的集合。分为:系统软件和应用软件。
系统软件:Windows,Mac Os,Linux,Unix,Android,······
应用软件:word,ppt·····
人机交互方式:图形化界面 —— 命令行方式
常用DOS命令:
dir: 列出当前目录下的文件以及文件夹
md: 创建目录
rd: 删除目录
cd: 进入指定目录
cd…: 退回上一级目录
cd: 退回到根目录
del: 删除文件
exit: 退出dos命令
补充:echo javaname>1.doc
2. 计算机语言的发展迭代史
第一代:机器语言
第二代:汇编语言
第三代:高级语言
>面向过程 C,Pascal···
>面向对象 Java,Js,Python,Scala···
3. Java语言介绍
3.1 Java语言概述
-
Java诞生于SUN(Stanford University Network),09年被Oracle(甲骨文)公司收购;
-
Java之父是詹姆斯·高斯林(James Gosling);
-
目前最新的版本是JDK12,使用版本Java8。
3.2 Java语言发展历史
-
1996年,发布JDK1.0
-
2004年,发布里程碑式版本,JDK1.5,更名为JDK5.0
-
2014年,发布JDK8.0,是继JDK5.0变化最大的版本
3.3 技术平台体系
JavaSE(标准版)、JavaME(小型版)、JavaEE(企业版)
3.4 Java语言跨平台
-
Java语言的特点
- 完全面向对象
- 支持分布式
- 健壮性
- 安全
- 跨平台性
-
跨平台原理
任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM运行在操作系统上。
- JDK、JRE、JVM的关系
JDK = JRE+JAVA的开发工具(javac.exe,java.exe,javadoc.exe)
JRE = JVM +Java核心类库
4. 开发环境搭建
4.1 path环境变量的配置
-
为什么配置path环境变量?
path环境变量:windows操作系统执行命令时所要搜寻的路径;
**原因:**希望java的开发工具(java.exe,javac.exe,java.exe)在任何的文件路径下都可以执行成功。
-
如何配置?
JAVA_HOME = bin目录的上一层目录;
Path = %JAVA_HOME%\bin;
4.2 Java的第一个程序
4.2.1步骤
-
编写代码
Java要求所有的代码都保存为后缀名(扩展名)为.java源文件;
创建一个java源文件:HelloWorld.java
class HelloChina{ public static void main(String[] args){ System.out.println("Hello,World!"); } }
-
编译代码
使用javac.exe命令编译我们的java源文件,生成字节码文件(文件名为类名);
① 为什么要编译?
我们的Java程序是要在JVM(Java虚拟机中)运行,而JVM只认识“字节码”数据,不认识代码。
所以,我们要把代码编译为.class字节码文件
② 如何编译?
编译的工具:javac.exe
命令的格式:javac 源文件名.java
例如:javac HelloWorld.java
编译的结果:得到一个或多个的.class文件javac HelloWorld.java
-
运行代码
使用java.exe命令解释运行我们的字节码文件;
运行的工具:java.exe
命令的格式:java 字节码文件名java HelloChina.
[外链图片转存失败(img-U5OkkB78-1566919357331)(C:\Users\Time\AppData\Roaming\Typora\typora-user-images\1566911821945.png)]
4.2.2 说明
-
Java的结构
class 类名{ 方法{ 语句; } }
其中:HelloWorld是类,class是用来声明(定义)类用的。
Java的程序的入口:public static void main(String[] args){…};
输出语句:System.out.println(“输出的内容”)。
-
public与class的关系
在一个java源文件中可以声明多个class,但是最多只能声明一个为public的,而且要求声明 为public的类的类名必须与源文件名相同。
[外链图片转存失败(img-67aebrhs-1566919357332)(C:\Users\Time\AppData\Roaming\Typora\typora-user-images\1566912063399.png)]
-
程序的入口
Java程序的入口是main()方法,格式是固定的;
public static void main(String[] args){
/*args:参数arguments
*/
}
编译的过程:
编译以后,会生成一个或多个字节码文件,字节码文件的文件名与java源文件中的类名相同。
两种打印输出语句:
System.out.print(xx); 输出xx后不换行;
System.out.println(xx); 输出xx后换行。
4.2.3 Java程序运行过程中的问题
问题:字符编码不一致问题
- Notepad++软件默认编码是UTF-8
- cmd命令行默认编码是GBK
**解决方法:**修改Notepad++软件的编码
- 单独修改一个文件:(法一)
【编码】菜单–>转为ANSI - 修改以后所有的新建文件的编码:(法二)
【设置】–>【首选项】–>【新建】选择ANSI编码
第二章 Java基础知识
1. 注释(annotation)
1.1 分类
- 单行注释://
- 多行注释:/* */
- 文档注释:/** */
1.2 作用
- 对所写的程序进行解释说明,增强可读性。
- 调试所写的代码。
1.3 特点
- 单行注释和多行注释的注释内容不参与编译。
- 文档注释的注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档。
- 多行注释不可以嵌套使用。
2. 关键字
在Java编程语言中,有特殊意义的单词,例如:class,public,static,void。在Java中一共有50个关键字。其中有两个是保留字:goto, const。
在50个关键字之外,还有3个特殊值,true,false,null
class:声明类用的
public:表示公共的,在任意位置可见的
static:表示静态的,表示所有对象共享的
void:表示无返回值
3. 标识符
凡是在代码中需要我们自己命名的地方都是标识符,例如:类名、方法名、变量名、包名等。
3.1 标识符的命名规则
- 只能使用26个英文字母(包括大小写)、数字0-9、下划线(_)、美元符号($)
- 数字不能开头
- 不能包含空格
- 不能直接使用关键字来命名标识符,但是可以包含关键字
class class{}错误的
class Test_class{}可以的 - 严格区分大小写
3.2 标识符的命名规范
- 见名知意;
- 类名、接口名等:每一个单词的首字母大写,形式:XxxYyyZzz;
类名这些是不建议用的,这里我们第一天刚刚学习,为了让大家晚上看代码,好知道顺序。 - 变量名、方法名等:第一个单词小写,从第二个单词开始首字母大写,形式:xxxYyyZzz;
- 包名:每一个单词都小写,单词之间使用.分割,形式:xxx.yyy.zzz;
- 常量名:每一个单词都大写,单词之间使用分割,形式:XXX_YYY_ZZZ。
4. 常量
常量分为:
- 常量名
PI - 常量值:
3.1415926…
5. 变量
变量是代表JVM中内存的一块存储区域,这块存储区域中的值是可以变量的。
5.1 变量的三要素及分类
**三要素:**数据类型、变量名、变量值;
分类:
[外链图片转存失败(img-PWfvSihY-1566919357333)(E:/02-%E8%AF%BE%E5%A0%82%E7%AC%94%E8%AE%B0/weixinobU7Vjl5iHp–r2czX3tFS4CESpI%281%29/665fa5d287cb45d498a7712909d5f685/clipboard.png)]
5.2 声明(定义)变量
语法格式:
数据类型 变量名,例如:int age;
要求:
- 必须先声明后使用
- 变量必须初始化,即需要赋值
- 在同一个作用域中变量不能同名
- 变量有作用域
5.3 Java的数据类型
Java的数据类型分为两大类:
- 基本数据类型:8种;
- 引用数据类型:类、接口、数组。
5.3.1 基本数据类型
-
**整型:**byte(1字节=8bit)\short(2字节)\int(4字节)\long(8字节)
① byte范围:-128~127
② 声明long型变量,必须以“l”或“L”结尾
③ 通常定义整型变量时,使用int型
④ 整型的常量,默认类型是int型
-
**浮点型:**float(4字节)\double(8字节)
① 浮点型,表示带小数的数值
② float表示数值的范围比long还大
③ 定义float类型变量时,变量要以“f”或“F”结尾
④ 通常定义浮点型变量时,使用double型
⑤ 浮点型的常量,默认类型是double型
-
**字符型:**char(2字节)
① 定义char型变量,通常使用一对’’,内部只能写一个字符
② 表示方式:1.声明一个字符 2.转义字符 3.直接使用Unicode值来表示字符型常量
转义字符:
[外链图片转存失败(img-VZGbYT0u-1566919357333)(C:\Users\Time\AppData\Roaming\Typora\typora-user-images\1566904338678.png)] -
**布尔型:**boolean
① 只能取两个值之一:true或者false
节)
① 浮点型,表示带小数的数值
② float表示数值的范围比long还大
③ 定义float类型变量时,变量要以“f”或“F”结尾
④ 通常定义浮点型变量时,使用double型
⑤ 浮点型的常量,默认类型是double型
-
**字符型:**char(2字节)
① 定义char型变量,通常使用一对’’,内部只能写一个字符
② 表示方式:1.声明一个字符 2.转义字符 3.直接使用Unicode值来表示字符型常量
转义字符:
[外链图片转存中…(img-VZGbYT0u-1566919357333)] -
**布尔型:**boolean
① 只能取两个值之一:true或者false
②常常在条件判断、循环结构中使用