每日问题和复习
问题与解答
- 标识符的命名规则有哪些?
1.由英文字母(区分大小写)、数字、下划线和$组成
2.不能以数字开头
3.不能与关键字和保留字重复
4.同一代码块不能定义相同的标识符
1.由26个英文字母大小写,0-9 ,_或 $ 组成
2.数字不可以开头
3.不可以使用关键字和保留字,但能包含关键字和保留字
4.Java中严格区分大小写,长度无限制
5.标识符不能包含空格
- 标识符的命名规范有哪些?
1.包名小写单词组合aaabbbccc
2.类的名称AaaBbbCcc
3.变量的名称aaaBbbCcc
4.常量的名称AAA_BBB_CCC
1.包名:多单词组成时所有字母都小写:xxxyyyzzz
2.类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
3.变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
4.常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
- Java变量按照数据类型怎么划分?并指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小
基本数据类型:
数值型:
整数型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
引用数据类型:类、接口、数组
变量类型 |
占用空间的大小(字节) |
boolean |
1 |
byte |
1 |
char |
2 |
short |
2 |
int |
4 |
long |
8 |
float |
4 |
double |
8 |
- 说明基本数据类型变量之间自动类型提升的运算规则。
- 说明基本数据类型变量之间强制类型转换的使用规则和强转可能出现的问题。
容量大->容量小
使用强制转换符()
精度损失、得到错误的值
复习
day2的学习内容
运算符
算术运算符
运算符 |
运算 |
范例 |
结果 |
+ |
正号 |
+3 |
3 |
- |
负号 |
b=4;-b |
-4 |
+ |
加 |
5+5 |
10 |
- |
减 |
6-4 |
2 |
* |
乘 |
3*4 |
12 |
/ |
除 |
5/5 |
1 |
% |
取余 |
7%5 |
2 |
++(前) |
先运算后取值 |
a=2;b=++a |
a=3;b=3 |
++(后) |
先取值后运算 |
a=2;b=a++ |
a=3;b=2 |
–(前) |
先运算后取值 |
a=2;b=–a |
a=2;b=1 |
–(后) |
先取值后运算 |
a=2;b=a– |
a=2;b=2 |
+ |
字符串连接 |
“He”+“llo” |
“Hello” |
- 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
赋值运算符
- 符号:=
- 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理
- 支持连续赋值
- 扩展赋值运算符: +=, -=, *=, /=, %=
比较运算符(关系运算符)
运算符 |
运算 |
范例 |
结果 |
== |
相等于 |
4==3 |
false |
!= |
不等于 |
4!=3 |
true |
< |
小于 |
4<3 |
flase |
> |
大于 |
4>3 |
true |
<= |
小于等于 |
4<=3 |
false |
>= |
大于等于 |
4>=3 |
true |
instanceof |
检查是否是类的对象 |
“Hello” instanceof String |
true |
逻辑运算符
& —逻辑与 | —逻辑或 !—逻辑非
&&—短路与 ||—短路或 ^—逻辑异或
a |
b |
a&b |
a&&b |
a|b |
a||b |
!a |
a^b |
true |
true |
true |
true |
true |
true |
false |
false |
true |
false |
false |
false |
true |
true |
false |
true |
false |
true |
false |
false |
true |
true |
true |
true |
false |
false |
false |
false |
false |
false |
true |
false |
- 逻辑运算符用于连接布尔型表达式
- “&”和“&&”的区别:
- 单&时,左边无论真假,右边都进行运算
- 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
- “|”和“||”的区别同理,||表示:当左边为真,右边不参与运算
位运算符
运算符 |
运算 |
范例 |
细节 |
<< |
左移 |
3<<2 = 12 |
空位补0,高位丢弃 |
>> |
右移 |
3>>1 = 1 |
最高位是0补0,是1补1 |
>>> |
无符号右移 |
3>>>1 = 1 |
最高位用0补 |
& |
与运算 |
6&3 = 2 |
1&1 = 1,否则为0 |
| |
或运算 |
6|3 = 7 |
0|0 = 0,否则为1 |
^ |
异或运算 |
6^5 = 5 |
相同为1,不同为0 |
~ |
取反运算 |
~6 = -7 |
补码各位取反 |
三元运算符
- 格式: (条件表达式)?表达式1:表达式2;
- 条件表达式为true,运算后的结果是表达式1;
- 条件表达式为false,运算后的结果是表达式2;
- 表达式1和表达式2为同种类型(可统一为一个类型)
- 三元运算符可以嵌套
- 凡是可以使用三元运算符的地方,都可以改写为if-else,优先使用三元运算符
程序流程控制
顺序结构
分支结构
- 根据条件,选择性地执行某段代码
- 有if-else和switch-case两种分支语句
if(条件表达式){
执行代码块;
}
if(条件表达式){
执行代码块1;
}
else{
执行代码块2;
}
if(条件表达式1){
执行代码块1;
}
else if(条件表达式2){
执行代码块2;
}
……
else{
执行代码块n;
}
- 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量
- 语句块只有一条执行语句时,一对{}可以省略,但建议保留
- if-else语句结构,根据需要可以嵌套使用
- 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略
- 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓当多个条件是“包含”关系时,“小上大下 / 子上父下”
循环结构
- 根据循环条件,重复性的执行某段代码
- 有while、do…while、for三种循环语句
- 注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素
总结
今天主要学习的内容是运算符,程序控制流程讲解了一部分,刚刚开始还比较基础