常有人会拿var这个关键字来和dynamic做比较。实际上,var和dynamic完全是两个概念,根本不应该放在一起做比较。var实际上是编译期抛给我们的“语法糖”,一旦被编译,编译期会自动匹配var 变量的实际类型,并用实际类型来替换该变量的申明,这看上去就好像我们在编码的时候是用实际类型进行申明的。而dynamic被编译后,实际是一个object类型,只不过编译器会对dynamic类型进行特殊...
Java Reflection
Reflection Class
Class对象
检查一个类的信息之前,首先需要获取类的Class对象。Java中得所有类型包括基本类型(int,long,float…),即使是数组都有与之关联的Class类的对象。
如果在编译期知道一个类的名字的话,使用如下方式获取一个类的Class对象:
ClassobjClass = MyObject....
分类:
编程语言 时间:
2015-01-21 16:40:18
阅读次数:
299
/* java.lang.String 是字符串类型 注意:只要采用双引号赋值字符串,那么在编译期将会放到方法区中的字符串的常量池里, 如果是运行时对字符串.加或相减会放到堆中(放之前会先验证方法区中是否含有 相同的字符串常量,如果存...
分类:
编程语言 时间:
2015-01-18 22:41:01
阅读次数:
319
1、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:
final StringBuffer a=new StringBuffer("immutable");
执行如下语句将报告编译期错误:
a=new StringBuffer("");
但...
分类:
编程语言 时间:
2015-01-15 18:18:33
阅读次数:
250
概述
今天听了项目组里的C++高手讲C++的异常,受益匪浅。果然,与高手一起才能学习到更多的东西。下面我就把这位高手介绍的C++异常处理分享给园子里的博友们。
什么是异常呢?
在编程语言里,按照出现错误的时机来区分,有编译期错误和运行期错误之分。
编译期错误大家肯定很熟悉了,当我们build一个程序时,console里出现的那些error提示就是编译期错误。这些错误是在编译期就能被编译器检...
分类:
编程语言 时间:
2015-01-15 14:22:12
阅读次数:
224
Java注解提供关于代码的信息,并且对它们注解的代码没有直接的影响。在这篇教程中,我们将学习Java注解,如何自定义注解,注解用法和如何使用反射解析注解。
Java注解在Java1.5被引用并且在一些Java框架如Hibernate,Jersey,Spring中被广泛使用。注解是被嵌入到程序自身中的程序的元数据。它可以被注解解析工具或编译器解析。我们也可以指定注解的生命周期,或者仅在编译期间可用...
分类:
编程语言 时间:
2015-01-12 09:27:52
阅读次数:
234
dynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。比如,即使你对GetDynamicObject方法返回的对象一无所知,你也可以像如下那样进行代码的调用,编译器不...
有如下所示代码:publicclassExample037{
staticvoidoutput1(){
try{
System.out.println("如果一个catch子句要捕获一个类型为E的被检查异常,"
+"而其相对应的try子句不能抛出E的某种子类型的异常,那么这就是一个编译期错误");
}catch(IOExceptione){
Syste..
分类:
编程语言 时间:
2015-01-07 07:04:21
阅读次数:
258
重排序通常是编译器或运行时环境为了优化程序性能而采取的对指令进行重新排序执行的一种手段。重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。
在并发程序中,程序员会特别关注不同进程或线程之间的数据同步,特别是多个线程同时修改同一变量时,必须采取可靠的同步或其它措施保障数据被正确地修改,这里的一条重要原则是:不要假设指令执行的顺序,你无法预知不同线程之间的指令会以何种顺序执...
分类:
编程语言 时间:
2015-01-05 13:02:12
阅读次数:
150
解释1、栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小解释2、存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护。而堆是无序的,他是一片不连续的内存...