Java学习(让我记录下这有趣的故事:2016/10/31)

2016/10/31


距离上次的博客记录过去快半个月了,因为我更习惯在本子上写笔记吧,而且是每章学习完了才写笔记总结,还有一些编译运行时的小问题(其实也是暴露出了当初学C语言基础不扎实的问题)被我写进了word文档里。在此,我转写到这里。


《疯狂Java讲义》第一、二章学习笔记:

▲ 面向对象软件开发步骤:OOA → OOD → OOP

▲ 垃圾回收机制的精确性体现在:1.标记活着的对象;2.定位对象之间的引用关系

▲ 单继承:一个直接父类;多继承:一个类有多个直接父类(Java不支持多继承!)

▲ 基于对象:封装;面向对象:封装、继承、多态

▲ UML(统一建模语言):用例图、类图、组件图、部署图、顺序图、活动图、状态机图

▲ 对象:具有唯一性,用标识来引用(无标识则收回),不允许直接访问对象,而是用引用来操作对象


遇到的问题:

public class asdf

{

       publicstatic void main(String[] args)

       {

              byte a = (byte)0b11101001;

              byte b = 0b11101001;

              int c = 0b11101001;

             

              System.out.println(a);

              //System.out.println(b);

              System.out.println(c);

       }

}

标红部分提示错误:不兼容的类型:从int转换到byte可能会有损失

经过尝试,发现(标红错误,标绿则通过):

byte a = 0b11101001;

byte b = 0b01101001;

byte b = (byte)0b11101001;

short c =0b1000000000000101;

short c =0b0000000000000101;

short c = (short)0b1000000000000101;

书上是这么写的:一个Java整数常量默认就是int类型,如果直接把一个在byte或者short类型范围之内的比较小的数给byte或者short变量,系统会直接把这个数当byte或者short处理。

但是根据实践发现,一个byte或者short量,你给它赋值的时候,不能是负数,因为Java里面都是有符号数(嗯…我记得师兄是这么说的…错了打他…虽然我觉得没错),首位不能为1。因为如果不为1,是0,那么是一个正数,那么把这个数保存的时候,它会直接补0;但是如果是负数,它就会提醒错误,所以要先强制转换一下。

byte范围:-128(0b1000_0000)~127(0b0111_1111)


(这种问题…我真是…我一定是大一的时候上课睡觉去了……手动再见!)




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值