Java 语言-2 Java 基本语法 1.0
2.1 注释
-
养成好的书写注释是一种好习惯
-
三种注释方式:单行注释
//、多行注释/**/、文档注释/***/- 文档注释又称 JavaDoc 注释
-
JavaDoc 是 java 特有的 doc 注释,会生成 APl 文档
- 常用参数信息
- @auther:作者名
- @version:版本号
- @since:指明需要的最早的idk版本
- @pa'ram:参数名
- @return:返回值情况
- @throws:异常抛出情况
- 对于有 @ 标注的注释,JavaDoc 在生成有关程序的文档时,会自动识别,并生成相应的文档
- 常用参数信息
2.2 程序类型
-
Java 中存在多种程序类型,在 JavaSE 中主要存在 Appliction 和 Applet 类型,前者也称为应用程序,后者也称小应用程序
- Application 是独立的程序,需要执行器(调用虚拟机)运行
- Applet 是嵌于 HTML 网页中额非独立程序
- 现在有很多可替代,所以不是很重要,但是学习过程中需要了解
-
Application 程序
-
基本应用程序,主要是定义各种类
-
例如:

class 是主体
public 类名与文件同名
main() 方法的写法固定
System.out.print 及 println 及 printf 显示信息
-
-
-
Applet 程序
-
小应用程序,与 HTML 等配合使用
-
例如:编写的 Applet 程序代码

用于执行的 HTML 代码

import :表示导入
extends JApplet 表示继承。使用:
· Apple或者JApplet格式都可以paint() 方法:表示如何绘制
HTML 中 applet 标签用于定义执行文件设置
-
Applet 程序中没有 main() 方法
-
-
-
Java 程序基本构成
- 一般 Java 程序例如:

- 要点:
- package 语句(0 或 1 句)。作用:导入包
- import 语句(0 或多句)。作用:导入其他类或者类库
- 类定义——class(1 或多个)
- 一个文件只能有一个 public 类(与文件同名)
- 一般一个类一个文件
- 一般 Java 程序例如:
2.3 数据类型
-
在介绍数据类型之前,先认识一下字节相关知识
- 位、字节和字符
- 位(bit):计算机内部储存的最小单位,11000011是一个八位二进制数。
- 字节(byte):计算机处理的最小单位,习惯上用 B 表示,1B=8bit
- 字符:计算机使用的字母、数字、字和符号
- 换算关系
- 1bit 表示1位、1B=8b、1024B=1KB、1024KB=1M、1024M=1G
- 位、字节和字符
-
数据类型决定数据的存储方式和运算方式
-
Java 的数据分类
- 基本类型(primitve type)

- 引用数据类型(reference type)

- 基本类型(primitve type)
-
两种类型的差别
- 存储位置
- 基本类型:变量在栈
- 引用类型:变量引用到堆
- 复制时
- 基本类型:复制的值
- 引用类型:复制的引用
- 存储位置
-
Java 中定义了四类/八种基本数据类型
-
整数型:byte、short、int、long
-
整数类型有固定的表数范围和字段长度,不受具体操作系统的影响,以保证 Java 的可移植性,跨平台
类型 占用存储空间 表数范围 byte 1 字节 -128~127 short 2 字节 -215~ 215-1 int 4 字节 -231~231-1 long 8 字节 -264~264-1 -
整数类型默认为 int 类型
-
Java 没有“无符号数”
- 可用用 long 来处理无符号整数
-
引用 long 时要在数字后面加上 L 或 l ¥
- 一般不用 l 是因为容易与 1 混淆
-
-
浮点型:flaot、double
-
有固定的表数范围和字段长度
类型 占用存储空间 表数范围 float 4 字节 -3.403E38~3.403E38 double 8 字节 -1.798E308~1.798E308 -
表示形式
- 十进制形式,必须含有小数点
- 例如:
3.14、314.0、.314 - 可用使用下划线表示千分位
- 例如:
123_456.789_000
- 例如:
- 例如:
- 科学计数法形式,含 e 或 E
- 例如:
3.14e2、3.14E2
- 例如:
- 十进制形式,必须含有小数点
-
默认为 double 类型
- 生成 float 类型要在数字后面加上 F或 f ¥
-
-
逻辑型:boolean
- 适用于逻辑运算,一般用于程序流程控制
- boolean 类型只允许取值 true 和 false
-
字符型:char
- 用来表示通常意义上的“字符”
- 字符常量是用单引号括起来的单个字符
- 例如:
char c ='a'
- 例如:
- Java 字符采用 Unicode 编码,每个字符占两个字节
- 范围:0~65536(原),而 Excel(原)表的范围是 216=65536
- 可用十六进制编码形式表示
- 例如:
char c1 = '\u0061'
- 例如:
- 还允许使用转义字符
\进行字符转义
-
2.4 数据类型拓展
-
整数拓展
-
Java 整型常量除十进制的其他表示形式:
-
二进制:以 0b 或者 0B 开头
-
八进制:以 0 开头
-
十六进制:以 0x 或 0X 开头
-
例如:
int a1 =10; int a2 =0b10; //二进制 int a3 =010; //八进制 int a4 =0x10; //十六进制 0-9+A-F=16 System.out.println(a1); System.out.println(a2); System.out.println(a3); System.out.println(a4);10 2 8 16
-
-
-
浮点数拓展
- 银行业务怎样表示钱?
- 浮点数的特点:有限、离散、有舍入误差
- 所以最好完全避免用浮点数进行比较
- 所以银行业务采用 BigDcimal 数学工具类
- 银行业务怎样表示钱?
-
布尔值拓展
-
语法格式:
boolean flag = true; if (flag = true) {} if (flag) {}- 这两个都是一样的,只是新手和老手的差别
-
-
字符拓展
-
强制转换
-
char a1 = 'a'; System.out.println((int)a1); //强制转换 -
97
-
-
所有字符本质依然是数字
-
转义字符图示:

