【连载】corejava 第二天_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2759 | 回复: 0   主题: 【连载】corejava 第二天        下一篇 
java_along
注册用户
等级:上尉
经验:771
发帖:36
精华:0
注册:2014-2-17
状态:离线
发送短消息息给java_along 加好友    发送短消息息给java_along 发消息
发表于: IP:您无权察看 2014-7-31 21:10:38 | [全部帖] [楼主帖] 楼主

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连载第二天,加油!




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论