资讯专栏INFORMATION COLUMN

Java知识点汇总

Chao / 2334人阅读

摘要:由于类型擦除机制的存在,泛型类中的类型参数等信息,在运行时刻是不存在的。对此,对类文件的格式做了修订,添加了属性,用来包含不在类型系统中的类型信息。在运行时刻,会读取属性的内容并提供给反射来使用。

OOP

对象的创建和拷贝

对象的初始化

多态的实现

内部类、匿名类、静态类

对象内存模型

上面内容均请参考以下文章:

谈谈Java的面向对象

运行时 异常

聊聊Java的异常机制及实现

泛型

聊聊Java的泛型及实现

注解

聊聊Java的注解及实现

反射 必读文章:

Java反射的使用

Java反射在JVM的实现

扩展阅读:

关于反射调用方法的一个log

补充

Java 5中引入了泛型的概念之后,Java反射API也做了相应的修改,以提供对泛型的支持。由于类型擦除机制的存在,泛型类中的类型参数等信息,在运行时刻是不存在的。JVM看到的都是原始类型。对此,Java 5对Java类文件的格式做了修订,添加了Signature属性,用来包含不在JVM类型系统中的类型信息。比如以java.util.List接口为例,在其类文件中的Signature属性的声明是Ljava/lang/Object;Ljava/util/Collection;; ,这就说明List接口有一个类型参数E。在运行时刻,JVM会读取Signature属性的内容并提供给反射API来使用。比如在代码中声明了一个域是List类型的,虽然在运行时刻其类型会变成原始类型List,但是仍然可以通过反射来获取到所用的实际的类型参数。

Field field = Pair.class.getDeclaredField("myList");  //myList的类型是List 
Type type = field.getGenericType(); 
if (type instanceof ParameterizedType) {     
    ParameterizedType paramType = (ParameterizedType) type;     
    Type[] actualTypes = paramType.getActualTypeArguments();     
    for (Type aType : actualTypes) {         
        if (aType instanceof Class) {         
            Class clz = (Class) aType;             
            System.out.println(clz.getName());  //输出java.lang.String         
        }     
    } 
}  
动态代理 自动装箱 Lambda表达式、Predicate、Consumer、闭包、变量捕获 系统级

Unsafe

JNI

Java自己实现内存池

常用编程技法 IOC AOP

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67205.html

相关文章

  • Java知识汇总——思维导图

    摘要:知识点汇总,从基础到常用的还有常用的集合类,总结的很详细。图片是从论坛里面找到的,整理下来以便常复习。这是目前看到的比较详细完整的思维导图。基础知识面向对象常用集合多线程网络编程反射设计模式我有一个微信公众号,经常会分享一些技术相关的干货。 Java知识点汇总,从基础到常用的API、还有常用的集合类,总结的很详细。图片是从论坛里面找到的,整理下来以便常复习。这是目前看到的比较详细完整的...

    未东兴 评论0 收藏0
  • Java 高级面试识点汇总

    摘要:适配器模式将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 1、常用设计模式 单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证一个类仅有一个实例,并提供一个访问它的全局访问点。 代理模式:动态代理和静态代理,什么时候使用...

    since1986 评论0 收藏0
  • Java面试 32个核心必考点完全解析

    摘要:如问到是否使用某框架,实际是是问该框架的使用场景,有什么特点,和同类可框架对比一系列的问题。这两个方向的区分点在于工作方向的侧重点不同。 [TOC] 这是一份来自哔哩哔哩的Java面试Java面试 32个核心必考点完全解析(完) 课程预习 1.1 课程内容分为三个模块 基础模块: 技术岗位与面试 计算机基础 JVM原理 多线程 设计模式 数据结构与算法 应用模块: 常用工具集 ...

    JiaXinYi 评论0 收藏0
  • Java问题汇总,持续更新到GitHub

    摘要:目录介绍问题汇总具体问题好消息博客笔记大汇总年月到至今,包括基础及深入知识点,技术博客,学习笔记等等,还包括平时开发中遇到的汇总,当然也在工作之余收集了大量的面试题,长期更新维护并且修正,持续完善开源的文件是格式的同时也开源了生活博客,从年 目录介绍 00.Java问题汇总 01.具体问题 好消息 博客笔记大汇总【16年3月到至今】,包括Java基础及深入知识点,Android技...

    beita 评论0 收藏0
  • ❤ CSDN榜一博主,半年文章汇总【答谢粉丝、文末送书4本】❤

    ? 作者主页:不吃西红柿  ? 简介:CSDN博客专家?、HDZ核心组成员?、C站周榜第一✌  欢迎点赞、收藏、评论 ? 粉丝专属福利(包邮送书4本,书单里自己选):简历模板、PPT模板、学习资料、面试题库。直接去文末领取 目录 ​​​​​​​? 西红柿-半年文章汇总 ? 【粉丝福利、三连送书】 【送书活动介绍】 【如何获得】:评论区留言点赞收藏,通过python random函数从评论区抽奖2人...

    付永刚 评论0 收藏0

发表评论

0条评论

Chao

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<