-
例如:
System.out.println("Hello\nWorld");Hello World
-
-
2.5 关键字与标识符
-
关键字:一些被赋予特定意义的一些单词,不可以把它当做标识符来使用
-
有两个特殊的关键字 goto、const,这两个关键字称为保留字
-
图示:

-
-
标识符:Java 中所有组成部分的名称。类名、变量名,以及方法名都被称为标识符
-
规定
- 所有标识符必须以字母(A ~ Z或 a ~ z)或美元符($)或者下划线(_)开头,不能以数则开头
- 一般手工不使用 $,一般是编译生成特殊符号
- 所有标识符必须以字母(A ~ Z或 a ~ z)或美元符($)或者下划线(_)开头,不能以数则开头
-
注意点
-
首字符后可以是任意字符的任意组合
-
大小写敏感
-
可以使用中文命名,但是不推荐,也不建议用拼音¥
-
-
2.6 变量与常量
-
变量:可以变化的量!
-
Java 是一种强类型语言,每个变量都要声明其类型。
-
Java 变量是程序中最基本的储存单元,其要素包括变量名、变量类型和作用域
-
语法格式:
type varName [=value] [{,varName=[=value]}];数据类型 变量名 = 值;
可用逗号隔开来声明多个同类型变量
-
注意:
- 每个变量都有类型。可以是引用类型,也可以是基本类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,需要以
;结尾
-
-
常量(Counstant):
-
初始化(initialize)后不能再改变值!不会变动的值
-
常量可以理解为一种特殊的变量,常量值被设定后,再程序运算中不允许被改变
-
final 常量名 = 值 final int A = 1 final double PI = 3.14 -
常量一般用大写字母¥
-
修饰符不存在先后顺序
-
final int A = 1 int final A = 1
-
-
2.7 变量命名规范¥
- 所有变量、方法、类名:见名知意
- 不推荐拼音的原因之一
- 少用下划线
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MIN_VALUE
- 类名:首字母大写和驼峰原则:Man、GoodMan
- 方法名:首字母小写和驼峰原则:run( )、runRun( )
2.8 运算符
-
算术运算符:+、-、* 、/、%、++、--
-
%:取余计算,也称模运算
-
在运算中如果不是 int 类型的变量,在运算也会转换[^2]为 int 类型(优先级小于 int 的)
-
例如:
byte a=127; short b=32767; System.out.println(a+b);32894
-
-
一元运算符:++ 自增、-- 自减
-
例如:
int a=3; int b=a++; //a=a+1,先赋值,后自增 int c=++a; //先自增,后赋值 System.out.println(a); System.out.println(b); System.out.println(c);5 3 5
-
-
在实际应用中(像幂运算)多使用工具类来操纵(幂运算可使用 Math 类(数学工具类))
-
字符连接符:+
-
+会将两侧不同的数据类型转换为相同类型再进行连接 -
例如:
System.out.println(""+10+20); //String类型出现在+左边,右边的数值类型会转换为字符串类型 System.out.println(10+20+""); //String出现在+右边则不会转换1020 30
-
-
-
赋值运算符:=
- 当
=两侧的数据类型不一致时,会发生类型转换- 有默认类型转换和强制类型转换
- 扩展赋值运算符:+=、-=、*=、/=、……
- 当
-
关系运算符:>、<、>=、<=、==、!=
- 返回的结果为布尔值
-
逻辑运算符:&&、||、!
-
! 逻辑非、& 逻辑与、| 逻辑与、^ 逻辑异或
-
&& 短路与、|| 短路或
- 短路逻辑运算符:第一个操作数为某一个条件,则第二个操作数不进行判断
-
功能说明:

