String 为什么不能被继承? 因为它被final 修饰,成为不可变类 , 类似的还有 Integer等其它包装类 上述代码比较的时候为何第一次为true,第二次为false? 因为第一次和c比较,c是由b+2组成的,b是被final修饰的,它在程序编译期就可以被确定,所以通过查看编译后的程序就可 ...
分类:
其他好文 时间:
2018-03-29 02:20:44
阅读次数:
180
原文:https://blog.csdn.net/rusbme/article/details/51240350 一、Java泛型的实现方法:类型擦除 前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理 ...
分类:
其他好文 时间:
2018-03-26 16:13:39
阅读次数:
156
对指针来说: 动态类型与静态类型: 动态类型是所指向的对象类型,这发生在程序运行期,静态类型是声明时指针时候,指针本身的类型,这发生在编译期 所以说静态类型声明好后就不发生改变了,动态类型,可以运行改变,也就是允许指向不同的对象类型 如: 动态绑定与静态绑定: 有虚函数的地方就是动态绑定,没有虚函数 ...
分类:
其他好文 时间:
2018-03-22 13:40:47
阅读次数:
190
参考:http://zh.cppreference.com/w/cpp/language/expressions 不求值表达式:表达式在编译期被使用,运行期无计算。例如: 但是,typeid有个例:令 typeid(expr), 当expr是广义左值(glvalue)时,expr是对应的运行期计算的 ...
分类:
编程语言 时间:
2018-03-21 13:57:02
阅读次数:
229
动态代理 AOP底层实现:有接口自动应用的就是JDK动态代理(1).JDK 在运行时运行时注入本质:在内存中构建出接口的实现类特点:被代理对象,必须有接口 实例: Cglib 底层,注入,编译期已经注入了本质:在内存中生成被代理类(目标类)的【子类】特点:可以在没有接口的情况下代理对于不使用接口的业 ...
分类:
其他好文 时间:
2018-03-17 12:07:48
阅读次数:
144
第一种: 饿汉式 分析 利用class Load机制, 在加载时进行实例化, 同时静态方法只在编译期间执行一次初始化, 所以也就只有一个对象, 使用的时候已经被初始化完毕, 可以直接调用 优点: 相比懒汉式, 编译期就已经初始化, 使用的时候速度最快 缺点: 不使用也会被初始化出来, 消耗内存 分析 ...
分类:
其他好文 时间:
2018-03-15 16:28:04
阅读次数:
169
AspectJ AspectJ是一个面向切面的框架,它扩展了Java语言,定义了AOP 语法,能够在编译期提供代码的织入 @AspectJ是AspectJ 5新增的功能,使用JDK 5.0 注解技术和正规的AspectJ切点表达式语言描述切面 Spring通过集成AspectJ实现了以注解的方式定义 ...
分类:
编程语言 时间:
2018-03-12 20:59:31
阅读次数:
215
编译期的常量表达式,顾名思义是在编译期就求值得表达式。例如: 这些都是老套的传统代码,没什么稀奇的。现在改一下代码,如下所示: 不奇怪的是,编译器识别出我的代码是傻子逻辑,因为N3是无法在编译期确定的,只能在运行期求值。 引人注意的是地方是,同样的const int 修饰的变量,却具有更隐蔽的性质。 ...
分类:
编程语言 时间:
2018-03-11 20:55:35
阅读次数:
197
Rust 内存管理 Rust 与其他编程语言相比,最大的亮点就是引入了一套在编译期间,通过静态分析的方式,确定所有对象的作用域与生命周期,从而可以精确的在某个对象不再被使用时,将其销毁,并且不引入任何运行时复杂度。 现代编程语言,对于堆上分配的内存(可以理解为 malloc 出来的内存)进行管理,不 ...
分类:
其他好文 时间:
2018-03-11 14:42:04
阅读次数:
1113
Java编译期的概念 编译期即将源代码转变成本地代码的过程,对于Java来说,这个过程会更加的多样。 Java编译期因为采用的编译器类型不同而导致概念也不同,Java编译器可以分为以下三种类型: 前端编译器 前端编译器将java源代码转变成字节码,常见的前端编译器包括Javac编译器、ECJ编译器( ...
分类:
编程语言 时间:
2018-03-10 18:46:15
阅读次数:
251