一·变量

当需要在程序中记录单个数据内容时,则声明一个变量即可,而声明变量的本质就是在内存中会申请一个存储单元,由于该单元的数据内容可以发生改变,因此得名为变量。

由于存放的数据内容大小不一样,导致所需要的存储单元的大小不一样,在java语言中使用数据类型加以描述

二·变量的声明方式

  1. 数据类型 变量名= 初始值;其中初始值可以省略;

  2. “+”用于将两边的内容拼接,拼接起来还是字符串

  3. 使用变量前需要初始化

  4. 变量不能重复声明

三·标识符的命名法则

  1. 数字,字母,下划线和$等组成,其中数字不能开头

  2. 不能使用关键字

  3. 区分大小写

  4. 长度没有限制,但不宜过长

  5. 支持中文,但是不推荐使用

四·数据类型分类

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

  2. 引用数据类型:数组,类,接口,枚举,标注

五 常用的进制

  1. 十进制:逢十进一

  2. 二进制:逢二进一

  3. 二进制中的最高位(最左边)用于代表符号位,若该位是0则表示非负数,若是1则表示负数

  4. 八进制和十六进制,都是二进制的简写

进制之间的转换

  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

  1. 二进制转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 高位溢出,舍去)

  1. 负二进制转换为十进制方式

1101 0011 先减1,1101 0010,==>按位取反0010 1101==>转为10进制-45

 

六·单个字节表示的整数范围(重要)

  1. 单个字节表示八位二进制位,最高位代表符号位,0非负,1负。

  2. 非负数:0000 0000 ~0111 1111=0~127 =>0~2^7-1

  3. 负数:1000 0000 ~ 1111 1111 =>先减1 ,1000 0000减1=>0111 1111=>按位取反1000 0000

    =>转为10进制 =>128 =>-128 ,1111 1111=>-1 =>-2^7 ~-2^0。

    综上所述,范围在-128~127。

七.整数类型

  1. java中描述的整数数据类型有:byte,short,int,long,推荐Int

  2. byte 在内存空间中占一个字节,表示范围-2^7 ~2^7-1

  3. short类型在内存空间中占2个字节,表示范围是-2^15 ~ 2^15-1,-32768~32767

  4. int在内存空间占4个字节 -2^31~2^31-1 -2147483648 ~2147483647

  5. 其中long类型在内存空间中占8个字节,表示范围是:-2^63 ~ 2^63-1

  6. java程序中直接写出的整数数据叫做直接量/字面值/常量,默认为Int类型,若希望表达更大的直接量,在直接量的后面加上L。例: long l1 = 2502505006L; 若描述比long类型还大的数据,使用java.math.BigInteger类型。

八·浮点类型

  1. 用来描述小数数据类型.float和double。推荐使用double。

  2. float类型在内存空间占4个字节,叫做单精度浮点数,可以表示7位有效数字。

  3. double类型在内存空间中占8个字节,叫做双精度浮点数,可以表示15位有效数字。

  4. 小数数据叫做直接量,默认为double类型。

  5. 若希望表达float类型的直接量,加F/f,float f1 = 3.1415926f;

九·布尔类型

  1. 值只有true 和flase

  2. 在内存中所占的大小没有明确的规定,可以认为是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

十一 转义字符 \

十二·基本数据类型之间的转换

  1. 转换方式分为自动类型转换和强制类型转换。

  2. 自动类型是指从小类型到大类型之间的转换。

  3. 强制类型转换指从大类型到小类型的转换。

//基本数据类型之间的转换
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
posted on 2020-09-16 21:27  我说我是大佬你信么  阅读(164)  评论(0)    收藏  举报