方法调用: 方法调用不同于方法执行,方法调用阶段唯一任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不执行方法内部的具体过程。方法调用有,解析调用,分派调用(有静态分派,动态分派)。 方法解析: 解析调用一定是一个静态的过程,在编译期就完全确定,可以在类加载的解析阶段就把涉及的符号引用转化为 ...
分类:
其他好文 时间:
2018-01-01 18:17:46
阅读次数:
207
运行时常量池属于方法区的一部分,一个有效的字节码文件中除了包含类的版本信息、字段、方法以及接口等描述信息之外,还包含了一项信息,那就是常量池表。那么运行时常量池就是字节码文件中常量池表的运行时表示形式。运行时常量池中包含了多种不同的常量,比如编译期就已经明确的数值字面量到运行期后才能够获得的方法或者 ...
分类:
其他好文 时间:
2017-12-31 00:37:56
阅读次数:
179
139. Java中的泛型是什么 ? 使用泛型的好处是什么? 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 好处: 1、类型安全,提供编译期间的类型检测 2、前后兼容 3、泛化代码,代码可以更多的重复利用 4、性能较高,用GJ(泛型JAVA ...
分类:
编程语言 时间:
2017-12-27 18:13:37
阅读次数:
172
定义const变量 通常使用const来定义常量,在变量的前面加上const关键字即可如下: 在C++中const被当成编译期的常量来处理,也就是说,编译器不为const常量分配空间,只在编译时将它的值保存在名字列表中,当我们通过内存地址间接修改常量的值时,其结果保持不变。代码如下: 其运行结果如下 ...
分类:
其他好文 时间:
2017-12-19 19:42:24
阅读次数:
150
LIBRARY_PATH和LD_LIBRARY_PATH是Linux下的两个环境变量,二者的含义和作用分别如下: LIBRARY_PATH环境变量用于在程序编译期间查找动态链接库时指定查找共享库的路径,例如,指定gcc编译需要用到的动态链接库的目录。设置方法如下(其中,LIBDIR1和LIBDIR2 ...
分类:
其他好文 时间:
2017-12-17 22:20:39
阅读次数:
98
java异常常见面试问题 一、java异常的理解 异常主要是处理编译期不能捕获的错误。出现问题时能继续顺利执行下去,而不导致程序终止,确保程序的健壮性。 处理过程:产生异常状态时,如果当前的context不具备处理当前异常的能力,将在heap上new出来一个异常对象,停止当前的执行路线,把产生的异常 ...
分类:
编程语言 时间:
2017-12-17 10:59:17
阅读次数:
163
139. Java中的泛型是什么 ? 使用泛型的好处是什么? 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 好处: 1、类型安全,提供编译期间的类型检测 2、前后兼容 3、泛化代码,代码可以更多的重复利用 4、性能较高,用GJ(泛型JAVA ...
分类:
编程语言 时间:
2017-12-14 17:55:35
阅读次数:
191
Java的编译期优化 因为工作的原因,经常会在没有源码的情况下,对一些产品的代码进行阅读。有时在解决Bug时,在运行环境下会直接去看class文件的字节码,来确定运行中版本是否正确的。 在看字节码时,发现了一个有意思的现象:即便你在代码中使用了定义的常量,反编译后的代码仍会是字符串的字面量。 这个其 ...
分类:
编程语言 时间:
2017-12-09 20:57:44
阅读次数:
186
maven依赖管理 1.依赖范围 (依赖相当于java中的import 是否需要导入别的jar包) 使用控制依赖与三种classpath(编译期,测试时期,运行时期)的关系 complie 在编译,测试,运行时期,a项目在编译期依赖b,并且在测试和运行时期也依赖b项目, (默认值) 会打jar包或者 ...
分类:
其他好文 时间:
2017-12-05 00:58:35
阅读次数:
231
举例: 父类:Person{} 子类:Child extends Person{} 父类的引用指向子类的对象:Person p = new Child(); 理解:在编译期认为p是父类的对象,在运行期认为p是子类的对象 ////////////////////子类执行方法的情况: 1.子类重写了父类 ...
分类:
其他好文 时间:
2017-12-03 16:30:33
阅读次数:
173