2021-3-30 Java基础错题总结笔记

本文详细介绍了Java中的泛型机制,包括类型擦除和泛型对象创建注意事项。同时,讨论了try-catch-finally块的工作原理,特别是return语句与finally块的关系。此外,阐述了继承中构造函数的使用规则以及多态调用的动态与静态分派。最后,提及了Object类中的几个关键方法。通过这些核心概念,深入理解Java编程的基石。
摘要由CSDN通过智能技术生成

1、关于泛型
(1)虚拟机中没有泛型,只有普通类和普通方法
(2)所有泛型类的类型参数在编译时都会被擦除
(3)创建泛型对象时应指明类型,让编译器尽早的做参数检查
(4)泛型虽有类型擦除机制,能够在运行时使用反射机制动态地获取泛型的实际类型。

详细总结:1、创建泛型对象的时候,一定要指出类型变量T的具体类型。争取让编译器检查出错误,而不是留给JVM运行的时候抛出类不匹配的异常。 2、JVM如何理解泛型概念 —— 类型擦除。事实上,JVM并不知道泛型,所有的泛型在编译阶段就已经被处理成了普通类和方法。 处理方法很简单,我们叫做类型变量T的擦除(erased) 。 总结:泛型代码与JVM ① 虚拟机中没有泛型,只有普通类和方法。 ② 在编译阶段,所有泛型类的类型参数都会被Object或者它们的限定边界来替换。(类型擦除) ③ 在继承泛型类型的时候,桥方法的合成是为了避免类型变量擦除所带来的多态灾难。 无论我们如何定义一个泛型类型,相应的都会有一个原始类型被自动提供。原始类型的名字就是擦除类型参数的泛型类型的名字。

2、关于try-catch-finally块
首先明确finally块是必定执行的,如果try或catch块中有return,则暂时将return的值暂存起来,不立即返回,如果finally块中对返回的变量的值有更改,再依据条件判定,若该变量是引用类型的变量,则return的结果改变,若该变量是基本类型或者是String类型,返回的结果就是暂存的值,finally块中的更改无影响。
3、关于继承
若父类显示地声明了有参构造函数,且不存在无参构造函数,则子类需要在自己地构造函数中显式地调用父类的构造函数。
4、关于Java多态调用
普通方法,运用的是动态单分配,是根据new的类型确定对象,从而确定调用的方法;
静态方法,运用的是静态多分派,即根据静态类型确定对象,因此不是根据new的类型确定调用的方法
5.关于Object类中包含的方法
clone();
equals();
finalize();
getClass();
notify(),notifyAll();
hashCode();
toString();
wait();
6.关于IO
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值