java泛型
摘要:泛型的好处
Java 语言中引入泛型是一个较大的功能增强。不仅语言、类型系统和编译器有了较大的变化,以支持泛型,而且类库也进行了大翻修,所以许多重要的类,比如集合框架,都已经成为泛型化的了。这带来了很多好处:
类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。
Java 程序中的一种流行技术是定义这样的集合,即它的元素或键是公共类型的,比如“String 列表”或者“String 到 String 的映射”。通过在变量声明中捕获这一附加的类型信息,泛型允许编译器实施这些附加的类型约束。类型错误现在就可以在编译时被捕获了,而不是在运行时当作 ClassCastException 展示出来。将类型检查从运行时挪到编译时有助于您更容易找到错误,并可提高程序的可靠性。
消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
尽管减少
阅读全文
posted @
2008-09-27 15:40
小顾问
阅读(135466)
推荐(48) 编辑
myeclipse的一些使用总结
摘要:安装插件
一般的Eclipse插件只需要复制到C:\Java\MyEclipse6.0\eclipse\plugins 下面就可以安装完毕,
这样的插件一般是单独的jar文件,我们假定的是C:\Java\MyEclipse6.0为你的MyEclipse的安装目录。
如果发现下载的插件是个ZIP格式而且发现解压缩后带有eclipse子目录,那需要把它直接
复制到C:\Java\MyEclipse6.0覆盖eclipse目录即可完成安装(注意不要删除老的eclipse目录)。
默认情况下Eclipse的代码编辑器是不显示行号的,要显示它可以通过菜单Window -> Preferences…
来打开Preferences设置对话框,几乎所有Eclipse的设置选项都可以在这里找到。
要显示行号,可以展开节点General -> Editors -> Text Editors,在右侧的设置中选中复
选框 Show line numbers即可
查看当前类被哪些类引用
在项目中如果能看到类或者变量,方法被哪些其它的类所引用,将会大大的加快调试或者理解程序
结构的
阅读全文
posted @
2008-09-26 22:38
小顾问
阅读(3318)
推荐(1) 编辑
scrollLeft,scrollTop,滚动代码的总结
摘要:clientHeight
大家对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看
到内容的这个区域的高度。
offsetHeight
IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。
NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。
scrollHeight
IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。
NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。
简单地说
clientHeight 就是透过浏览器看内容的这个区域高度。
NS、FF 认为 offsetHeight 和 scrollHeight 都是网页内容高度,只不过当网页内容高度小于等于
clientHeight 时,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clien
阅读全文
posted @
2008-09-19 17:17
小顾问
阅读(50991)
推荐(5) 编辑
一个中大求职过来人对师弟师妹们一点一点警醒
摘要: 1.步入社会以后,自己的身分就不再是学生,看问题也不能单纯去看其表面,不要相信纸面的宣传也不要相信路边的小道消息。
2.公司聘用你,不是让你去"学习"的,而是去帮他们赚钱的。所以别指望他们象慈善会一样为你考虑。
3.招聘时所有的公司都在做秀,但是程度有所不同,做秀做过头了,我们就称之为"骗"!
我只讨论第三点,如果透过公司招聘的做秀和宣传看其本质。完全相信公司的宣传广告的人是傻子,完全相信所谓同学和路边消息的人是疯子,一切问题最终摆在面前时会变得很简单,数据!!!这才是唯一值得我们相信的东西。
阅读全文
posted @
2008-09-18 09:43
小顾问
阅读(1074)
推荐(0) 编辑
数据库范式
摘要:nf为normal form的缩写
1NF:一个table中的列是不可再分的(即列的原子性)
2NF:一个table中的行是可以唯一标示的,(即table中的行是不可以
重复的)
3NF:一个table中的列不依赖于另一个table中的非主键列
4NF:禁止主键列和非主键列一对多关系不受约束
5NF:将表分割成尽可能小的块,为了排除在表中所有的冗余
阅读全文
posted @
2008-09-16 13:18
小顾问
阅读(1129)
推荐(1) 编辑
用户体验(UserExperience)的一点点总结
摘要:做好用户体验,第二个关键点是要尊重“常识和习惯”。还是举例:几乎所有的国外BBS都是上方导航,而几乎所有的国内BBS都是左侧导航;所以如果你在国内做BBS,在这点上完全没必要去挑战用户的使用习惯。这点一说大家都明白,不展开了。
做好用户体验,第三个关键点是“风格”,也就是差异化。没辙,还是得举例,还是举例网易新闻。网易新闻的改版,先不说是否成功,但绝对是一次有风格的改版;风格太明显了!因此我认为,这个改版,相比sina模式之下亦步亦趋的sohu新闻,网易就高明很多。用这个例子也想说明,即使某个地方用户体验有瑕疵,但如果你坚持一个特别的风格,你还是能让用户访问的。
把握好逻辑、常识和风格,用户体验就不会差到哪里去;但这是一个依靠经验和实践的过程,很多时候只能意会,难于言传!
阅读全文
posted @
2008-09-15 10:49
小顾问
阅读(751)
推荐(0) 编辑
泛型的总结
摘要:泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含了一些基于泛型的集合类,使用泛型集合类可以提供更高的类型安全性,还有更高的性能,避免了非泛型集合的重复的装箱和拆箱。
很多非泛型集合类都有对应的泛型集合类,下面是常用的非泛型集合类以及对应的泛型集合类:
非泛型集合类 泛型集合类
ArrayList List
HashTable DIctionary
Queue Queue
Stack Stack
SortedList SortedList
我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类。我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和拆箱的负担,如果我们操纵的数据类型相对确定的化 用 Dictionary 集合类来存储数据就方便多了,例如我们需要在电子商务网站中存储用户的购物车信息( 商品名,对应的商品个数)时,完全可以用 Di
阅读全文
posted @
2008-09-10 14:40
小顾问
阅读(689)
推荐(0) 编辑
C#的一些关键字的总结
摘要:checked 既是操作符又是语句。
确保编译器运行时,检查整数类型操作或转换时出现的溢出。
const 标识一个可在编译时计算出来的变量值,即一经指派不可修改的值。
delegate 指定一个声明为一种委托类型。委托把方法封装为可调用实体,
能在委托实体中调用。
enum 表示一个已命名常量群集的值类型。
event 允许一个类或对象提供通知的成员,他必须是委托类型。
explicit 一个定义用户自定义转换操作符的操作符,
通常用来将内建类型转换为用户定义类型或反向操作。
必须再转换时调用显示转换操作符。
extern 标识一个将在外部(通常不是c#语言)实现的方法。
finally 定义一个代码块,在程序控制离开try代码快
阅读全文
posted @
2008-09-07 16:14
小顾问
阅读(2865)
推荐(0) 编辑
Socket编程四
摘要:首先服务器方要先启动,并根据请示提供相应服务:(过程如下)
1、打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。
2、等待客户请求到达该端口。
3、接收到重复服务请求,处理该请求并发送应答信号。
4、返回第二步,等待另一客户请求
5、关闭服务器。
客户方:
1、打开一通信通道,并连接到服务器所在主机的特定端口。
2、向服务器发送服务请求报文,等待并接收应答;继续提出请求……
3、请求结束后关闭通信通道并终止。
阅读全文
posted @
2008-09-06 19:24
小顾问
阅读(492)
推荐(0) 编辑
Socket编程三
摘要: IPAddress ip1 = GetServerIp();
IPEndPoint iep = new IPEndPoint(ip1, 8000);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(iep);
byte[] byteMessage=new byte[1000];
while (true)
{
try
{
socket.Listen(5);
Socket clientSocket = socket.Accept();
clientSocket.Receive(byteMessage
阅读全文
posted @
2008-09-05 22:43
小顾问
阅读(415)
推荐(0) 编辑
Socket编程二
摘要: private Thread threadRead; //创建线程,用以侦听端口号,接受信息
private TcpListener tcpListen;//侦听端口号
private bool blistener = true;
private NetworkStream stream;
private StreamReader read;
private TcpClient client;
private delegate void listbox_show(string str);
listbox_show listboxshow;
public Tcpserver()
{
InitializeComponent();
listboxshow = new listbox_show(show);
}
阅读全文
posted @
2008-09-05 22:28
小顾问
阅读(452)
推荐(0) 编辑
socket编程一
摘要: //提供网际协议(IP)地址IPAddress
IPAddress HostIP = IPAddress.Parse("127.0.0.1");
//将网络端点表示为IP地址和端口号
IPEndPoint point;
//定义两个套接字
Socket socket;
Socket acceptedSocket;
//开启接受套接字的服务
private void button1_Click(object sender, EventArgs e)
{
try
{
point = new IPEndPoint(HostIP, Int32.Parse("1571"));
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, Prot
阅读全文
posted @
2008-09-05 22:11
小顾问
阅读(568)
推荐(0) 编辑
异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)
摘要:同步方法调用在程序继续执行之前需要等待同步方法执行完毕返回结果
异步方法则在被调用之后立即返回以便程序在被调用方法完成其任务的同时执行其它操作
.NET框架基类库中有好几种类都可以提供同步和异步的方法调用。
因为同步方法调用会导致程序流程中途等待,所以采用同步方法的情况下往往会导致程序执行的延迟
相比来说,在某些条件下选择异步方法调用就可能更好一些
例如,有的时候程序需要给多个Web服务发出请求,还有远程处理信道(HTTP、TCP)和代理,这时就最好采用异步方法
.NET Framework允许异步调用任何方法,定义与需要调用的方法具有相同签名的委托
CLR将自动为该委托定义添加适当签名的BeginInvoke虚方法和EndInvoke虚方法和Invoke方法。
阅读全文
posted @
2008-09-04 22:01
小顾问
阅读(5503)
推荐(1) 编辑
.NET 线程池编程技术
摘要: 在这篇文章中,我们知道了为什么在我们的服务器应用中需要使用线程池来优化资源和CPU的利用。我们学习了一个线程池是如何实现的,需要考虑多个因素如:CPU使用的百分比,队列请求或者系统的处理器数量。
.NET提供了丰富的线程池的功能以让我们的应用程序使用, 并且与.NET框架的类紧密地集成在一起。这个线程池是高度优化了的,它只需要最少的CPU时间和资源,而且总能适应目标平台。
因为与框架集成在一起,所以框架中的大部分类都提供了使用线程池的内在功能,给开发人员提供了集中管理和监视应用中的线程池的功能。鼓励第三方组件使用线程池,这样它们的客户就可以享受.NET所提供的全部功能。允许执行用户函数,定时器,I/O操作和同步对象。
假如你在开发服务器应用系统,只要有可能就在你的请求处理系统中使用线程池。或者你开发了一个让服务器程序使用的库,那么尽可能提供系统线程池的异步对象处理。
阅读全文
posted @
2008-09-04 18:23
小顾问
阅读(1725)
推荐(0) 编辑