JAVA EE
标识符
针对包,接口,方法,变量,常量等起名字的字符序列(见名知意)
标识符的组成:
1.26个英文字母
2.数字字符
3._下划线
4.$
5.严格区分大小写
注意事项:
包:(目录/文件名)
都是字母小写,或者可以有"_"
类和接口命名相同
单个单词:首字母大写,其余小写
小驼峰(多个单词):
第一个单词小写,其余单词首字母大写[helloWorld]
大驼峰(多个单词):
每个单词首字母大写,其余小写[HelloWorld]
常量命名:
单个单词字母全部大写
多个单词字母全部大写单词之间用"_"连接
Thread:线程类
【不能是Java中的关键字】
【不能以数字开头命名】
【Java严格区分大小写,我们在起名字的时候:见名知意】
【满足条件:满足组成的一种即可!不能是非法字符!】
Java中的常量
1.字面值常量
字符串常量:使用双引号包裹起来的内容 "我爱Java"
字符常量:使用单引号包裹起来的内容'a','A','0'(只能括起来单个内容)
整数常量:100 37 55 包含"进制"证书默认十进制
小数常量:1.33 1.35
布尔常量:true/false
空常量:null
2.自定义常量
【进制也属于常量】
Java中的变量
变量的三要素:数据类型,变量名,初始化值
数据类型 :在Java中,数据类型分为两大类型:
A基本数据类型:四类八种 (研究的都是基本类型)
整数类型:默认int
byte 字节类型 占1个字节(8个比特位) 取值范围:-128~127
short 短整型 占2个字节
int 整数默认类型 占4个字节
long 长整型 占8个字节
注意事项:必须在long的初始化值的末尾加L或者l
浮点类型:默认类型double
float 单精度 占4个字节
注意事项:必须在float的初始化值后面加上F或者f
double 双精度 占8个字节
字符类型:char 占两个字节
初始化值:单引号括起来的单个内容
布尔类型:boolean
不会参与类型转换:仅仅表示真,假(true/false) 占1个字节 B引用数据类型
定义变量的注意事项:
1.在java语言中同一个变量不能重复定义
2.一行可以定义多个变量(题中)
3.一行定义一个变量即可,结束之后";"(代码规范风格)
4.变量要么先初始化,要么先定义,但必须在使用前对其进行初始化
变量运算
//变量要进行运算必须保证数据类型一致
隐式转换
(char short byte 之间不能相互转换)参与运算优先转换成int类型, long float double(类型)
显示转换(强转)
强转类型转换在应用场景:
没有明确要求,尽量不用,因为可能损失精度
格式:(目标数据类型) 变量名 = (目标数据类型)(初始化值/表达式)
Java中的运算符号
1.算术运算符
基本的算术运算符:
+,-,*,/,%(模)
/:默认取整
%:求余数
++/--
在单独使用时自增或自减;
参与运算时 如果++/--在前先自增1或自减1
如果==/--在后先进行运算,然后再进行自增或自减
2.赋值运算符
基本的赋值运算符: "="
将=号右边的数据赋值给左边类型的这个变量;
扩展的赋值运算符:+=,-=,*=,/=,%=;
(赋值运算中隐藏了强制转换)
short a = 1;
a += 1; // a = (short)(a+1);
//==是比较运算符:比较两个数据相等
3.位运算符
位与 &:有0则0
位或 |:有1则1
位异或 ^:相同则为0,不同则为1
特点:一个数据被另一个数据^两次 其值不发生变化。
反码 ~:按位取反
其他运算符号
位移符号:
<<:左移
将补码进行左移,右边补零,将最高符号位丢弃
2<<2
00000000 0000000 0000000 00000010
00000000 0000000 0000000 00001000
特点:左边的数据×2的移动次幂 = 位移后数据
---------------------------------------------------
>>:右移
将补码进行右移,最高符号位为1,左边补1,为0补0 。
24>>2
0 0000000 00000000 00000000 00011000
0 0000000 00000000 00000000 00000110
特点:左边的数据/2的移动次幂 = 位移后数据
-24>>2
1 0000000 00000000 00000000 00011000 :原码
1 1111111 11111111 11111111 11100111 :反码
1 1111111 11111111 11111111 11101000 :补码
>>2
11 11111111 11111111 11111111 1111010 00:补码
1 1111111 11111111 11111111 11111001 :反码
0 0000000 00000000 00000000 00000110 :原码
-6
---------------------------------------------------
>>>:无符号右移
不管最高符号位,左边始终补0.
-28>>>2
1 0000000 00000000 00000000 00011010 :原码
1 1111111 11111111 11111111 11100101 :反码
1 1111111 11111111 11111111 11100100 :补码
>>>2
00 11111111 11111111 11111111 111001 00:补码
00 11111111 11111111 11111111 111010 :反码
11 00000000 00000000 00000000 000101 :原码
32212254
4.逻辑运算符(Important)
逻辑单与: & 并列关系(满足全部条件)
一假则假,全真则真
逻辑单或: | 或的关系(只需满足一个)
一真则真,全假则假
逻辑异或: ^ 判断是否相同
同假,异真 (男男,女女为假;男女为真)
逻辑非: ! 取反面结果
非真则假,非假则真
扩展逻辑运算符号:
逻辑双与 && 左边表达式值为假右边不执行 ( 一假则假,全真则真)
逻辑双或 || 左边表达式值为真右边不执行(一真则真,全假则假)
5.关系(比较)运算符
(true/false)
!=,<,<=,>=,>,==
6.三目(三元)运算符
格式 (表达式)?1:2;
执行流程:
判断表达式是否成立,如果成立则执行1)
如果不成立,则执行2)
位运算符运算优先级
运算符的优先级(从高到低)
优先级 描述 运算符
1 括号 ()、[]
2 正负号 +、-
3 自增自减,非 ++、--、!
4 乘除,取余 *、/、%
5 加减 +、-
6 移位运算 <<、>>、>>>
7 大小关系 >、>=、<、<=
8 相等关系 ==、!=
9 按位与 &
10 按位异或 ^
11 按位或 |
12 逻辑与 &&
13 逻辑或 ||
14 条件运算 ?:
15 赋值运算 =、+=、-=、*=、/=、%=
16 位赋值运算 &=、|=、<<=、>>=、>>>=
如果在程序中,要改变运算顺序,可以使用()
键盘录入
import java.util.Scanner;//导包:(不在java.long包下的类都需要导入!)
class a{
public static void main(String[] args){
Scanner sc = new Scanner (System.in);//创建键盘录入对象
System.out.println("please input X"); //提示键盘录入数据
int a = sc.nextInt();//开始录入数据
//使用变量
}
}
Tips:nextline(会识别回车),先录入int在录入String会跳行。
流程控制语句
顺序结构语句
顺序结构语句:
进入主程序后,main方法被Jvm调用后,代码从上到下依次执行
选择结构语句(if,switch)
if语句:
选择结构语句:
if语句:
格式1: If(表达式){
语句;
}
表达式成立则执行语句,不成立则不执行。
针对单个条件进行判断
格式2: If(表达式){
语句1;
}
else{
语句2;
}
表达式成立执行语句1,否则执行语句2。
多条件判断。
if(表达式){
语句1;
}else{
语句2;
}
执行流程:
1)首先判断表达式是否成立,
2)如果成立,则执行语句1;
3)否则,不成立,执行语句2;
Switch语句
执行流程:
1)使用switch中的表达式结果和case的进行匹配
2)case语句值1,匹配了,就执行语句1,break,结束switch语句
3)值1不匹配,继续判断值2是否和switch中的值匹配,
4)如果匹配了,执行语句2,break,结束switch语句
5)如果上面都是不匹配,最终执行default语句,语句n,break结束!
switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
switch语句使用的注意事项:
1)case语句后面的值只能是常量,不能是变量
2)书写switch语句的时候,case语句必须存在break语句,结束switch语句的!
如果没有书写break语句,会造成"case穿透!"现象
3)switch语句的结束条件
a)遇见break结束
b)程序默认执行末尾结束
4)default语句:可以在switch语句中的 任何位置
如果在语句中,必须携带break; 否则case穿透
如果在语句的末尾,break是可以省略的,(不建议)!