2021年2月4日

Java 基础 - 既然泛型被擦除了,为什么调用<T>get()不需要进行强制转换?

摘要: 因为类型擦除的问题,所有的泛型类型变量最后都会被替换为原始类型。 既然都被替换为原始类型,那么为什么我们在获取的时候,不需要进行强制类型转换呢? 看下ArrayList.get()方法: public E get(int index) { RangeCheck(index); return (E) 阅读全文

posted @ 2021-02-04 17:55 frank_cui 阅读(489) 评论(0) 推荐(0)

Java 基础 - Java为什么要类型擦除?

摘要: 总结 一句话:为了兼容JDK 5 之前(有泛型功能之前)的项目,否则有大量代码修改的工作。 1-“真泛型”是怎么操作的? 若 Java 语言实现"真泛型",对泛型类型(泛型类、泛型接口)、泛型方法的名字使用特别的编码,例如将 Factory<T> 类生成为一个名为 “Factory@@T” 的类,这 阅读全文

posted @ 2021-02-04 17:25 frank_cui 阅读(797) 评论(0) 推荐(0)

Java 基础 - 什么是类型擦除Type Erasure?

摘要: 类型擦除 对于泛型,只是允许程序员在编译时检测到非法的类型而已。 但是在运行期时,其中的泛型标志会变化为 Object 类型。 1 List<Integer> list = new ArrayList<>(); 2 list.add(12); 3 list.add("a"); //编译时,泛型起作用 阅读全文

posted @ 2021-02-04 16:36 frank_cui 阅读(183) 评论(0) 推荐(0)

SpringCloud - Ribbon vs Feign的关系

摘要: Ribbon添加maven依赖 spring-starter-ribbon 使用@RibbonClient(value="服务名称") 使用RestTemplate调用远程服务对应的方法 feign添加maven依赖 spring-starter-feign 服务提供方提供对外接口 调用方使用 在接 阅读全文

posted @ 2021-02-04 11:37 frank_cui 阅读(215) 评论(0) 推荐(0)

Java多线程 - 怎么检测到发生死锁?

摘要: 1-Jconsole 检查死锁 Jconsole是JDK自带的图形化界面工具,使用JDK给我们的的工具JConsole,可以通过打开cmd然后输入jconsole打开。 连接到需要查看的进程。 打开线程选项卡,然后点击左下角的“检测死锁” 。 jconsole就会给我们检测出该线程中造成死锁的线程, 阅读全文

posted @ 2021-02-04 00:34 frank_cui 阅读(339) 评论(0) 推荐(0)

导航

levels of contents