Java核心技术 卷一的总结
问题一:虚基类?
被继承的类型称为基类(base class)或超类(superclass),新产生的类为派生类(derived class)或子类(subclass)。
基类和派生类的集合称作类继承层次结构(hierarchy)。如果基类和派生类共享相同的公有接口,则派生类被称作类的子类型(subtype)。
1.为什么要引入虚基类?
在类的继承中,如果我们遇到这种情况:“B和C同时继承A,而B和C都被D继承”。在此时,假如A中有一个函数fun()当然同时被B和C继承,而D按理说继承了B和C,同时也应该能调用fun()函数。
这一调用就有问题了,到底是要调用B中的fun()函数还是调用C中的fun()函数呢?
在C++中,有两种方法实现调用:(注意:这两种方法效果是不同的)
- 使用作用域标识符来唯一表示它们比如:B::fun()
- 另一种方法是定义虚基类,使派生类中只保留一份拷贝。
假设定义了一个公共基类A。类B和类C都由类A公有派生,类D由类B和类C公有派生。显然D包含类A的两个拷贝,不仅多占用内存,而且还造成多个拷贝的数据不一致。
问题二:内存冲突?
就是系统文件需要占用这个内存程序,或者地址(也就是什么OX89F2G)之类的!但有时候某个游戏也会占用它,你说它是给系统好?还是给游戏好?
问题三:Unicode格式存储?
Unicode的实现和编码方式不一定等价。Unicode编码是一种理论层面的东西。Unicode编码的实现方式称为Unicode转换格式(Unicode Transfomation Format,UTF)。
Unicode编码的实现方式主要由UTF-8,UTF-16,UFT-32等,分别以字节(BYTE)、字(OWORD,2个字节)、双子(DWORD,4个字节,实际只用了31位,最高位为0)作为编码单位。
根据字节序的不同,UTF-16可以被实现为UTF-16LE或UFT-16BE,UTF-32可以被实现为UTF-32LE或UFT-32BE。这些方式是对Unicode码点进行编码,以适合计算机的存储和传输。
详情请点我
问题四:内联?
一、概念
方法内联就是把调用方函数代码"复制"到调用方函数中,减少因函数调用开销的技术
- 函数调用过程
- 首先会有个执行栈,存储它们的局部变量、方法名、动态连接
- 当一个方法被调用,一个新的栈帧会被加到栈顶,分配的本地变量和参数会存储在这个栈帧
- 跳转到目标方法代码执行
- 方法返回的时候,本地方法和参数被销毁,栈顶被移除
- 返回原来的地址执行
注:这就是通常说的函数调用的压栈和出栈过程,因此,函数调用需要有一定的时间开销和空间开销,当一个方法体不大,但又频繁被调用时,这个时间和空间开销会相对变得很大,变得非常不划算,同时降低了程序的性能。根据二八原则,80%的性能消耗其实是发生在20%的代码上,对热点代码的针对性优化可以提升整体系统的性能
转载
问题五:摩尔定律?
摩尔定律是英特尔创始人之一戈登·摩尔的经验之谈,其核心内容为:集成电路上可以容纳的晶体管数目在大约每经过18个月便会增加一倍。
摩尔定律是内行人摩尔的经验之谈,汉译名为“定律”,但并非自然科学定律,它一定程度揭示了信息技术进步的速度。
问题六:GUI编程?
GUI(图形界面编程)
GUI代表graphics user interface 一般翻译为图形用户接口或图形用户界面
GUI就是图形用户界面,是基于图形的界面,windows就是一个图形用户界面的操作系统,而DOS是基于命令提示符的操作系统,GUI编程就是编出一个图形用户界面的软件.
补充 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
你凭什么比别人轻松,你配吗 |