------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
一、常量的类型
1.整数常量,就是所有的整数。比如1,222,33。
2.小数常量,就是所有的小数,比如-22.2,33.33
3.布尔型常量,这只包含2个TRUE,false
4.字符型常量,这个就是:'A','B',‘你’。字符型常量可以是汉字的。
5.字符串型常量,"yamade","burnning".
6.null型常量,这个在对象中很常用。
二、三种进制
1.二进制,很好理解逢二进一。
(一)、简单的二进制加法运算
0000 0101
+ 0010 1101
---------------------------
0011 0010
(二)、二进制的负数,二进制的负数是高位全部用1来补齐,比如-110
我们知道110的二进制是
0000 0000 0000 0000 0000 0000 0110 1110
那么-110就是110取反在+1
110取反就等于
1111 1111 1111 1111 1111 1111 1001 0001
+ 0000 0000 0000 0000 0000 0000 0000 0001
----------------------------------
1111 1111 1111 1111 1111 1111 1001 0010
我们用地代码来验证下是否正确。
class BinaryDemo{
public static void main(String[] args){
{
System.out.println(Integer.toBinaryString(110));
System.out.println(Integer.toBinaryString(-110));
}
}
}
可以看到我们计算是正确的。
(三)、二进制转十进制、八进制、十六进制
二进制转十进制是比较简单的。0101=2(0次幂)+2(2次幂)=5。在复杂点的1111 1111=2(0次幂)+....+2(7次幂)=255
class BinaryDemo{
public static void main(String[] args){
{
System.out.println(Integer.toBinaryString(5));
System.out.println(Integer.toBinaryString(255));
}
}
}
可以看到是正确的。
二进制转十六进制和八进制分别是取四位,三位进行转换。比如:1101转换十六进制=2(0)+2(2)+2(3)=1+4+8=13=0XD, 转换八进制,取3位=15.现在验证下:
class BinaryDemo{
public static void main(String[] args){
{
int i=015;
int j=0xD;
System.out.println(i);
System.out.println(j);
}
}
}
也是正确的
(二)、八进制、十六进制。按照名字来理解就是8进1,16进1。需要注意的是16进制0-9是正常表示的。10,11,12,13,14,15是用字母A-F来表示的。
他们之间的转换,我现在的理解都是通过二进制作为中间件来转换,然后再去其他进制。万能的二进制。
三、变量的学习
变量基本数据类型一共有八种分别是:byte,short,int,long,float,double,bool,char。下这里需要注意的整数型变量有byte,short,int,long,浮点型主要是floa,double
。这里需要记住这些变量的范围和在何处使用。
byte、short、int、long都是表示整数的,只不过他们的取值范围不一样。
byte(字节类型) 一个byte 8位,取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)默认是0
short(短整型) 一个short 16位,取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)默认是0
int(整型) 一个int 32位,取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)默认是0
long(长整型) 一个long 64位,取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)默认是0L或0l推荐用大写;
char型变量,由16位组成。所以他可以是用(65535)个不同的字符可以用。这里需要注意char和整形变量之间经常是互转的。
float浮点型变量,它是由于32位组成
double浮点型变量,它是由64位组成的,系统默认浮点型变量是double。
1、当整数类型的数据使用字面量赋值的时候,默认值为int类型,就是直接使用0或者其他数字的时候,值的类型为int类型,所以当使用 long a = 0这种赋值方式的时候,JVM内部存在数据转换。
2、浮点类型的数据使用字面量赋值的时候,默认值为double类型,就是当字面两出现的时候,JVM会使用double类型的数据类型。
class VarDemo{
public static void main(String[] args){
{
byte a=127;
int b=a;
float c=3.141f;
double e=c;
char f='A';
System.out.println(a);
System.out.println(b=a+1);
System.out.println(c);
System.out.println(c+e);
System.out.println((char)(f+(long)e+(short)c));
}
}
}
从中我们可以看到byte的赋值范围最小,float和double的变量相加精度会增加。然后就是char型和整数型的自动转化,这里我么就要学会估算数据大概的范围是,我认为这很有必要,未来的软件开发前期对于软件的规划肯定会有相关的考虑,如果前期做的比较好,可能后期会节省大量的修改维护功夫
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------