泛型一
* 泛型,一种安全机制。表明参数或者接口或者类的数据类型
* 泛型,一般是 < > 表示。
* 泛型,是在1.5之后才产生的。
* 一般JDK“进化” 会更安全,更高效,更完整。
*
* 在1.5之前,没有泛型都是用利用多态的思想
* 强制转化成某个类型再得到想要的值,
*
* 使用泛型过后, 可以在编译的环节直接知道数据的问题所在:
* 1、ArrayList<Person> list = new ArrayList<Person>();
*
* 泛型在什么时候使用?
* 当不确定某个参数的类型的时候可用泛型。
*
* 泛型的类
* 1、泛型类在多个方法前面间实施类型约束。
* 2、泛型一旦作用于类,那么该类的所有函数都可以使用该泛型类
* 3、实例化该类的时候需要加入泛型确保安全。
*
* 泛型的函数
* 1、通常情况下参数内部不知道类型的时候使用泛型。
* public <QQ> void run(QQ q)
*
* 静态泛型函数:
* 1、静态函数不可以访问类上定义的泛型。
* 2、如果静态方法操作的应用数据类型不确定,
* 那么在函数上确定好泛型
*
* 泛型接口:
* interface Run<TT>{
public void run(TT a);
public void runrun(TT b);
}
需要注意的是:一旦使用名字,那么在实现的时候
需要确定是何种类型。
泛型二:
* 来自官方普通的四种泛型
* <K> 键 <V> 值 <E> 异常类 <T> 普通泛型
*
* 特殊情况:
* 1、泛型的参数如果不考虑继承的话,
* 会报错的,除非用?
*
* 泛型通配符有三种:
* 1、无限定通配符 , <?>
* 2、上边界限定通配符 ,<? extends Number>
ArrayList<? extends 类型1> x = new ArrayList<类型2>();
* 类型1指定了一个数据类型,
* 那么类型2只能是类型1或者类型1的子类
*
* 3、下边界限定通配符 ,<? super Number>
ArrayList<? super 类型1> x = new ArrayList<类型2>();
* 类型1指定了一个数据类型,
* 那么类型2就只能是类型1或者类型1的父类
*
* 限定通配符总是包括自己!
* Map 集合:<键值对>
* 就像是一本书的目录和内容,通常是通过目录去找内容。
*
* Map 无序的:
*
* 1、增 put(key, value) putAll(Map<? extends K,? extends V> m)
* 2、删 clear remove(Object key)
* 3、改 put(K key, V value)
* 4、查 keySet entrySet get size
*
* 1、HashTable 同步的,Hash表的数据结构形式,速度慢
* 2、HashMap 不同步的,Hash表的数据结构形式,速度快
* 3、TreeMap 不同步的,Tree的数据结构形式,速度慢
*
* 获取键的形式,遍历:
* 1、keySet
* 2、entrySet
*
* HashMAP 和 HashSet 区分与联系:
* 1、都是通过哈希表做为数据结构存储数据。
* 2、集合内部的数据都不重复。
* 3、HashSet 其实就是一种HashMap,只不过不存在相关的key,也就是取值的时候只能用迭代。
* 4、HashMap 没有迭代。需要转换成Set类型。
* Collections:
* 包装器与众多集合类一样实现了Collection接口。
* 包装器里的方法都是由静态方法组成,可以直接通过类调用
* 包装器里的方法很多都是非常实用的:
* fill、reverse、max、min、replaceAll、shuffle、sort\
*
* fill:使用指定元素替换指定列表中的所有元素。
* reverse:反转指定列表中元素的顺序。
* max: 取列表中最大的元素,按自然排序。
* min:取集合中最小的元素,按自然排序。
* replaceAll:使用另一个值替换列表中出现的所有某一指定值。
* shuffle:打乱列表
* sort: 自然排序,可重写比较器
*
* 高级for循环:在1.5之后有foreach
* for( xx : yy )
* 高级for局限性:必须要有遍历的目标
*
* 可变参数 JDK 1.5 特性
* 其实一种数组参数的简写方式。
* 代替实例化的过程。
* 也称之为隐私封装数组.
*
* 可变参数原则:
* 1、如果需要多个参数传入,请把其他的参数放在可变参数之前。
* 2、可变参数只有... ,比如 int... 表示传入的int的数组。
* 3、一个函数只能拥有一个可变参数。
* 异常就是一些你想不到的,
* 但是又偏偏就来到你身边的事情。
*
* 在开发中,一般这种异常可称之为 如:
* 文件找不到?网络连接失败?非法参数 等。
*
* java里也有异常,它就是Exception。
* throwable:
* - Error
* - Exception
*
* Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)
* 的实例时,才能通过 Java 虚拟机或者 Java
* throw 语句抛出。类似地,只有此类或其子类
* 之一才可以是 catch 子句中的参数类型。
*
* Exception:
* - RuntimeException
* - NullPointerException
* - IndexOutOfBoundsException
* - ...
* - IOException I/O 异常
* - ...
*
* Exception 基本写法:
* try{ //开始进入监控区
* //throw new ArithmeticException(); 可选择主动抛出异常,相当于暗箱操作
*
* }catch(Exception e){ //抓到你的把柄了
* e.printStackTrack();
* }catch(Exception e){ //catch写多个捕获异常,注意:建议Exception尽量写它的子类
* }finally{
* }
* finally的就是,无论如何都是执行的代码块。
*
* 如何自定义异常?
* 1、在try中可以判断自己的值,再主动抛出异常。
* 2、throw new 自定义异常类。注意:自定义异常类一定要继承Exception父类
分享到:
相关推荐
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...
Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...
Java API文档是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)中的所有类、接口、方法和常量的详细说明。这份中文网页版的Java API文档为中国的开发者提供了便利,无需通过英文版本来学习和查找API信息,...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java...
java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作工具类 java sql操作工具类java sql操作...
java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
Java2Pas是一个实用工具,主要用于将Java编程语言编写的源代码转换为Pascal语言的等效代码。这个工具对于那些需要在两种语言之间迁移代码或者理解不同编程语言语法的开发者来说非常有价值。Java和Pascal虽然都是面向...
HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...
### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....
Java到Python的转换工具,如标题“java2python”所示,是编程领域中的一种实用技术,旨在帮助开发者将已有的Java代码转换为Python语言。这种转换对于那些熟悉Java但希望进入Python生态系统,或者想要利用Python特定...