java泛型通配符问题。 java中的泛型基本用法参考《java编程思想》第四版 p.353 java泛型中比较难理解的主要是类型擦除和通配符相关。 1.类型擦除 在编译期间,类型信息会被擦除,可以认为类型的检测是在编译期间进行的(见例1) List<String> list = new Array ...
分类:
编程语言 时间:
2017-09-24 18:26:01
阅读次数:
270
这个东西主要是用来在编译期把正则表达式字符串字面量处理成正则表达式语法树(表达式模板),然后运行期可以直接使用这棵语法树来匹配文字了,避免了运行期编译正则表达式的性能负担(这里真的是critical的地方吗?),并且类型安全,语法有错的话根本通不过编译。 因为是实验性的,只支持三个基本元素:连接,或... ...
分类:
编程语言 时间:
2017-09-24 00:34:13
阅读次数:
189
重载:指在一个类中定义多个方法名相同但参数列表不同的方法 “编译期绑定”,在编译时根据参数变量的类型判断应该调用哪个方法 “编译期绑定”,在编译时根据参数变量的类型判断应该调用哪个方法 “运行期绑定”,在运行时根据引用变量指向的实际对象类型调用方法 ...
分类:
编程语言 时间:
2017-09-23 20:10:10
阅读次数:
199
虚拟机栈 虚拟机栈是线程私有的。 虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态连接、方法出口等信息。每一个方法从调用直至执行完成的过程,就对应着一个栈帧在虚拟机中入栈到出栈的过程。 局部变量表存放了编译期 ...
分类:
其他好文 时间:
2017-09-22 12:03:40
阅读次数:
201
如果没有用来读取注解的工具,那注解将基本没有任何作用,它也不会比注释更有用。读取注解的工具叫作注解处理器。Java提供了两种方式来处理注解:第一种是利用运行时反射机制;另一种是使用Java提供的API来处理编译期的注解。 反射机制方式的注解处理器 仅当定义的注解的@Retention为RUNTIME ...
分类:
编程语言 时间:
2017-09-20 18:01:59
阅读次数:
404
注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式。注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样。那么,注解到底可以做什么呢? 1、注解的作用。 提供用来完整地描述程序所需要的信息,如编译期校验程序信息。 生 ...
分类:
编程语言 时间:
2017-09-20 17:57:01
阅读次数:
194
注解的处理除了可以在运行时通过反射机制处理外,还可以在编译期进行处理。在编译期处理注解时,会处理到不再产生新的源文件为止,之后再对所有源文件进行编译。 Java5中提供了apt工具来进行编译期的注解处理。apt是命令行工具,与之配套的是一套描述“程序在编译时刻的静态结构”的API:Mirror AP ...
分类:
编程语言 时间:
2017-09-20 17:50:19
阅读次数:
253
问题:include指令和include动作有什么区别? 答:include指令合并静态文档或Jsp页面中的内容,可以用于包括动态生成的输出结果,因此可以包含一个Servlet include指令在编译期合并为一个文档, include动作在请求时进行包括处理 共享局部变量。 (一)指令includ ...
分类:
其他好文 时间:
2017-09-19 00:18:54
阅读次数:
112
#运算符:用于在预编译期将宏参数转换为字符串 #define CONVERS(x) #x //注:没用双引号包括。 不同类型的指针占用的内存空间大小相同。 局部变量 定义: a[5]; 打印a[i]时,a[i]为随机数。 若定义a[5]={1,2}; 打印时,a[0]=1;a[1]=2;a[2]=a ...
分类:
编程语言 时间:
2017-09-17 17:34:36
阅读次数:
202
宏表达式在预编译期被处理,编译器不知道宏表达式的存在。 宏表达式没有任何的调用开销 宏表达式中不能出现递归定义。 C语言中强大的内置宏 注意:宏定义对空格比较敏感 #undef 取消前面定义的宏 条件编译是预编译指令命令,用于控制是否编译某段代码。 条件编译的意义: 1.条件编译使得我们可以按不同的 ...
分类:
其他好文 时间:
2017-09-15 16:42:52
阅读次数:
176