java程序结构:
变量: 存储数据的基本单元
数据类型: 确定要存储在内存中的数据的类型
运算符: 是一个符号,用于操作一个或多个参数以得出结果
控制流语句: 允许改变程序执行的顺序
- 标识符:包、类、方法、参数、变量
标识符的命名规则:
1. 必须以字母、下划线(_)或美元符号($)开头
2. 余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限
3. 标识符中不能有空格
4. 不能使用Java中的关键字或者保留字做为标识符
5. 见名知义
包名:全部小写,例如:com.chapter02
类名:pascal规则(帕斯卡),首字母大写,剩余单词首字母大写,例如HelloWorld.java
方法名、参数、变量命名规则:camel规则(驼峰法),首字母小写,剩余单词首字母大写,例如:methodOne()或:下划线法,所有字母全部小写,例如:user_name
常量:所有字母全部大写,多个单词之间”_”下划线隔开,例如:PI,MAX_COUNT
- 常量: 1.值不可变 2.所有字母全部大写,多个单词之间”_”隔开
语法:<修饰符> final 常量类型 常量名 = 常量值;
final double PI = 3.1415926;
分类:
① 字面常量(字面量):值本身,例如3.1415926即为字面常量
② 有名常量(有名量):例如PI
数值常量对下划线支持:
final long L = 1_234_567_890_123_456L;
- 修饰符:public、 protected、 default、 private
- 变量: 1.值可变
语法:<修饰符> 变量类型 变量名 [ = 变量初始值];
分类:
① 全局变量(成员变量、属性):定义在类中,方法以外的变量,例如l、i、b
★ 可只声明不赋值,也可声明的同时赋值
int a; //只声明、不赋值
int c = 3; //声明同时赋值
② 局部变量:定义在方法的参数中,例如num;或者定义在方法以内,例如num2
★ 必须在声明的同时赋值
int num2; //只声明、不赋值-----错误
int num3 = 6; //声明同时赋值
- 数据类型
- 整形类型:
1字节 = 8位 , 1byte = 8bit
byte: 1字节 取值:-128 -- 127
short: 2字节 取值:-2的15次方 -- 2的15次方-1
int(默认): 4字节 取值:-2的31次方 -- 2的31次方-1
long: 8字节 取值:-2的63次方 -- 2的63次方-1
Java中整型的三种表示形式:
十进制整数:0 ~ 9,注:第一位不能是0
十六进制数:0 ~ 9 A ~ F, 注:必须以0x或0X开头
例如: 0X8A 0x12
八进制整数:0 ~ 7,注:必须以0开头
例如: 0123 012
注:Java语言的整形常量默认为int型,声明long型后面需加上l或者L,
否则会出错
- 浮点型:
float: 4字节 取值:-3.403E38 -- 3.403E38
double(默认): 8字节 取值:-1.798E308 -- 1.798E308
Java浮点数类型有两种表示形式
十进制数形式,例如:3.14 314.0 .314
科学计数法形式,如:3.14e2 3.14E-1
Java浮点型常量默认为double型,如要声明一个常量为float型,
则需在数字后面加f或F,
如:
double d = 12345.6
float f = 12.3 X
float f = 12.3f √
- 字符型:(特定的Unicode字符,用 (\ u)+四个确切的16位数字代替)
char: 2字节 取值:英文字母、数字、转义字符、特殊字符
Java中的字符占两个字节(16位),因此可用十六进制编码形式表示
Java中的字符类型的值通常用单引号( '' )括起来只能有一个字符
- 转义字符
转义字符 含义
\r 表示接受键盘输入,相当于按下了回车键
\n 表示换行
\t 表示制表符Table键
\b 表示退格键,相当于Back Space
\' 相当于单引号'
\" 相当于双引号"
\\ 表示一个斜杠 \
- 布尔类型:(boolean)
true: 真
false: 假
数据类型转化:
隐式转换:(自动转换)
一般: 小 -> 大
特殊: long -> float
注意: byte short char 类型之间不互相转换,计算时会先转换为int类型
显式转换:(手动转换)
一般: 大 -> 小
注意:数据大的往小的数据类型转会有精度溢出的风险
语法:变量 = (目标类型) 值
- 运算符:
- 算数运算符
+ 算数运算 || 字符串拼接
- 算数运算
/ 除法运算: 若是两个整数相除,只保留整数部分
% 取余(取模):被模数为正数结果都为正,被模数为负数结果都为负
++ 自增 : ++num ,先加1,再计算 num++,先计算,再加1
-- 自减 : --num ,先减1,再计算 num--,先计算,再减1
- 赋值运算符
= 将右边的值赋值给左边
- 关系运算符
== 判断是否相等,返回boolean值 "=="不要写成"="
!= 判断是否不等,返回boolean值 "!=" 不要写成"<>"
- 逻辑运算符
逻辑与 && 所有表达式均满足条件,返回true,否则返回false
逻辑或 || 任意表达式返回true,结果即为true,如果所有表达式返回false,
结果才为false
逻辑非 ! 对现有的结果取反
- 短路运算
//当逻辑与 && 第一个判定条件遇到为false时,将直接返回,不再计算后面的表达式
System.out.println(false && true);//false 短路运算
//当逻辑非 || 第一个判定条件遇到为true时,将直接返回,不再计算后面的表达式
System.out.println(true || false);//true 短路运算
- 位运算符:只对byte、short、char、int、long有效
按位与 & 所有表达式均满足条件,返回true,否则返回false
按位或 | 只要任意一个表达式满足条件,返回true,
如果所有表达式均不满足条件,返回false
异或 ^ 两者不一致返回true,否则返回false
- 逻辑运算符 与 位运算符的区别:
相同点:都可以做逻辑运算
不同点:① 逻辑运算符用两个字符表示,例如 && 、||
位运算符用一个字符表示,例如&、|
② 逻辑运算符做短路运算,效率较高
位运算符做非短路运算
<< 左移 (以二进制值进行移位操作) : 左边移除部分直接丢弃,右边空出位置补0
>> 右移 右边移除部分直接丢弃,左边空出位置,最高位如果为0(0代表正数),则补0,若果为1(1代表负数),则补1
>>> 无符号右移
- 运算符执行顺序:
顺序 运算符
1 括号()
2 一元运算符,如 -、++、- -和 !
3 算术运算符,如 *、/、%、+ 和 -
4 关系运算符,如 >、>=、<、<=、== 和 !=
5 逻辑运算符,如 &、^、|、&&、||
6 条件运算符和赋值运算符,如 ? :、=、*=、/=、+= 和 -=