常量
1.含义:
程序在执行过程种,其值是固定不发生改变的量
2.种类:
字面值常量:字符串常量: “hello”,用双引号包起来的
字符常量: 'a','A','0',用单引号包含起来的内容,不参与运算,他就是固定的
值
整数常量: 100
小数常量: 3.14 5.125
布尔常量: true/false
空常量: null,应用在"引用数据类型"的默认值
自定义常量: 面向对象那块讲,马上就到.
变量
1.变量的内容:
在程序的执行中,其值不断发生改变的值;
2.变量的三要素:
a.数据类型
b.变量名称
c.初始化值
3.变量的数据类型:分为两大类
a.基本的数据类型:四类八种
整数类型:默认int,没有提及的话,都默认int
byte:字节类型 1个字节 -128~127
short:短整类型 2个字节
int:默认类型 4个字节
long:长整型 8个字节
(注意事项:定义long类型,需要在初始化值后面加一个标记L/l)
浮点类型:默认double
float:单精度 4个字节
(注意事项:需要定义的float,需要在值的后面加标记:F/f)
double:双精度 8个字节
字符类型
char: 2个字节
布尔类型(不会进行类型转换,仅仅只是表示逻辑判断,)
boolean:提供逻辑判断 (true/false)
1个字节
b.引用的数据类型:
数组(基本类型,引用类型),类(具体类,抽象类),接口
int [] arr
String [] args
4.定义变量的注意事项:
a.定义Long类型的变量的时候,为了区分整数默认int这种情况,需要告知jvm;当前这个类型
是long类型,在变量值的后面加上标记(L或者l)
b.定义float类型的,由于浮点类型默认double类型,占8个字节,为了区分,需要在float类型
的变量值的后面加入F/f,标记这个值是一个单精度而非双精度
c.目前来说我们定义“局部变量”
在方法定义中或者方法声明上的变量
先定义,在使用前去赋值,如果没有报错,系统“可能尚未初始化变量”直接给变量初始化
直接给变量初始化
d.java是强类型语言,不能够将一个变量定义多次
e.一行定义一个变量,也可以一行定义多个变量
数据类型转化
1.显示类型转换:(俗称强制转换)
目标数据类型(目前使用基本类型) 变量名称=(目标数据类型)(初始化值);
哥给你举例:byte c= (byte)(a+b);
这玩意有个啥缺陷呢,就是转的时候会丢失精度,不太好,不建议用
2.隐式类型转化:(默认类型提升)(官方都默认了用这个)
byte,short,char三者之间不转换,一旦参与运算,先转换成int类型!
为啥要数据类型转换呢,因为变量进行运算的时候,要保证数据类型一致,驴唇不对马嘴.就没法玩了,还有,boolean不参与运算,这家伙这判断对错,分为两种,一种隐式转换,一种显示转换.
进制
一.进制
1.进制组成规则:
a.二进制:0,1组成,以“0b”
b.八进制:“0~7”组成,以“0”开头
c.十进制:整数默认!
d.十六进制:"0~9,a~f",以"0x"开头表示
2.任意进制转换十进制:
位权展开法
系数*基数的全次幂相加的结果
系数:就是当前这个数据每个位上的数据本身的值
基数:十进制---十进制:基数是10
X进制---十进制:基数是X
二进制---十进制:基数是2
八进制---十进制:基数是8
十六进制--十进制:基数是16
基数的全次幂:从右到左,并且从0开始进行编号
3.十进制到任意进制
将这个十进制除以基数,一直除到商为0,余数反转
二.8421码
1.含义;
BCD码的一种,可以将十进制和二进制之间快速进行转换
2.内容:
一个字节:是8个比特位组成
二进制数据,每个位都是1,都对应一个十进制数据
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
三.有符号位的数据表示法(原,反,补码)
1.内容:计算机底层的数据的计算---通过“补码”计算,数据的组成在计算机中都是“二进制”,
由最高符号位和数值位组成!
最高符号位为0,正数
最高符号位为1,负数
2.原码,反码,补码
正数:原反补都一样
负数:
反码:是在原码基础上,最高符号位不变,数值位按位取反(0变1,1变0)
补码;是在反码基础上,最高符号位不变,在数值位的末尾+1
小结
内容且多,分布去记,一步一步的来,这烂东西还记不住,开玩笑呢.