您的位置:首页 > 编程语言 > Java开发

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

2016-11-06 20:36 267 查看
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)

(这种问题…我真是…我一定是大一的时候上课睡觉去了……手动再见!)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: