一·变量
当需要在程序中记录单个数据内容时,则声明一个变量即可,而声明变量的本质就是在内存中会申请一个存储单元,由于该单元的数据内容可以发生改变,因此得名为变量。
二·变量的声明方式
-
数据类型 变量名= 初始值;其中初始值可以省略;
-
-
使用变量前需要初始化
-
变量不能重复声明
三·标识符的命名法则
-
数字,字母,下划线和$等组成,其中数字不能开头
-
不能使用关键字
-
区分大小写
-
长度没有限制,但不宜过长
-
支持中文,但是不推荐使用
四·数据类型分类
-
基本数据类型 :byte ,short, int,long,float,double,boolean,char
-
引用数据类型:数组,类,接口,枚举,标注
五 常用的进制
-
十进制:逢十进一
-
二进制:逢二进一
-
二进制中的最高位(最左边)用于代表符号位,若该位是0则表示非负数,若是1则表示负数
-
八进制和十六进制,都是二进制的简写
进制之间的转换
正十进制转二进制方式
a.除2取余法,使用二进制整数不断除以2取出余数,直到商为0时将余数逆序排序。
如45 ——》0b10 1101
b.拆分法,将十进制整数拆分成若干个二进制权重的和,有该权重下面写1,否则写0
45=》32+8+4+1;
... 128 64 32 16 8 4 2 1
0 0 1 0 1 1 0 1
得出结果为0010 1101
二进制转10进制
如:0010 1101
=> 02^7 +02^6+1*2^5 ...以此类推
3.负十进制转换为二进制:
a.先将十进制的绝对值转换为二进制,然后进行按位取反再加1(源码,补码,反码)
十进制 -45 转为二进制:
绝对值45用 拆分法结果是: 0010 1101 =>按位取反 1101 0010=>再加1,1101 0011
高位溢出1101 0011 + 0010 1101 = 1 0000 0000 (1 高位溢出,舍去)
负二进制转换为十进制方式
1101 0011 先减1,1101 0010,==>按位取反0010 1101==>转为10进制-45
六·单个字节表示的整数范围(重要)
-
单个字节表示八位二进制位,最高位代表符号位,0非负,1负。
-
非负数:0000 0000 ~0111 1111=0~127 =>0~2^7-1
-
负数:1000 0000 ~ 1111 1111 =>先减1 ,1000 0000减1=>0111 1111=>按位取反1000 0000
=>转为10进制 =>128 =>-128 ,1111 1111=>-1 =>-2^7 ~-2^0。
综上所述,范围在-128~127。
七.整数类型
-
java中描述的整数数据类型有:byte,short,int,long,推荐Int
-
byte 在内存空间中占一个字节,表示范围-2^7 ~2^7-1
-
short类型在内存空间中占2个字节,表示范围是-2^15 ~ 2^15-1,-32768~32767
-
int在内存空间占4个字节 -2^31~2^31-1 -2147483648 ~2147483647
-
其中long类型在内存空间中占8个字节,表示范围是:-2^63 ~ 2^63-1
-
java程序中直接写出的整数数据叫做直接量/字面值/常量,默认为Int类型,若希望表达更大的直接量,在直接量的后面加上L。例: long l1 = 2502505006L; 若描述比long类型还大的数据,使用java.math.BigInteger类型。
八·浮点类型
用来描述小数数据类型.float和double。推荐使用double。
float类型在内存空间占4个字节,叫做单精度浮点数,可以表示7位有效数字。
double类型在内存空间中占8个字节,叫做双精度浮点数,可以表示15位有效数字。
小数数据叫做直接量,默认为double类型。
- 若希望表达float类型的直接量,加F/f,float f1 = 3.1415926f;
九·布尔类型
值只有true 和flase
在内存中所占的大小没有明确的规定,可以认为是1个字节
十·字符类型
char类型 在空间中占两个字节,并且没有符号位。表示的范围是0~65535 'q','冰'。
System.out.println("c1 = "+c1); //c1=a
System.out.println("c1对应的编号是"+(int)c1); //97 表示将c1强制转化为Int类型并打印
char c2 =98;
System.out.println(c2);//b
System.out.println((int)c2); //98
要求掌握的ASCII:
'0'-48 'A'-65 'a'-97 空格-32 换行符-10十一 转义字符 \
十二·基本数据类型之间的转换
转换方式分为自动类型转换和强制类型转换。
自动类型是指从小类型到大类型之间的转换。
强制类型转换指从大类型到小类型的转换。
//基本数据类型之间的转换
byte b1 =10;
short s1 =20;
//自动类型转换的实现
s1 = b1; //将b1的值赋给s1,相当于从byte到short类型的转换 从小类型到大类型的转换
//实现强制类型的转换
b1 =(byte)s1;//将s1的值赋值给b,从大到小的转换
s1 = 128;
b1 =(byte)s1; //结果为-128。
// 128的十进制表示为0000 0000 1000 0000 =>byte 占两个字节取低位 1000 0000 =>转10进制 先-1
//结果是0111 111=>去反1000 0000=>128=>-128
浙公网安备 33010602011771号