第一单元数据类型和运算符学习指导书
一:学习目标
知识点 |
知识点重要性 |
掌握程度 |
知识点关联 |
|
极高 |
熟练 |
学习JAVA语言的基本语法知识是进行编程的第一步。为了以后的编程打下良好的基础 |
运算符 |
极高 |
熟练 |
运算符为编程语言语法知识,为编写程序提供语言基础 |
二:重难点知识点
1、重难点1:基本数据类型
学习方法:
1、 掌握理解以下各数据类型的表示范围、作用。
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值: -128
最大值: 127
作用:存储字节类型的数据
基本类型:short 二进制位数:16
包装类:java.lang.Byte
最小值: -32768
最大值:
32767
作用:存储较小的整数
基本类型:int 二进制位数:32
包装类:java.lang.Short
最小值:-2147483648
最大值:2147483647
作用:存储较大的整数
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:-9223372036854775808
最大值:9223372036854775807
作用:存储更大的整数
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:1.4E-45
最大值:3.4028235E38
作用:存储小数
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:4.9E-324
最大值:1.7976931348623157E308
作用:存储较大范围的小数
基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:0
最大值:65535
作用:存储单个字符
2、 基本数据类型变量的初始值
int char byte short long 都为 0
float double 为 0.0
boolean 为false
3、 基本数据类型在使用过程中的常见问题:
boolean类型不能强制类型转换成 int, char, byte, short, long, float, double类型
long类型到int转换时,会截取部分数据
long a = 922337203685477580L;
int b = (int)a;
System.out.println(b);
结果:-1
long数据范围比int类型要大, 导致int类型无法容纳如此大的数。最终为-1
char 类型转换int类型时,结果值为该字符在ASCII中所对应的数值,简称ASCII码
char a = 'a';
int b = a;
System.out.println(b);
结果:97。 a在ASCII码中的值为97,故结果为97
byte类型在内存中为8位二进制数, 可表示为-128 – 127。 故赋值时不能超出此范围
2 、重难点2:常量和变量
(1)常量
java常量很简单就是一个固定值,比如说1,2,3,4都属于常量就是一个固定值。
声明常量的语法为:
final 数据类型 常量名称[=值]
常量名称通常使用大写字母,例如PI,YEAR等,但并没有硬性要求,仅仅是一个习惯而已
(2)变量
变量也是一种标识符,其命名规则如下:
1. 变量名可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成;
2. 变量名不能以数字开头;
3. 变量名不能是Java中的保留关键字
常量定义的基本注意事项:
一是常量在定义的时候,就需要对常量进行初始化。
二是final关键字使用的范围。这个final关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
三是需要注意常量的命名规则。
常见错误;
(1) 变量未赋值先使用
public class Error{
public static void main (String [] args){
String title; // 声明变量title存储课程名
System.out.println(title); // 从控制台输出变量的值
}
}
(2) 使用非法的变量名
public class Error2{
public static void main (String [] args){
int %hour = 18; // 声明变量hour存储学时
System.out.println(%hour); // 从控制台输出变量的值
}
}
(3) 变量不能重名
public class Error3{
public static void main (String [] args){
String name=” 张三”; // 声明变量name存储张三
String name=” 李四”; // 声明变量name存储李四
}
}
3 、重难点3:运算符
(1) 算术运算符:
单目:+(取正)-(取负) ++(自增1) - -(自减1)
双目:+ - * / %(取余)
三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
(2) 关系运算:
等于符号:==,不等于符号: != ,大于符号:>, 小于符号:<,大于等于符号: >= ,小于等于符号: <= 。
(3) 位运算符 逻辑运算符:
位运算符 与(&)、非(~)、或(|)、异或(^)&:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000
| :当两边操作数的位有一边为1时,结果为0,否则为1。如1100|1010=1110
~:0变1,1变0
^:两边的位不同时,结果为1,否则为0.如1100^1010=0110
逻辑运算符
与(&&)、非(!)、或(||)
(4) 赋值运算符
= 、+=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=
常用运算符举例:
- 根据天数(46)计算周数和剩余的天数
public class CalcDays {
public static void main(String[] args) {
int days = 46; // 天数
int week = days / 7; // 星期
int leftDay = days % 7;// 剩余的天数
System.out.println(days + "天等于" + week + "周零" + leftDay + "天");
}
}
- 已知圆的半径radius= 1.5,求其面积
public class Area {
public static void main(String[] args) {
double pi = 3.14159; // 圆周率
double radius = 1.5; // 半径
double area = pi * radius * radius; // 计算圆面积
System.out.println("圆的半径是: " + radius);
System.out.println("圆的面积是: " + area);
}
}
共性问题
1、各种数据类型之间的转换,如何转换?
答:使用强制类型转换,不报编译错误为准。
2、常量在何时使用?
答:当程序中有些变量的值永远都不需要改变的时候,可以换成常量。
在代码中用双引号括起来的字符串,可以使用常量。
3、如何进行数据类型转换?
答:一种是自动数据类型转换,另一种是强制类型转换。自动数据类型转换首先两种类型要兼容:数值类型(整形和浮点型)互相兼容;目标类型大于源类型:double型可以存放int型数据,因为double型变量分配的空间宽度足够存储int型变量。因此,我们也把int型变量转换成double型变量形象地称为“放大转型”。强制类型转换是在现有类型定义前加上要强制转换类型,并且不报编译错误为准。