Java基础第二天
1 . Java数据类型:引用类型和基本数据类型
1) 基本数据类型:8种
byte short int long float double char boolean(熟记)
2) 引用类型很多,一个类名就是一个引用类型
3) byte 8位补码 最大值 0x7f 127 最小值 0x80 -128
short 16位有符号数 0x7fff 32767 0x8000 -32768
int 32位 0x7fffffff 2G-1 2^31-1 21亿 0x80000000 -2G
long 64位 .... 0x7fffffffffffffff
当然 没必要去记它,用多了就熟练了,不用刻意去记
多练。
4)代码示例:
bytea=127;//因为没超过byte的范围所以不会报错。其实底层是把127作为一个
int计算,然后再强制转换为byte的
//byte a1=128;超过了byte的范围,所以报错
bytea2=128-1;//还可以写表达式,只要计算后的结果不超过范围就可以
//byte a3=a-1; 这里为什么报错呢? 有的人会说a=127 a3=127-1没超过范围啊
//在前面几种情况中,表达式里没有变量,java代码编译的时候就能计算出值,就能直接判断,是否超过其范围
//有变量时,在底层 byte变量和short变量都会转化为
int类型来进行运算 a-1这个表达式的值是int类型了,所以无法传给byte类型
//short就不说了 很少用
//float f=1.1;//在java里 小数默认为double类型的,所以无法赋值给float类型的
floatf1=1.1f;//在小数后面加个f,说明这个小数是float类型的,相当于强制转换
floatf2=(float)1.1;//和上面一样的
//char
ch="a";//char里面只能存放一个字符,不能放字符串,而且这个字符必须存在于Unicode编码中
//换句话说char是存放
Unicode编码的字符
//记得有个问题是这样的,char里面能不能存放中文
//能,因为
Unicode中对常用的中文进行了编码
//但是对于一些比较少见的中文 就不能存储了。
//在java中""代表的是字符串,''代表的是一个字符
charch='你';
//boolean 只能有2个值 true false
booleanflag=true;//boolean flag=false;变量在取名的时候最好有意义,比如isMan,代表是不是男人,true就是男人,false就是女人)
long l=0xf80000000L;
intc = (int)l;//负数
//为什么c是负数呢
// 1111 1000 0000 0000 0000 0000 0000 0000 0000
//因为是long类型 有8个字节 就是64位 所以前面补0
// 0000 0000 0000 0000 0000 0000 0000 1111 1000 0000 0000 0000 0000 0000 0000 0000
//然后强制转化为
int类型 int 4个字节 就是32位 取得前面32位 得
//1000 0000 0000 0000 0000 0000 0000 0000
//因为
int第一位是符号位,所以c为负数
floatpi = (float)3.1415926535;//损失精度
//float 最多保留7位小数,所以输出到6为止,最后一位的后面一位会四舍五入
//float的精度不高,所以要保存高精度的数据 最好用double
//进制转换
//10进制转化为2进制
String str1=Integer.toBinaryString(17);
//转化后得到的是一个字符串
//10进制转化为16进制
String str2=Integer.toHexString(248);
//有木有人问2进制怎么转化为10进制啊,16进制转化为10进制啊
intd=Integer.valueOf("0101", 2);
intd2=Integer.valueOf("ff",16);
5)随堂练习:Long.MAX_VALUE+Long.MAX_VALUE+2为什么?
先自己想下,在运行代码,看跟自己想的是不是一样。
感言:终于有当上老师的时候了,呵呵,发现当老师挺辛苦的,首先自己要把这些问题理解透彻,然后通过自己的语言表达,同时还要考虑初学者是否能听懂,如果他们不懂,我该举哪些例子呢?
是的,当老师是很辛苦。
但是,我发现,我很快乐,我很充实,我希望自己的努力没有白费,就算能帮到一个人,我也很高兴,真的。
Corejava连载第二天,加油!