【Java】碎片知识小结二

本文围绕Java编程展开,介绍了final关键字的使用,如修饰类、方法、变量和引用的作用;阐述了throw和throws、运行时与非运行时异常的区别;还讲解了反射机制,包括获取类对象的方式和创建对象的步骤;对比了PreparedStatement和Statement、excute和excuteUpdate;最后介绍了泛型通配符的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

final关键字
  • 1)当final修饰类的时候,表示该类不能够被继承
  • 2)当final修饰方法的时候,表示该方法不能被子类覆写
  • 3)final修饰基本类型变量,表示该变量只有一次赋值机会
  • 4)final修饰引用,表示该引用只有一次指向对象的机会

throw和throws的区别
  • 1) throws 出现在方法声明上,而throw通常都出现在方法体内。
  • 2) throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某个异常对象。

运行时异常与非运行时异常的区别
  • 1)运行时异常是不可查异常,不需要进行显式的捕捉
  • 2)非运行时异常是可查异常,必须进行显式的捕捉,或者抛出
    在这里插入图片描述
    所有的异常都是由Throwable继承而来,我们来看他下面的两个子类Error和Exception。
    Error类描述了Java运行时内部错误和资源耗尽错误。应用程序不抛出此类异常,这种内部错误一旦出现,除了告知 用户并使程序安全终止之外,再无能无力。这种情况很少出现。
    我们需要关心的是Exception以及其子类。在Exception之下又分为两个分支,RuntimeException和IOException。
    由于程序错误导致的异常属于RuntimeException;而如果程序本身没有问题,但由于像I/O错误这类问题导致的异 常属于IOException。 Java语言规范将派生于Error类或RuntimeException类的所有异常称为非受查异常;所有的其他异常称为受查异常。

反射

获取类对象的三种方式
  • 1)Class.forName(“类的绝对路径”)
  • 2)类名.class
  • 3)对象.getClass()
除了类名.class方式获取类对象,其它任何方式获取类对象,都会导致类属性被初始化
如何通过反射机制创建对象
  • 1)获取类对象
  • 2)通过类对象调用getConstructor()方法得到该类的构造器
  • 3)通过构造器调用newInstance()方法实例对象

getFieldgetDeclaredField的区别
  • getField 只能获取public的,包括从父类继承来的字段。
  • getDeclaredField 可以获取本类所有的字段,包括private的,但是不能获取继承来的字段。 (注: 这里只能获取到private的字段,但并不能访问该private字段的值,除非加上setAccessible(true))

PreparedStatement VS Statement
  • 1)Statement 需要进行字符串拼接,可读性和维护性比较差。PreparedStatement 使用参数设置,可读性好,不易犯错
  • 2)PreparedStatement有预编译机制,性能比Statement更快
  • 3)防止SQL注入式攻击

excute 和 excuteUpdate的区别
  • 1)execute可以执行查询语句,然后通过getResultSet,把结果集取出来。executeUpdate不能执行查询语句
  • 2)execute返回boolean类型,true表示执行的是查询语句,false表示执行的是insert,delete,update等等。executeUpdate返回的是int,表示有多少条数据受到了影响

泛型通配符(? extends、? super、?)
  • ?extends:该集合存放的元素是?extends所跟泛型,或者该类型的子类泛型,只能取而不能存
  • ?super:该集合存放的元素是?super所跟泛型或者其父类泛型,只能存不能取
  • ?:泛型通配符? 代表任意泛型。既然?代表任意泛型,那么换句话说,这个容器什么泛型都有可能,所以只能以Object的形式取出来,并且不能往里面放对象,因为不知道到底是一个什么泛型的容器。如果希望,又能插入,又能取出,就不要用通配符?。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值