学习笔记-JDBC与JDK新特性

本文介绍了JDBC的作用,包括数据库连接、SQL操作和结果处理,以及JDK的新特性——泛型,详细阐述了泛型的概念、好处、擦除与补偿。同时,探讨了泛型在不同场景下的应用,如方法参数、类、接口和静态函数。文章还提到了枚举、反射、注解和设计模式,如单例和装饰模式,深入浅出地展示了Java编程中的重要知识点。
摘要由CSDN通过智能技术生成


JDBC

JDBCJava Database Connective),Java数据库连接,是一组专门负责连接并操作数据库的标准 

作用 

Ø 完成数据库的连接创建

Ø 传送SQL命令给数据库,完成数据库操作及数据表

Ø 接受和处理数据库所执行的结果

JDK新特性

泛型

Ø 泛型就是参数化类型,是一种类型占位符。当我们把一个对象“丢进”集合中后,系统会把该元素向上转型为Object实例,当把它取出来时,就是获取了一个对Object对象的引用。JDK1.5以后,可以使用泛型类限制集合元素的类型,这样就统一了集合放入的元素类型。 

Ø 回顾一下数组:int[] a = {1, 2, 3.0};在编译时就已经提示错误,将问题解决在萌芽时期。那么集合也能否像数组那样,把问题放在编译时、而不是在运行时解决呢?泛型的出现将运行时异常提前到编译时异常,减少了安全隐患

Ø 泛型能够带来的两个明显好处是——类型安全(提高安全性)和减少装箱拆箱、向下转型(提高效率)。

泛型的擦除与补偿

泛型的擦除 (编译时)

泛型技术是组编译器使用的技术,用于编译时期确保类型的安全。在编译通过之后,完全转换成*.class文件之前,会进行泛型的擦除。这个过程称为泛型的擦除。

为什么要有泛型的擦除?

原因是:泛型是JDK1.5后才出现的产物,而某些市面上还遗留着许多使用JDK1.5以下版本的软件系统,为了兼容这些老系统,所以需要泛型的擦除。

泛型的补偿(运行时)

在运行时,通过获取元素的类型自动进行转换动作,这就是泛型的补偿。不需要程序员再进行强制类型转换了。泛型的补偿是能过getClass()实现的。

泛型的使用场景

1, 方法参数是方法名后小括号里的东西,而泛型接收的参数就是指定的数据类型如类、接口或数组,而使用的方式就是<>

2, 没有泛型之前,ArrayList是这样写的:ArrayList<Object>,而这样子需要向上、向下转型,而ArrayList<E>不用。<E>表示直接接收引用数据类型(如:类、接口或数组),不会涉及到转型

3, 用在类上。如自定义类中可以加入泛型。class Person<E1, E2> {} 这个能看懂不Person<String, Integer> p = new Person<String, Integer>();

4, 用在函数上。函数的泛型与所属类的泛型一样,则不用在函数中另外声明,如果与类的泛型不一样,就要另在函数中声明泛型,public  <E>  void method(E e){},<E>必须放在修饰符之后后返回值之前。

静态函数一定要另外声明泛型,因为类的泛型是作用于对象,而静态先于对象存在。Public static <T> void method(T t){}

5, 用在接口上。实现接口的类有具体类型,实现的时候就要传具体类型,如果实现接口的类也不确定泛型的类型时,要继续定义泛型,让调用这个类的程序来传具体的类型。

通配符与<T>的区别

1,“?”通配符不需要声明,但是T是另外声明<T>

2T还可以当具体的数据类型使用,但是“?”不行。

泛型的限定:

上限:?extends E:可以接收EE的子类

用法:Object可以接收任何对象,但前提是只用父类的方法

下限:?super E:可以接收EE的父类

用法:子类的方法,父类都有,只要子类可以接收的父类都可以接收。

高级for循环&可变参数

增强for循环和传统for循环的区别?foreach可以遍历map吗?

增强for循环简化了书写,但是只能遍历元素.传统for循环可以在遍历的过程中对元素进行操作

高级for循环,只用于集合和数组的遍历,集合只能用Collection不能用Map集合只能把Map集合转化成Set集合,才能用for循环。foreach可以间接遍历map,可以通过map.entrySet()map.keySet()方法获得单列集合,然后进行遍历。

格式:for(元素类型变量名: Collection集合&数组)

可变参数的使用方式,和注意事项?

类型...变量名

注意事项:一般参数必须定义在可变参数前  public void method(int a,int...arr);

其实可变参数的底层实现就是数组

 

反射

Class.forName("类名")和类名.class的区别?

每个Class<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值