工作原理
- 要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的,这项工作是由称为Class对象的特殊对象完成的,它包含了与类有关的信息 。Java送Class对象来执行其RTTI,使用类加载器的子系统实现 。
- 无论何时,只要你想在运行时使用类型信息,就必须首先获得对恰当的Class对象的引用
- RTTI与反射之间真正的区别只在于:对RTTI来说,编译器在编译时打开和检查.class文件(也就是可以用普通方法调用对象的所有方法);而对于反射机制来说,.class文件在编译时是不可获取的,所以是在运行时打开和检查.class文件 。
- Java虚拟机中有许多附加技术用以提升速度,尤其是与加载器操作相关的,被称为“即时”(Just-In-Time,JIT)编译器的技术 。这种技术可以把程序全部或部分翻译成本地机器码(这本来是JVM的工作),程序运行速度因此得以提升 。当需要装载某个类时,编译器会先找到其.class文件,然后将该类的字节码装入内存 。此时,有两种方案可供选择:
- 一种就是让即时编译器编译所有代码 。
- 另一种做法称为惰性评估(lazy evaluation),意思是即时编译器只在必要的时候才编译代码,这样,从不会被执行的代码也许就压根不会被JIT所编译 。
- 当final修饰的是基本数据类型时,它指的是数值恒定不变(就是编译期常量,如果是static final修饰,则强调只有一份),而对对象引用而不是基本类型运用final时,其含义会有一点令人迷惑,因为用于对象引用时,final使引用恒定不变,一旦引用被初始化指向一个对象,就无法再把它指向另一个对象 。然而,对象其自身却是可以被修改的,Java并未提供使任何对象恒定不变的途径(但可以自己编写类以取得使对象恒定不变的效果),这一限制同样适用数组,它也是对象 。以上是我们在学习Java时需要掌握的基本点和一些关键的重难点 。了解他们对我们学习Java很重要
经验总结扩展阅读
- 基础电信服务和增值电信服务的区别
- 松静自然的生理学基础是什么? 生理学分析
- 风水学基础知识 风水学基础知识有什么
- 足球颠球技巧教学 看这里
- 简化24式太极拳是在哪个流派的基础上建立的 简化太极拳的由来
- 染发 刚染好的头发立刻洗了会影响效果吗?三个知识点,看完就通透了
- 前列腺理疗仪使用方法 基础操作
- 运动 肥胖的人,想要提高基础代谢,不妨做好这4件事,或有助于减肥
- 在感情的世界中 在感情的世界里,我们是需要以信任作为基础的
- 头像零基础怎么画素描头像?适合新手学的画素描头像教程!