第10章 早期(编译期)优化javac编译过程: 1、解析与填充符号表过程 词法、语法分析 将源代码的字条流转变为标记(Token)集合。如“int a = b + 2”这名代码包含了6个标记,分别是int a = b + 2 填充符号表 2、注解处理器 3、语义分析与字节码生成 标注检...
分类:
编程语言 时间:
2014-12-27 16:06:38
阅读次数:
154
函数的名字修饰(DecoratedName)就是编译器在编译期间创建的一个字符串,用来指明函数的定义或原型。LINK程序或其他工具有时需要指定函数的名字修饰来定位函数的正确位置。多数情况下程序员并不需要知道函数的名字修饰,LINK程序或其他工具会自动区分他们。当然,在某些情况下需要指定函数的名字修饰...
分类:
编程语言 时间:
2014-12-25 15:59:17
阅读次数:
246
在C++中,存在类型转换,通常意味着存在缺陷(并非绝对)。所以,对于类型转换,有如下几个原则:(1)尽量避免类型转换,包括隐式的类型转换(2)如果需要类型转换,尽量使用显式的类型转换,在编译期间转换(3)避免使用reinterpret_cast和老式的强制类型转换操作符通常,隐式的类型转换会导致警告...
分类:
编程语言 时间:
2014-12-25 12:59:25
阅读次数:
219
强类型:为所有变量指定数据类型称为“强类型”。强/弱类型是指类型检查的严格程度的。语言有无类型,弱类型和强类型三种。无类型的不检查,甚至不区分指令和数据。弱类型的检查很弱,仅能严格的区分指令和数据。强类型的则严格的在编译期进行检查。强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。J...
分类:
其他好文 时间:
2014-12-23 10:21:18
阅读次数:
161
泛型是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。泛型的格式: 注意:此处的数据类型这能是引用类型 好处: A:把运行时期的问题提前到了编译期间 B:避免了强制类型转换 C:优化了程序设计import java.util...
分类:
其他好文 时间:
2014-12-20 00:44:26
阅读次数:
181
redtea@Lenovo:~/Projects/Chromium/src$ ninja -C out/Release android_webview_apk
ninja: Entering directory `out/Release'
[3/24] CXX obj/android_webview/browser/android_webview_common.shared_renderer_...
分类:
其他好文 时间:
2014-12-19 15:50:09
阅读次数:
261
一直没怎么用过枚举enum,因为不会用,也不知道他的优点在何处,今天仔细看了看,以后要学着用了,很有必要:
看一些资料说枚举有助于减少buge,比较好奇,专门了解了下,原因如下
枚举类型是强类型的,从而保证了系统安全性。枚举可以限定参数的个数,对调用者的行为能更加严格地进行控制。把一些运行期的参数检查放到了编译期,这点很重要。
...
分类:
编程语言 时间:
2014-12-16 17:04:50
阅读次数:
170
1.程序绑定:
绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定
2.静态绑定(前期绑定/编译期绑定):
在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C。
针对java简单的可以理解为程序编译期的绑定;这里特别说明一点,java当中的方法只有final,static,private和构造...
分类:
编程语言 时间:
2014-12-15 20:22:06
阅读次数:
202
C++对象的大小不同的编译器的实现是不一样的,以下仅讨论.net2003,其他编译的可能出现的结果以下也做了分析和猜测。在反推不同编译器实现的C++对象的大小时。对齐是一个很重要也容易被遗忘的问题。class A{}; 类A是一个空类,但是它的大小并不为0,编译期间编译器会插入一个char在其中,这...
分类:
编程语言 时间:
2014-12-10 23:59:52
阅读次数:
403