第二章数据类型和运算符

一:学习目标

 

知识点

知识点重要性

掌握程度

知识点关联

1.       基本数据类型

2.       常量和变量

极高

熟练

学习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{

                   publicstatic void main (String [] args){

                            Stringtitle; //声明变量title存储课程名

                            System.out.println(title);//从控制台输出变量的值

        }

}

(2)    使用非法的变量名

public class Error2{

                   publicstatic void main (String [] args){

                            int%hour = 18; //声明变量hour存储学时

                            System.out.println(%hour);//从控制台输出变量的值

        }

}

(3)    变量不能重名

public class Error3{

                   publicstatic void main (String [] args){

                            Stringname=”张三”; // 声明变量name存储张三

                            Stringname=”李四”; // 声明变量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)    赋值运算符

= 、+=、 -=、 *=、 /=、 %=、&=、 ^=、 |=、 <<=、>>=

       常用运算符举例:

1.       46)计算周数和剩余的天数

public class CalcDays {

 

         publicstatic void main(String[] args) {

                   intdays = 46; //天数

                   intweek = days / 7; //星期

                   intleftDay = days % 7;//剩余的天数

 

                   System.out.println(days+ "天等于" + week + "周零" + leftDay + "天");

         }

}

2.       radius= 1.5,求其面积

public class Area {

 

         publicstatic void main(String[] args) {

                   doublepi = 3.14159; //圆周率

                   doubleradius = 1.5; //半径

                   doublearea = pi * radius * radius; //计算圆面积

                   System.out.println("圆的半径是: " + radius);

                   System.out.println("圆的面积是: " + area);

         }

}

 

共性问题


1、各种数据类型之间的转换,如何转换?

答:使用强制类型转换,不报编译错误为准。

2、常量在何时使用?

答:当程序中有些变量的值永远都不需要改变的时候,可以换成常量。

在代码中用双引号括起来的字符串,可以使用常量。

3、如何进行数据类型转换?

   答:一种是自动数据类型转换,另一种是强制类型转换。自动数据类型转换首先两种类型要兼容:数值类型(整形和浮点型)互相兼容;目标类型大于源类型:double型可以存放int型数据,因为double型变量分配的空间宽度足够存储int型变量。因此,我们也把int型变量转换成double型变量形象地称为“放大转型”。强制类型转换是在现有类型定义前加上要强制转换类型,并且不报编译错误为准。


辅导视频

见辅导视频文件中的视频文件,内容为myeclipse调试步骤


作业内容:

请用代码实现以下需求


需求1:已知圆的半径为5,求出圆的面积与周长,并在控制台打印。

    使用变量接收半径,面积,周长,使用常量定义派

 

需求2:将ASCII码中所有的字符定义成变量,再转换成int类型,并在控制台打印


需求3:小明要到美国旅游,可是那里的温度是以华氏温度为单位记录的。它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。编写程序达成小明的心愿。

   摄氏度与华氏度的转换公式为:摄氏度= 5 / 9.0 * (华氏度 - 32)

 


补充阅读

暂无


三:补充说明

本章要掌握变量的概念,会使用各种常用数据类型,会使用各种运算符,会进行各种数据类型转换。其中,数据类型是否学好,直接关系到后期的学习。数据类型的重难点在于记忆每种数据类型的范围,及各种数据类型之间的转换。