【Java编程的逻辑】读书笔记

谢谢作者马俊昌  【豆瓣阅读】

前言:

    自己的读书笔记,只是个笔记还有一种态度

     碎碎念:近期的生活经历告诉我:不要把消极的一面示人,那样你只会成为一个小丑,这个世界上能帮你的只有你自己;另外事情没有想象当中的那么坏,退一步、何苦逼自己,生活本就如此,不示人、不示世,学习!

 

1、多个重名函数时,首先按参数类型匹配,然后看变量的动态类型,进行动态绑定

2、一个父类的变量能不能转换为一个子类的变量,取决于这个父类变量的动态类型(引用的对象类型)是不是这个子类或子类的子类

3、protected修饰符可被子类访问,同包下的其他类访问

4、子类对象属于父类,必须支持父类all对外的行为(is-a)降低可见性=no

5、动态绑定:据对象实际类型查找要执行的方法,子类找不到 看父类:虚方法表:

    类加载时为每个对象创建一个表、记录类对象all动态绑定的方法(含父类方法)及地址,子类重写了父类方法后只保留子类的

6、变量的访问是静态绑定

7、继承破坏封装性:对子类而言,通过继承实现无安全保障(父类修改内部实现,它的功能可能被破坏)对基类而言,让子类继承和重写方法,可能丢失修改内部实现的自由

8、抽象类和接口配合关系:接口声明能力,抽象类提供默认实现,一个接口常对应一个抽象类;

   抽象类可定义实例变量,java8中接口有一个静态、默认方法

异常:6

1、未受检异常:程序逻辑错误,编程时应该检查以避免,程序员应该检查代码的bug而不是想方法处理这种异常

2、受检异常:必须检查的异常,程序本身没有问题,由于I/O 网络 数据库 其他不可预测的错误导致异常

3、异常都应该在合适的地方一恰当的方式进行处理(说的真好)

>>>    :     无符号右移,忽略符号位,空位都以0补齐

N >>> 1 当N为正整数时,也表示对2整除;如:(2>>>1=1)
N >>> 1 当N为负数时,则进行 无符号右移 

>>>(按位右移不足补0),表示无符号右移!
   右移表达式的位,不保留符号
result = expression1 >>> expression2
参数
result任何变量;expression1任何表达式;expression2任何表达式

说明
>>> 运算符把 expression1 的各个位向右移 expression2 指定的位数。右移后左边空出的位用零来填充。移出右边的位被丢弃。例如: 

var temp
temp = -14 >>> 2变量 temp 的值为 -14 (即二进制的 11111111 11111111 11111111 11110010),向右移两位后等于 1073741820 (即二进制的 00111111 11111111 11111111 11111100)。

 

目前看了前8章,比较的基础的部分,推荐路过的想学java或补基础的路人看一哈

 

你可能感兴趣的:(java基础)