从C++到Java

在C++语言基础上向Java转变的总结

用引用操纵对象

Java使用引用来操作对象,引用即对象的“名字”,对象即数据“实体”,Java中使用“名字”来访问和控制“实体”,就像用遥控控制电视一样,两者均可以独立存在

1
String s; // 创建了一个s引用
2
s = new String("Hello"); // 给引用关联了一个实体

创建对象实体

1
new Object(); // 创建一个object对象

new 是一个关键字,用于在“堆区”一个对象

堆及其他存储区

寄存器

  • 寄存器:内置于处理器内部,效率最高,不受直接控制

内存

RAM(随机访问存储器)

  • 堆:堆是一个动态存储区,用于存放所有的Java对象(new关键字创建的对象),在程序运行时分配内存(需要用到一个对象时再创建该对象实体),使用灵活,采用系统调用和空闲内存链表实现
  • 堆栈:通过“堆栈指针”可以从处理器获得直接支持,堆栈指针向下移动,分配新内存;向上移动,释放内存,效率仅次于寄存器,远高于堆区,但灵活性差(必须知道准确的成名周期),用于存放基本类型变量和对象的引用

ROM(只读存储器)

  • 常量存储:常量通常直接存放在代码段,但嵌入式系统中,常量本身会与其他部分隔离,此时可存放在ROM中

外存

  • 非ROM存储:流对象和持久化对象

特殊的基本类型

基本类型

  • boolean
  • char/16
  • byte/8
  • short/16
  • int/32
  • long/64
  • float/32
  • double/64

基本类型在堆栈中存储,类似于C++存储机制,每个基本类型都有对应的包装类型

高精度数字

Java提供了BigInteger(高精度整型)和BigDecimal(高精度浮点型)两个包装类型

Java的数组

Java的数组类型提供初始化检查和范围检查

Java的垃圾回收机制

Java通过垃圾回收机制收回内存,防止内存泄漏,实现思路类似于分享式的智能指针,一旦一个对象不被任何引用关联,即销毁该对象

字段和方法

一个类中可以有若干成员变量(字段)和成员函数(方法)

基本类型字段默认初始化

Java的类中基本类型字段会默认初始化,不需要显示初始化

static关键字

static关键字修饰的字段或方法被所有该类对象共享,且可以通过“类名.方法/字段”的方式调用

参考资料

  • 《Java编程思想》(第四版)
  • © 2020 QSH
  • Powered by Hexo Theme Ayer
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信