欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java,

来源: javaer 分享于  点击 8928 次 点评:234

java,


泛型一
* 泛型,一种安全机制。表明参数或者接口或者类的数据类型
* 泛型,一般是 < > 表示。
* 泛型,是在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父类

相关文章

    暂无相关文章
相关栏目:

用户点评