1) 进制转换
整数进制转换:
10进制转换成其他的都是除以要转换成的那个数,也就是说转换成二进制的就除以2,转换成八进制的就除以8,转换成十六进制的就除以16,然后倒取余数。具体例题如下
10—2:把20转换成二进制
20/2=10……….余数为0
10/2=5………..余数为0
5/2=2…………余数为1
2/2=1…………余数为0
1/2=0…………余数为1
则20换成二进制后是10100
10—8:把20转换成八进制
20/8=2………..余数为4
2/8=0…………余数为2
则20转换成八进制后是24
10—16:把20转换成十六进制
20/16=1……….余数为4
1/16=0………..余数为1
则20转换成十六进制后是14
2—10:把二进制数1101转换成十进制
1101=1*2的0次方+0*2的1次方+1*2的2次方+1*2的3次方=13
则1101变成十进制后是13
8—10:把八进制数1340转换成十进制
1340=0*8的0次方+4*8的1次方+3*8的2次方+1*8的3次方=736
则1340变成十进制后是736
16—10:把十六进制数3A4F转换成十进制
3A4F=15*16的0次方+4*16的1次方+10*16的2次方+3*16的3次方=14927
(十六进制中的A是10,F是15)
二进制与八进制的相互转换:
八进制数 0 1 2 3 4 5 6 7
二进制数 000 001 010 011 100 101 110 111
二进制与十六进制的相互转换:
十六进制 0 1 2 3 4 5 6 7 B
二进制数 0000 0001 0010 0011 0100 0101 0110 0111 1011
十进制小数进制转换:
用的通俗易懂的说法:用这个小数不断乘2,直到这个小数变为整数后,然后这个整数就转为二进制了,接着,刚才乘了几次2,你就把这个二进制的小数点像坐移几位即可
例:0.75
0.75X2=1.5
1.5X2=3
得到整数3,现在把3转为二进制,如下:
3(10)=》11(2)
得到二进制数:11
因为刚才乘了2次“2”,所以小数像左易懂2位,最终结果:0.11
有些小数乘2是永得不到整数的,那就看他要求的精度,假如要求保留3位小数,则乘3次“2”即可,后面的小数可以无视,直接拿直面的整数部分转为二进制,再向左移3位.
如此类推….
2) java基础数据类型
实数:double、float
整数:byte、short、int、long
字符:char
布尔值:boolean
int:int为整数类型,在存储的时候,用4个字节存储,范围为-2,147,483,648到2,147,483,647,在变量初始化的时候,int类型的默认值为0。
short:short也属于整数类型,在存储的时候,用2个字节存储,范围为-32,768到32,767,在变量初始化的时候,short类型的默认值为0,一般情况下,因为Java本身转型的原因,可以直接写为0。
long:long也属于整数类型,在存储的时候,用8个字节存储,范围为-9,223,372,036,854,775,808到9,223,372,036, 854,775,807,在变量初始化的时候,long类型的默认值为0L或0l,也可直接写为0。
byte:byte同样属于整数类型,在存储的时候,用1个字节来存储,范围为-128到127,在变量初始化的时候,byte类型的默认值也为0。
float:float属于实数类型,在存储的时候,用4个字节来存储,范围为32位IEEEE 754单精度范围,在变量初始化的时候,float的默认值为0.0f或0.0F,在初始化的时候可以写0.0。
double:double同样属于实数类型,在存储的时候,用8个字节来存储,范围为64位IEEE 754双精度范围,在变量初始化的时候,double的默认值为0.0。
char:char属于字符类型,在存储的时候用2个字节来存储,因为Java本身的字符集不是用ASCII码来进行存储,是使用的16位Unicode字符集,它的字符范围即是Unicode的字符范围,在变量初始化的时候,char类型的默认值为’u0000’。
boolean:boolean属于布尔类型,在存储的时候不使用字节,仅仅使用1位来存储,范围仅仅为0和1,其字面量为true和false,而boolean变量在初始化的时候变量的默认值为false。
java基础数据类型
3) 类、接口、抽象类(需要继续深入推敲和理解)
大家也许都知道做工艺器或是工厂里做生产某些产品的模具模具。如做一个金属的五角星,只要将钢水罐到五角星的模具模具里就可以很容易地制做五角星。
我们也可以将类比喻成做五角星的模具。 而生产出的一个个五角星就是一个个对象。 为了建立不同的对象(有的是金属的、有的塑料的,等等),可通过向模具里灌入不同的液态材料就可以制做。这也相当于向类的构造方法中传入不同的参数(相当于不同的液态材料)。
还有就是接口,如果说类是对象的抽象,那么接口就是类的抽象。
我们也可以将接口看成是制做这个五角星模具的规格列表(相当于接口中的抽象方法)。也就是说,只有这个模具(类)符合(实现)相应的规格(接口),才会成为制做五角星的模具模具。
哈哈,当然,这个使用模具生成五角星及其他产品的工厂可以看成是对象工厂。
也就是说,类和接口都不是实际的产品,都不能拿来用,类相当于模具(没人会拿模具模具在商店里卖吧,估计只有对象工厂会买),而接口只相当于制做模具的规格列表,如尺寸、角度等。而这些规格列表的内容需要在具体类中实现才可能成为具体的模具,如长度和宽度,如果在类中实现为长度等于宽度,那么这个类就成为一个成方形的模具,如果长度不等于宽度,就是一个长方形的模具。然后再实例化这个模具(类),就生成出一个个正方形或长方形对象。
在面向对象理论中还有一个抽象类,这个抽象类其实就相当于一个半成品的模具。如只实现在长度和宽度(相当于在抽象类中已实现的方法),并没有实现深度(这个深度相当于抽象类中的抽象方法,这个抽象方法需要在抽象类的子类中实现)。所以这个模具就是半成品了。因此,是无法直接拿半成品的模具(抽象类)去生产(实例化)产品(对象)的。