Java基本语法(上): 变量与运算符
主要讲解宋老师里面课后题(无答案的),以便后期复习使用。(可以私信我要文档资料)
简答题:
1. 标识符的命名规则需要注意哪几点?
标识符的使用
- 标识符:凡是自己可以起名字的地方都叫标识符。
比如:类名、变量名、方法名、接口名、包名…
- 标识符的命名规则:如果不遵守如下的规则,编译不通过!需要大家严格遵守
由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。
- Java中的名称命名规范: 如果不遵守如下的规范,编译可以通过!建议大家遵守
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
*/
2. 基本数据类型有哪几类?包含String吗?
基本数据类型为8类,分别是boolean byte char short Int long float double
不包含String,String属于引用数据类型。
3. 写出基本数据类型自动转化的流程图
自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容 量大小排序为:
4. 整型默认的是什么类型,浮点型(实数型)默认的是什么类型?
整型默认为int,浮点型默认为double。
5. 对于包名,类名接口名,变量名和函数名,常量名我们习惯如何格式来命名? 见回答1
6. 定义一个变量需要注意什么?
-
java定义变量的格式:数据类型 变量名 = 变量值。
-
说明:
① 变量必须先声明,后使用
② 变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了
③ 同一个作用域内,不可以声明两个同名的变量
7. 强制类型转化可能出现的问题
强制类型转换:自动类型提升运算的逆运算。
需要使用强转符:()
注意点:强制类型转换,可能导致精度损失。
一个例子:
double d1 = 12.9;
//精度损失举例1
int i1 = (int)d1;//截断操作
System.out.println(i1);
8. 根据运算符的功能,我们把运算符分成哪几类?
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
位运算符(相对不重要)
三元运算符
算数运算符 |
---|
赋值运算符 |
---|
符号为“=”,意思是赋值操作,例如int x = 5; 就把5赋值给了x,扩展赋值运算符: +=, -=, *=, /=, %=。这里讲解+=,后面以此类推,例如int i = 0; int sum = 0;
sum += i; 就等同于sum = sum+ i;
比较运算符 |
---|
比较运算符的结果都是boolean型,也就是要么是true,要么是false。
比较运算符“==”不能误写成“=”
逻辑运算符 |
---|
有以下6种:
&—逻辑与
| —逻辑或
!—逻辑非
&& —短路与
|| —短路或
^ —逻辑异
具体例子
三元运算符 |
---|
(条件表达式)?表达式1:表达式2;
若条件表达式为true,运算后的结果是表达式1;
若条件表达式为false,运算后的结果是表达式2;
表达式1和表达式2为同种类型
例子:
public class TernaryOperator {
public static void main(String[] args) {
//获取a,b 中最大数
int a = 2 ;
int b = 3;
int i = (a > b) ? a : b;
System.out.println(i);//3
}
}
三元运算符与if-else的联系与区别:
1)三元运算符可简化if-else语句
2)三元运算符要求必须返回一个结果。
3)if后的代码块可有多个语句
代码题:
因为都有答案所以放2个经典的题。
- 为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
//为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
public class TestExer1 {
public static void main(String[] args) {
int hour = 89;
int day = hour / 24;
hour = hour % 24;
System.out.println("为抵抗洪水,战士连续作战" + day + "天" + hour + "小时");
}
}
- 小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
public class TestExer2 {
public static void main(String[] args) {
int h = 80;
double s = (h - 32) / 1.8;
System.out.println(h + "华氏度,是摄氏度" + Math.round(s));
//Math.round(s),代表s四舍五入。
}
}