Java新特性2 泛型
在我们开发中,经常会用到集合,我们也知道集合是用来存储元素的,但它却没有规范存储元素的具体类型,为了是我们的程序更规范化,就应当使用泛型了。
泛型是提供给javac编辑器使用的,可以限定集合中的输入类型,让编译器挡住源程序的非法输入,编辑器编译带类型说明的集合时会去除掉“类型”信息,是程序运行效率不受影响,对于参数化的泛型类型,getClass()方法的返回值和原始类型完全一样,由于编译生成的字节码会去掉泛型的类型信息,只要能跳过编译器,就可以往某个泛型集合中加入其他类型的数据,例如:用反射得到集合,在调用其add方法即可。
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<Integer> list2= new ArrayList<Integer>();
System.out.println(list1.getClass() == list1.getClass());
打印true,就表示泛型只提供给编译器使用,运行期是不受影响,那我们想在list2中添加String类型的对象,如果我们直接add方法,编译器会报错。那我们怎么办?我们可以使用反射得到集合,然后调用其add方法就可以添加String类型的对象
list2.getClass().getMethod("add",
Object.class).invoke(list2, "abc");
System.out.println(collection3.get(0));
这样我们就在list2中添加了一个String类型的对象。
下面我们来简单了解一下泛型
l 术语,例如ArrayList<E>类定义和ArrayList<Integer>类定义
n 整个称为ArrayList<E>泛型类型
n ArrayList<E>中的E称为类型变量或类型参数
n 整个ArrayList<Integer>称为参数化的类型
n ArrayList<Ingerger>中的Integer称为类型参数的实例或实际类型参数
n ArrayList<Integer>中<>念着typeof
n ArrayList称为原始类型
l &nb
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身。这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有的东西都能存储(因为那样,别人可以通过序列化知道类里面的内容),那 ......
题目:使用Java实现链表
思路:
链表的特点:链表的的元素之间通过指针连接起来。通常有一个头指针指向第一个元素,通过第一个元素可以访问到其他的元素。
链表中数据如何存储:链表中的每个元素应该由表示数据的域和指向其他元素的指针组成。
链表的常用操作:创建链表、在链表中添加元素(在最后添加或者在某个具体的 ......
移位运算符就是在二进制的基础上对数字进行平移。
按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
在移位运算时,byte、short和char类型移位后的结果会变成int类型, ......