java jdk5的泛型声明
泛型声明就是泛泛的声明类型。我们用其它的语言做一个比较:
Javascript声明变量: var i= 1;var c = ‘char ’
VB 声明变量: dim i=1;dim c=’char’
Perl 声明变量: $i = 1; $c = ‘char’
这些脚本语言,在声明变量的时候,根本就不想java那样还得声明类型。他们的类型已经自己声明完了,是泛泛的声明的,这些语言本身就是泛型。因为数据类型可能会改变,所以用不着像java定的那么死。但是数据类型可不是说变就变的,java的强类型机制,保证了逻辑的严谨性,而且确保着程序员犯错误,这是java的优点。同时使得它开发起来没有上述语言那样简单,一点小事上做起来都很笨拙。这是其中一个方面,另一个方面如我们上节讲的java的集合类里面的类型是不确定的,放什么都行啊。这样的话你明明自己放进去的类型,也就是说你自己已经知道类型了,拿出来的时候,还得不断的转换。我们在介绍拆箱与装箱机制的时候已经说过这个类型的问题了。拆箱与装箱确实能解决不少问题但那是不够的。
所以接着上节课学集合类的劲头,趁热打铁。我们讲一下刚才说的第二个方面,关于集合类的问题。我们刚才说,java这种类型安全之下的破绽,我们要用泛型的方式来弥补。我们来实践一个例子。实践:
import java.io.IOException;
import java.io.PrintStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class GenericsTester {
public void testTypeSafeMaps(PrintStream out) throws IOException {
Map<Integer, Integer> squares = new HashMap<Integer, Integer>();
for (int i=0; i<100; i++) {
squares.put(i, i*i);
}
for (int i=0; i<10; i++) {
int n = i*3;
out.println(n + "的平方是" + squares.get(n));
}
}
//测试安全的链表
public void testTypeSafeLists(PrintStream out) throws IOException {
List listOfStrings = getListOfStrings();
for (Iterator i = listOfStrings.iterator(); i.hasNext(); ) {
String item = (String)i.next();
}
List<String> onlyStrings = new LinkedList<String>();
onlyStrings.add("Legal addition");
/**
* Uncomment these two lines for an error
onlyStrings.add(new StringBuilder("Illegal Addition"));
onl
相关文档:
1.Java的编译运行
Java中的package概念相当于C++中的namespace的概念。但是java会把package的名字和文件系统中目录结构对应起来,也即如果你申明了某个package的名字为com.tij.everythingisobj,那么你的文件系统中必须创建com\tij\everythingisobj这样一个 ......
@echo off&setlocal enabledelayedexpansion
:begin
cls
set/p path_=请输入你要添加的环境变量的路径:
if not defined path_ goto error
for,/f,"skip=4 tokens=1,2,*",%%a,in,('reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Sess ......
发布Java应用程序时你会感到困难?好在Java提供了一系列打包和发布工具,可以显著的简化发布过程该文章提供了打包Java
code的几种方法,我们将会探讨Java manifest
文件,给出用于管理JAR文件所依赖文件、估计跨平台发布所需的CLasspath的合适方法.我也会解释如何使用manifest包版本特性来确认包的
兼容性...
什 ......
接口类:
package JFFileEncrypt;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.SecretKeySpec;
/**
* 功能:对文件加密解密操作
* @author jiangfeng
*
&nbs ......
Java容器类类库的用途是"保存对象",并将其划分为两个不同的概念:
1)Collection。一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能有重复元素。Queue按照排队规则来确定产生的顺序(通常与它们被插入的顺序相同)。
2)Map。一组成对的”键值对&ldqu ......