java 基础遗漏

运算符:~

~:表示非,o=1,1=>0

 

面向对象:is-a,like-a,has-a

 

Is-a: 顾名思义,是一个。表示继承关系

假设A is-a B,那么B就是A的父类。 
一个类全然包括还有一个类的全部属性及行为。 
比如PC机是计算机,工作站也是计算机,PC机和工作站是两种不同类型的计算机。但都继承了计算机的共同特性。因此在用Java语言实现时,应该将PC机和工作站定义成两种类,均继承计算机类。  

 

Has-a:有一个。表示从属关系

假设A has a B,那么B就是A的组成部分。 
同一种类的对象,通过它们的属性的不同值来差别。
比如一台PC机的操作系统是Windows,还有一台PC机的操作系统是Linux。

Like-a:像一个,表示组合关系

假设A like a B,那么B就是A的接口。 
新类型有老类型的接口,但还包括其它函数,所以不能说它们全然同样。 
比如一台手机能够说是一个微型计算机,可是手机的通讯功能显然不是计算机具备的行为,所以手机继承了计算机的特性,同一时候须要实现通讯功能。而通讯功能须要作为单独接口。而不是计算机的行为。

 

面向对象:动态绑定和静态绑定

一:绑定

        把一个方法与其所在的类/对象 关联起来叫做方法的绑定。绑定分为静态绑定(前期绑定)和动态绑定(后期绑定)。

   

二:静态绑定

        静态绑定(前期绑定)是指:在程序运行前就已经知道方法是属于那个类的,在编译的时候就可以连接到类的中,定位到这个方法。

        在Java中,final、private、static修饰的方法以及构造函数都是静态绑定的,不需程序运行,不需具体的实例对象就可以知道这个方法的具体内容。

三:动态绑定

        动态绑定(后期绑定)是指:在程序运行过程中,根据具体的实例对象才能具体确定是哪个方法。

        动态绑定是多态性得以实现的重要因素,它通过方法表来实现:每个类被加载到虚拟机时,在方法区保存元数据,其中,包括一个叫做 方法表(method table)的东西,表中记录了这个类定义的方法的指针,每个表项指向一个具体的方法代码。如果这个类重写了父类中的某个方法,则对应表项指向新的代码实现处。从父类继承来的方法位于子类定义的方法的前面。

 

面向对象:CLONE()

Java 对象的克隆clone():对象克隆是一种创建对象的精确副本的方法。 Object类的clone()方法用于克隆对象。java.lang.Cloneable接口必须由我们要创建其对象克隆的类实现。如果我们不实现Cloneable接口,clone()方法生成CloneNotSupportedException

语法:

protected Object clone() throws CloneNotSupportedException

实现:

  1. 想被实现的类必须要重写c lone方法

protected Object clone() throws CloneNotSupportedException{

     return super.clone();

}

 

 Java strictfp

strictfp 的意思是FP-strict,也就是说精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运 行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令你满意。而一旦使用了strictfp来声明一个 类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果你想让你的浮点运算更加精确, 而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。

写法:

 

版权声明:本博客为记录本人自学感悟,内容大多从网上学习与整理所得,若侵权请告知!

https://mp.csdn.net/postedit/80365677

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页