早期(编译期)优化 java语言编译期 1.前端编译器(编译器的前端):*.java文件 => .class文件 Sun的Javac,Eclipse_JDT中的增量式编译器(ECJ) 2.后端运行期编译器(JIT编译器):字节码转 => 机器码 HotSpot_VM的C1、C2编译器 3.静态提前编 ...
分类:
其他好文 时间:
2018-06-14 20:39:43
阅读次数:
231
static 和非static 之间的差异,只有当值在运行期间初始化的前提下,这种差异才会揭示出来。因为编译期间的值被编译器认为是相 同的。 注意对于fd1 和fd2 来说,i4 的值是唯一的,但i5 的值不会由于创建了另一个FinalData 对象而发生改 变。那是因为它的属性是static,而且 ...
分类:
编程语言 时间:
2018-06-10 20:09:16
阅读次数:
242
1. 概述 Java编译器可能是指一个前端编译器(其实叫“编译器的前端”更准备一些),把*.java文件转变成*.class文件的过程;也可能是指虚拟机的后端运行期编译器(JIT编译器,Just In Time Compiler)把字节码转变成机器码的过程;还可能是指使用静态提前编译器(AOT编译器 ...
分类:
其他好文 时间:
2018-06-07 17:05:56
阅读次数:
143
C++泛型 C++泛型跟虚函数的运行时多态机制不同,泛型支持的静态多态,当类型信息可得的时候,利用编译期多态能够获得最大的效率和灵活性。当具体的类型信息不可得,就必须诉诸运行期多态了,即虚函数支持的动态多态。 对于C++泛型,每个实际类型都已被指明的泛型都会有独立的编码产生,也就是说list<int ...
分类:
编程语言 时间:
2018-06-07 14:16:16
阅读次数:
163
对于const变量,人们有个误区,就是认为const是个常量,其实这种说法是不正确的,const本质还是一个变量,只是这个变量被const修饰后成为了只读的变量。const只读变量关于const有几点要注意的:1.const修饰的变量是只读的,本质还是变量。2.const修饰的局部变量在栈上分配空间。3.const修饰的全局变量在全局数据区分配空间。4.const只在编译期有用,在运行期无用。co
分类:
其他好文 时间:
2018-05-27 22:45:52
阅读次数:
195
lib,dll这两样东西在许多编程书中都很少出现,但实际工程中,这两样东西的作用确实非常重要,我觉得c++程序员都有必要了解这两样东西。 首先总共有 动态链接 和 静态链接 这两种链接方式 静态链接: 静态链接使用静态链接库lib,且只在源代码编译时用到(编译期)。编译生成静态库时会生成一个.lib ...
分类:
其他好文 时间:
2018-05-27 22:15:08
阅读次数:
167
一、C++多态 C++的多态包括静态多态和动态多态。静态多态包括函数重载和泛型编程,动态多态包括虚函数。静态多态是指在编译期间就可以确定,动态多态是指在程序运行时才能确定。 二、虚函数 1、虚函数为类的非静态成员函数,访问权限一般为public。函数声明时,在返回值前加virtual关键字,函数定义 ...
分类:
编程语言 时间:
2018-05-25 11:06:20
阅读次数:
163
垃圾回收主要内容: 1. 那些内存需要回收? 2. 什么时候回收? 3. 如何回收? 垃圾回收主要针对运行时数据区那些区域? 运行时数据区的线程私有区域有:虚拟机栈,本地方法栈,程序计数器等; 栈中的栈帧随着方法的进入和退出执行入栈和出栈,每个栈帧的内存分配在编译期就已经确定; 随着线程或方法的结束 ...
分类:
编程语言 时间:
2018-05-24 15:01:09
阅读次数:
280
1、Java中的泛型是什么 ? 使用泛型的好处是什么? 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 好处: 1、类型安全,提供编译期间的类型检测 2、前后兼容 3、泛化代码,代码可以更多的重复利用 4、性能较高,用GJ(泛型JAVA)编写 ...
分类:
编程语言 时间:
2018-05-20 15:29:15
阅读次数:
214
1.Java开发环境: 1)java编译运行过程: 常见面试题 1.1)编译期:.java源文件,经过编译,生成.class字节码文件 1.2)运行期:JVM加载.class并运行.class(0和1) 特点:跨平台、一次编程到处使用 2)名词解释: 2.1)JVM:java虚拟机 加载.class ...
分类:
编程语言 时间:
2018-05-20 10:47:28
阅读次数:
165