Java基础

一.   权限

  1. public : 对任何人都是可用的。
  2. private : 表示除类型的创建者和类型的内部方法之外的任何人都不能访问。
  3. protected :与private作用相当,差别在于:继承的类可以访问protected成员,但 是不能访问private成员。

二.基类与导出类产生差异的方法

1. 直接在导出类中添加新的方法。

2. 改变现有基类的方法行为,即覆盖。

三.基类与导出类的关系

1. “is-a”关系,继承只覆盖基类的方法,而不去添加任何新的方法。

2. “is-like-a”关系,导出类添加了新的接口,即扩展了基类的接口。

四.前期绑定与后期绑定

    1. 前期绑定:即编译器将产生对一个具体函数名字的调用,而运行时将这个调用解析到将要被执行的代码的绝对地址。非面向对象编程用的就是前期绑定。

    2. 后期绑定:OOP中,直到运行时才能确定执行代码。为了执行后期绑定,Java使用一小段特殊的代码来替代绝对地址调用。这段代码使用在对象存储的信息来计算方法的地址。(C++采用virtual关键字来实现具备后期绑定属性所带来的灵活性)

五. 数据存储

名称 位置 描述
寄存器 处理器内部 速度快、数量有限,程序员不能直接控制
堆栈 通用RAM(随机访问) 通过堆栈指针进行访问堆栈指针向下移动分配内存,向上释放必须确定堆栈内所有数据的生命周期
通用存储池(位于RAM区) 存放所有Java对象不需要知道数据的存命周期,但需代价
常量存储 程序代码内部 数据永远不会改变
非RAM存储 例如硬盘 不接受程序的任何控制基本例子:流对象和持久化对象数据库存储的数据

六、数据类型

基本类型 大小(bit) 默认值 包装器类型
boolean   false Boolean
char 16 ’u0000’(null) Char
byte 8 (byte)0 Byte
short 16 (short)0 Short
int 32 0 Integer
long 64 0L Long
float 32 0.0f Float
double 64 0.0d Double
void     Void
    C++没有此功能  
高精度数字(非基本类型)      
BigInteger 支持任意精度的整数    
BigDecimal 支持任何精度的定点数    

    注:尽管Java数据有默认值,确保了基本类型的数据得到初始化,防止产生数据错误,但这些默认值对我们的程序可能是不正确的,甚至不合法,因此我们在调用数据之前最好明确地初始化。

七. C++与Java安全监测与内存泄露

语言 安全检测 内存泄露
C 数组范围检测 Free()回收malloc()分配的内存
C++ 数组范围检测 所创建的对象在超出作用域之前进行手工delete,否则会造成内存泄露
Java 不需要程序员进行数组范围检测,这些工作由系统检测 所有对象都不需要手工delete,有系统机制自动回收内存 
总结 数组使用之前是否有引用(不能为null)  

八.C、C++支持的代码格式,Java不支持

       {

            Int x = 2;

            {

                Int q = 96;

            }

       }

    注:因此,不管在编写C、C++代码,还是编写Java代码,都不要存在这种格式的代码。

九.Static方法(类方法)和static域(类数据)

    1. 类数据:与一般数据区分开,程序分配单一存储空间,不需要考虑创建了多少对象。

    2. 类方法:没有创建对象,也能够调用这个方法。

    3. 类数据的访问:1)通过一个对象去定位它;2)通过类名定位

    4. 类方法的调用:1)通过一个对象去访问;2)通过类名访问

 

 

 

 

 

 

 

 

原文地址:https://www.cnblogs.com/xuemaxiongfeng/p/3175039.html