-
例如:短路运算
-
int a=5; boolean b=(a<4)&&(a++<4); System.out.println(a); System.out.println(b);5 false
-
-
例如:未短路运算
-
int a=3; boolean b=(a<4)&&(a++<4); System.out.println(a); System.out.println(b);4 true
-
-
-
位运算符:&、|、^、~、>>、<<、>>>(了解)
- 位运算符:~ 取反、& 按位与、| 按位或、^ 按位异或
- 功能说明:

- 功能说明:
- 移位运算符:<< 左移、>> 带符号右移、>>> 无符号右移
- 例如:
a>>b:将二进制形式的 a 逐位右移 b 位,最高位空出的 b 位填补原来的符号位
a>>>b:将二进制形式的 a 逐位右移 b 位,最高位空出的 b 位补 0 - 功能说明:
>>:可以为理解位算术右移 /2<<:算术左移*2>>>:理解为逻辑右移:不考虑高位的正负号,正数的 >>> 等同于 >>
- 性质:
- 适用数据类型:byte、short、char、int、long
- 对于低于 int 类型的操作数会先自动转换为 int 类型,在进行移位(整型提升)
- 例如:
- 位运算符:~ 取反、& 按位与、| 按位或、^ 按位异或
-
条件运算符:?:
-
三元运算符
-
x ?y :z
-
如果x == true,则执行y,否则执行z
-
int a = 10; String type= a > 60 ? "及格" :"不及格"; //一定要掌握 System.out.println(type);
-
-
-
2.9 表达式
-
表达式是符合一定语法规则的运算和操作数的序列
-
例如:
a; 5.0 + a; (a + b)*c - 4; i < 30 && i % 10 != 0;
-
-
表达式的类型和值
- 表达式的值的数据类型即为表达式的类型
- 对表达式中操作数进行运算得到的结果称为表达式的值
-
表达式的运算顺序
- 首先按照运算符的优先级从高到低的顺序进行
- 运算级相同的运算符按照事先规定的结合方向进行
-
各种运算符的优先级
-
优先级由上到下递减
-
类别 操作符 关联性[^3] 后缀 ( )、[ ]、.(点操作符) 左—>右 一元运算符 ++、-- 左—>右 乘型 *、/、% 左—>右 加型 +、- 左—>右 移位 >>、>>>、<< 左—>右 关系判断 >、>=、<=、 左—>右 相等判断 ==、!= 左—>右 按位与 & 左—>右 按位异或 ^ 左—>右 按位或 | 左—>右 逻辑与 && 左—>右 逻辑或 || 左—>右 三元运算符 ? : 右—>左 赋值运算符 =、+=、/=、%=、>>=、…… 右—>左 逗号 , 左—>右 -
多用括号
()-
方便理清思路
-
防止相同的代码在不同的语言中出现不同结果
-
增加可读性
-
-
-
2.10 类型转换
-
因为 Java 是强制性语言,所以要进行计算时,需要用到类型转换
-
自动转换
-
低\(\longrightarrow\)高
-
图示:

-
小数优先级大于整数
-
-
运算中,不同类型的数据先转化为同一类型,然后计算
-
强制转换
-
高\(\longrightarrow\)低
-
例如:
int i =128; byte j=(byte)i; //内存溢出(强制转换(类型)变量名)) System.out.println(i); System.out.println(j);128 -128 //内存溢出
-
-
注意
-
不能对布尔值进行转换
- 布尔值(位)!= 数值(字节)
-
不能把对象类型转换为不相干类型
-
在把高容量转换为低容量的时候,强制转换
-
转换可能存在溢出,或精度问题
-
例如:
System.out.println((int)40.1); System.out.println((int)-40.15f);40 -40
-
-
操作数比较大时注意溢出问题
-
例如:
int money =10_0000_0000; int yerar =10; int total1 = money*yerar; //1410065408,计算时以及发生溢出了 long total2 =money*yerar; //默认是int 在计算的时候就已经发生溢出了,溢出的转换未long long total3 =money*((long)yerar); //先把一个数转换为long System.out.println(total1); System.out.println(total2); System.out.println(total3);1410065408 1410065408 10000000000 -
JDK7 新特性,数字之间可以用下划线分隔
-
-

浙公网安备 33010602011771号