一、关键字

1.概述:被java语言赋予特定含义的单词

2.特点:组成关键字的字母全部为小写

二、标识符

1.概述:给类、接口、方法、变量起名字时使用的字符序列

2.规则:只能使用英文大小写字母、数字、下划线和美元符号;不能是以数字开头;不能使用关键字;区分大小写

三、常量

1.概述:在程序执行过程中其值不可改变的数据

 

2.正数的原码、反码、补码都相同;

 

  负数的原码最高位是符号位,为1;反码的符号位不变,数值位取反;补码是在反码的基础上加1

 

  计算机中数据的运算都是补码进行的。

 

四、变量

 

1.概述:其实就是内存中的一个存储空间,用于存储常量数据。

 

2.作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。

 

3.特点:变量空间可以重复使用。

五、数据类型

1.基本数据类型:byte、short、int、long、float、double、char、boolean 

A:整数       占用字节数
    byte              1
    short             2

    int                 4
    long              8
B:浮点数
    float             4
    double         8
C:字符
    char             2
D:布尔
    boolean       1

注意:
整数默认是int类型,浮点数默认是double。

长整数要加L或者l。
单精度的浮点数要加F或者f。

2.引用数据类型: 数组、类、接口。

3.数据类型转换

 

(1)boolean类型不参与转换
(2)自动转换
A:等级从小到大
B:byte,short,char -- int -- long -- float -- double
C:byte,short,char之间不相互转换,直接转成int类型参与运算。
(3)强制转换
A:等级从大到小
B:可能会有精度的损失,一般不建议这样使用。
C:格式:
目标数据类型 变量名 = (目标数据类型) (被转换的数据);

(4)关于强制转换的思考:

题目1:

byte b1 = 3, byte b2 = 4, b3,b4;

b3 = b1 + b2;//注意byte类型变量参与运算时,转成int类型,所以需要强制转换

b4 = 3 + 4;//常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错,所以正确

结论:因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
                常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。

题目2:

下面的操作结果是什么呢?
byte b = (byte)130;//byte的范围是-127到128,所以需要强制转换。

System.out.println(b);

A:获取130这个数据的二进制。

00000000 00000000 00000000 10000010

这是130的原码,也是反码,还是补码。

B:做截取操作,截成byte类型的了。

10000010

这个结果是补码。

C:1*21-1*28 = -126

 

题目三:

下面输出什么结果?

 

//直接输出一个字符

 

System.out.println('a'); //a

//输出一个字符和一个整数做加法

 

System.out.println('a'+1); //98

 

 

字符参与运算是查找ASCII里面的值

 

 'a'                    97

 

 'A'                    65

 

 '0'                    48

题目四:

下面输出什么结果?

 

System.out.println("hello"+'a'+1); //helloa1,这里的'+'不是加法运算,而是字符串连接符

 

System.out.println('a'+1+"hello"); //98hello

 

               

 

System.out.println("5+5="+5+5); //5+5=55,这里的'+'不是加法运算,而是字符串连接符

 

System.out.println(5+5+"=5+5"); //10=5+5