自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

undoner

CODING !!! FIGHTING !!!

  • 博客(48)
  • 资源 (15)
  • 问答 (1)
  • 收藏
  • 关注

翻译 Wikipedia’s 10 most-visited pages in 2012

Wikipedia dominates Google search results. That’s something any amateur googler knows after a few searches for anything mildly popular—from, say, the word “Google” itself to Facebook toFifty Shades

2012-12-30 10:17:42 1601

原创 Java_TCPIP_Socket编程(doc)下载

Java_TCPIP_Socket编程(doc)第 1 章 简介 31.1 计算机网络,分组报文和协议31.2 关于地址61.3 关于名字81.4 客户端和服务器81.5 什么是套接字.91.6 练习10第 2 章 基本套接字 102.1 套接字地址102.2 TCP套接字.172.2.1 TCP客户端.172.2.2 TCP服务器端..222.

2012-12-30 09:38:42 1341

原创 NIO:数据报(UDP)信道

数据报(UDP)信道 Java的NIO包通过DatagramChannel类实现了数据报(UDP)信道。与我们之前看到的其他形式的SelectableChannel一样,DatagramChannel在DatagramSocket上添加了选择和非阻塞行为,以及基于缓冲区的I/O操作能力。 DatagramChannel: 创建,连接和关闭 static DatagramChan

2012-12-30 09:08:22 1526

原创 NIO:Selector 详解

示例程序TCPEchoServerSelector中展示了Selector的基本用法。在此,我们将对其进行更加详细的介绍。Selector: 创建和关闭static Selector open()boolean isOpen()void close()调用Selector的open()工厂方法可以创建一个选择器实例。选择器的状态是"打开"或"关闭"的。创建时选择器的状态是打开的

2012-12-30 09:06:20 1768

转载 《那些年啊,那些事——一个程序员的奋斗史》十四(完结)

125  距离离职交接的一个月时间还剩几天,本来应该是平淡无事的,却没想到最后还是波澜四起。昨天下班前,公司突然停了电。这本是件普通得不能再普通的事情,可没想到过了一会来电了,或许是波峰电压太大,或许是稳压电源做工太糟糕,公司所配的笔记本一闪之后居然再也起不来了!段伏枥想尽办法折腾了一番,最后还是无果:笔记本烧掉了!    烧掉了,还能有啥办法,拿去修呗。不过这笔记本有点特殊,是武总向严董

2012-12-29 09:25:00 2310

原创 NIO:流(TCP)信道详解

流信道有两个变体:SocketChannel和ServerSocketChannel。像其对应的Socket一样,SocketChannel是相互连接的终端进行通信的信道。SocketChannel:创建,连接和关闭static SocketChannel open(SocketAddress remote)static SocketChannel open()boolean co

2012-12-29 09:09:29 1506

原创 NIO:Buffer 详解

如你所见,在NIO中,数据的读写操作始终是与缓冲区相关联的。Channel将数据读入缓冲区,然后我们又从缓冲区访问数据。写数据时,首先将要发送的数据按顺序填入缓冲区。基本上,缓冲区只是一个列表,它的所有元素都是基本数据类型(通常为字节型)。缓冲区是定长的,它不像一些类那样可以扩展容量(例如,List,StringBuffer等)。注意,ByteBuffer是最常用的缓冲区,因为:1)它提供了读写其

2012-12-29 09:06:58 1915

原创 NIO:Selector 类用法

如本章第1节中提到的,Selector类可用于避免使用非阻塞式客户端中很浪费资源的"忙等"方法。例如,考虑一个即时消息服务器。可能有上千个客户端同时连接到了服务器,但在任何时刻都只有非常少量的(甚至可能没有)消息需要读取和分发。这就需要一种方法阻塞等待,直到至少有一个信道可以进行I/O操作,并指出是哪个信道。NIO的选择器就实现了这样的功能。一个Selector实例可以同时检查(如果需要,也可以等

2012-12-29 08:55:37 1818

原创 NIO:与 Buffer 一起使用 Channel

如前文所述,Channel实例代表了一个与设备的连接,通过它可以进行输入输出操作。实际上Channel的基本思想与我们见过的普通套接字非常相似。对于TCP协议,可以使用ServerSocketChannel和SocketChannel。还有一些针对其他设备的其他类型信道(如,FileChannel),尽管我们在后文中不会再提及,这里介绍的大部分内容对于它们同样适用。信道(channel)和套接字(

2012-12-29 08:52:13 1121

原创 NIO:为什么需要 NIO?

基本的Java套接字对于小规模系统可以很好地运行,但当涉及到要同时处理上千个客户端的服务器时,可能就会产生一些问题。其实在第4章已经可以看到一些迹象:由于创建、维护和切换线程需要的系统开销,一客户一线程方式在系统扩展性方面受到了限制。使用线程池可以节省那种系统开销,同时允许实现者利用并行硬件的优势。但对于连接生存期比较长的协议来说,线程池的大小仍然限制了系统可以同时处理的客户端数量。考虑一个在客户

2012-12-29 08:49:47 1189

原创 站长手记(2012.12.14号-2012.12.23号)

2012.12.14号  -  2012.12.23号站长手记------------------------------------------------------------------------ 因朋友提醒及个人爱好,再次燃起了站长之心。通过软件遍历了所有的soft相关的域名,最后注册了域名lsoft.cn,另外购买了php虚拟主机。2012.12.14号-

2012-12-25 15:32:55 1083 1

翻译 Developer Road: The List

This is a list of things I’m doing to become a developer. I hope it can be of use to someone, if not just a constant reminder to myself.1. Start a blogI wish I had done this sooner. If you’re in m

2012-12-25 14:50:34 1229

原创 多任务处理:关闭连接

关闭连接  可能你从没有想过由谁来关闭一个连接。在电话交谈中,任何一方都可以发起结束交谈的过程。这通常是这样的: "好了,我得走了。" "好的,再见。" "再见。" 另一方面,网络协议通常明确指定了由谁来发起"关闭"连接。在回显协议中,见图4.1(a),服务器原原本本地将客户端发送的一切数据回显回去。当客户端完成数据发送后,则调用close()方法。在服务器接收并回

2012-12-25 14:39:21 1046

原创 多任务处理:控制默认行为

控制默认行为 TCP/IP协议的开发者用了大量的时间来考虑协议的默认行为,以满足大部分应用程序的需要。(如果你对此表示怀疑,可以参考RFC1122和1123,它们根据多年的经验对TCP/IP协议的实现的推荐行为进行了详尽的描述。)对于大多数应用程序来说,这些设计都非常适合,然而,"满足所有需求的一种尺寸"能够真正适用于所有场合的情况非常少。前面我们已经看到UDP回显客户端的例子。默认情况下,D

2012-12-25 14:33:30 1126

原创 多任务处理:多接收者(广播和多播)

多接收者 到目前为止,我们的套接字都处理的是两个实体之间的通信,通常是一个服务器和一个客户端。这种一对一的通信方法有时称为单播(unicast)。而对于某些信息,多个接收者都可能对其感兴趣。对于这种情况,我们可以向每个接收者单播一个数据副本,但是这样做效率可能非常低。由于将同样的数据发送了多次,在一个网络连接上单播同一数据的多个副本非常浪费带宽。实际上,如果我们想要以固定频率发送数据,网络连接

2012-12-25 14:29:48 1353

原创 Apache软件基金会项目介绍

HTTP Server: 可以在UNIX,MS-Windows,Macintosh和Netware操作系统下运行的HTTP服务器的项目Ant: 基于Java语言的构建工具,类似于C语言的Make工具。AXIS2:Web服务(SOAP, WSDL)的处理器,基于AXIS1.X重新构建。APR:(也就是:Apache Portable Runtime)C语言实现的便携运行库的管理工具。Beehive:

2012-12-24 11:05:07 1842

原创 多任务处理:阻塞和超时

阻塞和超时 Socket的I/O调用可能会因为多种原因而阻塞。数据输入方法read()和receive()在没有数据可读时会阻塞。TCP套接字的write()方法在没有足够的空间缓存传输的数据时可能阻塞。 ServerSocket 的accept()方法和Socket的构造函数都会阻塞等待,直到连接建立。同时,长的信息往返时间,高错误率的连接和慢速的(或已发生故障的)服务器,都可能导致需要

2012-12-23 09:49:16 1332

原创 多任务处理:管理调度Executor 接口

系统管理调度:Executor接口 在上一节中我们已经看到,将客户服务器协议的细节封装起来(如EchoProtocol.java),就可以通过同一个协议实现来使用不同的"调度"方法(如,TCPEchoServerThread.java和TCPEchoServerThreadPool.java)。实际上,对于调度方法本身来说也是这样。Executor接口(java.util.concurrent

2012-12-23 09:47:03 1008

原创 多任务处理:线程池

线程池 每个新线程都会消耗系统资源:创建一个线程将占用CPU周期,而且每个线程都自己的数据结构(如,栈)也要消耗系统内存。另外,当一个线程阻塞(block)时,JVM将保存其状态,选择另外一个线程运行,并在上下文转换(context switch)时恢复阻塞线程的状态。随着线程数的增加,线程将消耗越来越多的系统资源。这将最终导致系统花费更多的时间来处理上下文转换和线程管理,更少的时间来对连

2012-12-23 09:44:36 1142

原创 多任务处理:一客户一线程

一客户一线程 在一客户一线程(thread-per-client)的服务器中,为每个连接都创建了一个新的线程来处理。服务器循环执行一些任务,在指定端口上侦听连接,反复接收客户端传入的连接请求,并为每个连接创建一个新的线程来对其进行处理。 TCPEchoServerThread.java实现了这种一客户一线程的服务器结构。它与迭代服务器非常相似,也是用一个循环来接收和处理客户端的请求。主要不

2012-12-23 09:42:58 1566

原创 多任务处理:服务器协议

服务器协议 既然我们将要介绍的多任务服务器方法与特定的客户端-服务器协议相互独立,我们希望能够实现一个同时满足两者的协议。EchoProtocol中给出了回显协议的代码。这个类的静态方法handleEchoClient()中封装了对每个客户端的处理过程。除添加了写日志功能(马上会对其介绍)外,这段代码与TCPEchoServer.java中的连接处理部分几乎完全一致。该方法的参数是客户端Soc

2012-12-23 09:41:46 1180

原创 多任务处理:多线程

我们在前面所介绍的基本TCP响应服务器一次只能处理一个客户端的请求。当一个客户端向一个已经被其他客户端占用的服务器发送连接请求时,虽然其在连接建立后即可向服务器端发送数据,服务器端在处理完已有客户端的请求前,却不会对新的客户端作出响应,。这种类型的服务器称为"迭代服务器(iterative server)"。迭代服务器按顺序处理客户端的请求,也就是说在完成了对前一客户端的服务后,才会对下一个客

2012-12-23 09:39:03 1363

原创 搜索引擎三国鼎立:百度 vs 360 vs 搜狗

理论上说,搜索市场不存在平分秋色的可能,不管份额如何接近,最终必然是东风压倒西风,这一点在全球市场都未见过反例。雅虎在日本和台湾独占鳌头,Naver在韩国有压倒性优势,Yandex称霸俄罗斯。谷歌在全球大部分市场占垄断地位,在至少30个国家和地区占有90%以上的份额。当然,在中国大陆把持搜索市场多年的百度也不例外。  事实似乎在不断地暗示,搜索市场要么赢者通吃,要么看别人吃,美国搜索市场的

2012-12-21 21:15:29 2583 1

原创 投票协议:发送和接收

通过流发送消息非常简单,只需要创建消息,调用toWire()方法,添加适当的成帧信息,再写入流。当然,接收消息就要按照相反的顺序执行。这个过程适用于TCP协议,而对于UDP协议,不需要显式地成帧,因为UDP协议中保留了消息的边界信息。为了对发送与接收过程进行展示,我们考虑投票服务的如下几点:1)维护一个候选人ID与其获得选票数的映射,2)记录提交的投票,3)根据其获得的选票数,对查询指定的候选人和

2012-12-20 14:17:56 1102

原创 投票协议:二进制表示方法

二进制表示方法 下面我们将展示另一种对投票协议消息进行编码的方法。与基于文本的格式相反,二进制格式使用固定大小的消息。每条消息由一个特殊字节开始,该字节的最高六位为一个"魔术"值010101。这一点少量的冗余信息为接收者收到适当的投票消息提供了一定程度的保证。该字节的最低两位对两个布尔值进行了编码。消息的第二个字节总是0,第三、第四个字节包含了candidateID值。只有响应消息的最后8

2012-12-20 14:14:18 1090

原创 投票协议:基于文本的表示方法

首先,我们介绍一个用文本方式对消息进行编码的版本。该协议指定使用US-ASCII字符集对文本进行编码。消息的开头是一个所谓的"魔术字符串",即一个字符序列,用于接收者快速将投票协议的消息和网络中随机到来的垃圾消息区分开。投票/查询布尔值被编码成字符形式,'v'表示投票消息,'i'表示查询消息。消息的状态,即是否为服务器的响应,由字符'R'指示。状态标记后面是候选人ID,其后跟的是选票总数,它们都编

2012-12-20 14:13:14 908

原创 投票协议:构建和解析协议消息

我们再看一个简单的例子,对在实现别人定义的协议时可能用到的技术进行了介绍。这个例子程序是一个简单的"投票"协议,如图3.2所示。这里,一个客户端向服务器发送了一个请求消息,消息中包含了一个候选人ID,范围是0至1000。Vote Reques:投票请求, Candidate:候选人,Vote Count:选票总数 程序支持两种请求。一种是查询(inquiry),即向服务器询问给

2012-12-20 14:11:46 1059

原创 通信:成帧与解析

成帧与解析当然,将数据转换成在线路上传输的格式只完成了一半工作,在接收端还必须将接收到的字节序列还原成原始信息。应用程序协议通常处理的是由一组字段组成的离散的信息。成帧(Framing)技术则解决了接收端如何定位消息的首尾位置的问题。无论信息是编码成了文本、多字节二进制数、或是两者的结合,应用程序协议必须指定消息的接收者如何确定何时消息已完整接收。 如果一条完整的消息负载在一个Da

2012-12-19 11:03:11 1825

原创 通信:组合输入输出流

组合输入输出流 Java中与流相关的类可以组合起来从而提供强大的功能。例如,我们可以将一个Socket实例的OutputStream包装在一个BufferedOutputStream实例中,这样可以先将字节暂时缓存在一起,然后再一次全部发送到底层的通信信道中,以提高程序的性能。我们还能再将这个BufferedOutputStream实例包裹在一个DataOutputStream实例中,以实

2012-12-19 10:59:50 844

原创 信息编码:位操作布尔值编码

位操作:布尔值编码 位图(Bitmaps)是对布尔信息进行编码的一种非常紧凑的方式,通常用在协议中。位图的主要思想是整型数据中的每一位都能够对一个布尔值编码--通常是0表示false,1表示true。要操纵位图,你需要了解如何使用Java中的"位操作"方法来设置和清除单独的一位。掩码(mask)是一个的整数值,其中有一位或多位被设为1,其他各位被清空(即,设为0)。在这里我们处理的是int

2012-12-19 10:53:53 1038

原创 信息编码:字符串和文本

字符串和文本 历史悠久的文本(可打印,即可显示的字符串)可能是用来表示信息最常用的方式。文本使用起来非常方便,因为人们习惯于处理各种各样以字符串形式表示的信息,如书本中,报纸中,以及电脑显示器上的信息。因此,只要我们指定如何对要传输的文本进行编码,我们就几乎能发送其他任何类型的数据:先将其表示成文本形式,再对文本进行编码。显然,我们可以将数字和boolean类型的数据表示成String类型

2012-12-19 10:52:07 1056

原创 信息编码:基本整型

信息编码 首先,我们来考虑一下简单数据类型,如int,long,char,String等,是如何通过套接字发送和接收的。从前面章节我们已经知道,传输信息时可以通过套接字将字节信息写入一个OutputStream实例中(该实例已经与一个Socket相关联),或将其封装进一个DatagramPacket实例中(该实例将由DatagramSocket发送)。然而,这些操作所能处理的唯一数据类型是

2012-12-19 10:41:35 1136

原创 基本套接字:UDP 客户端/服务器端

UDP客户端 UDP客户端首先向被动等待联系的服务器端发送一个数据报文。一个典型的UDP客户端主要执行以下三步: 1. 创建一个DatagramSocket实例,可以选择对本地地址和端口号进行设置。2. 使用DatagramSocket类的send()      和 receive()方法来发送和接收DatagramPacket实例,进行通信。 3. 通信完成后

2012-12-18 17:55:47 1843

原创 基本套接字:UDP 套接字

UDP套接字 UDP协议提供了一种不同于TCP协议的端到端服务。实际上UDP协议只实现两个功能:1)在IP协议的基础上添加了另一层地址(端口),2)对数据传输过程中可能产生的数据错误进行了检测,并抛弃已经损坏的数据。由于其简单性,UDP套接字具有一些与我们之前所看到的TCP套接字不同的特征。例如,UDP套接字在使用前不需要进行连接。TCP协议与电话通信相似,而UDP协议则与邮件通信相似:你

2012-12-18 17:49:25 1464

原创 基本套接字:输入输出流

Java中TCP套接字的基本输入输出形式是流(stream)抽象。(Java1.4加入的NIO(New I/O)工具提供了另一种替代的抽象形式,我们将在第5章介绍。)流只是一个简单有序的字节序列。Java的输入流(input streams)支持读取字节,而输出流(outputstreams)则支持写出字节。在我们的TCP服务器和客户端中,每个Socket实例都维护了一个InputStre

2012-12-18 17:45:39 1150

原创 基本套接字:TCP 套接字

TCP套接字 Java为TCP协议提供了两个类:Socket类和ServerSocket类。一个Socket实例代表了TCP连接的一端。一个TCP连接(TCP connection)是一条抽象的双向信道,两端分别由IP地址和端口号确定。在开始通信之前,要建立一个TCP连接,这需要先由客户端TCP向服务器端TCP发送连接请求。ServerSocket实例则监听TCP连接请求,并为每个请求创建

2012-12-18 17:42:23 1697

原创 基本套接字:套接字地址

一个客户端要发起一次通信,首先必须知道运行服务器端程序的主机的IP地址。然后由网络的基础结构利用目标地址(destination address),将客户端发送的信息传递到正确的主机上。在Java中,地址可以由一个字符串来定义,这个字符串可以是数字型的地址(不同版本的IP地址有不同的型式,如192.0.2.27是一个IPv4地址,fe20:12a0::0abc:1234是一个IPv6地址),也

2012-12-18 17:34:04 1340

原创 WordPress建站

一、WordPress介绍  WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。Alexa排行“前100万”的网站中有超过16.7%的网站使用WordPress。到了2011年8月,约22%的新网站采用了WordPress。WordPress是目前因特网上最流行的博客系统。  2003年5月27日,Wor

2012-12-15 20:27:06 2300

原创 数据结构:双向链表list的表头/尾添加数据、链表显示、链表清空

#include//定义节点(数据对象)的接口class Node{ //声明list类为本类的友元类 friend class list;//私有成员 private: int Data; //节点数据 Node *previous; //前趋指针 Node *next; //后

2012-12-10 10:40:16 1432

原创 数据结构:stack栈的初始化、入栈、出栈及显示栈元素

#includeconst int MAX=5; //假定栈中最多保存5个数据//定义名为stack的类,其具有栈功能class stack { //数据成员 float num[MAX]; //存放栈数据的数组 int top; //指示栈顶位置的变量public: //成员函数 void i

2012-12-10 10:37:31 3317

xdoclet-1.2.3.jar和xjavadoc-1.1.jar官方下载

Missing library: xdoclet-1.2.1.jar. Select the home directory for XDoclet. 1.2.1。 xdoclet-1.2.3.jar,xjavadoc-1.1.jar,全套jar包官方资源,包含samples和samples。

2014-04-24

Java_TCPIP_Socket编程(doc)

第 1 章 简介 3 1.1 计算机网络,分组报文和协议3 1.2 关于地址6 1.3 关于名字8 1.4 客户端和服务器8 1.5 什么是套接字.9 1.6 练习10 第 2 章 基本套接字 10 2.1 套接字地址10 2.2 TCP套接字.17 2.2.1 TCP客户端.17 2.2.2 TCP服务器端..22 2.2.3 输入输出流26 2.3 UDP套接字 28 2.3.1 DatagramPacket类.28 2.3.2 UDP客户端 30 2.3.3 UDP服务器端 .36 2.3.4 使用UDP套接字发送和接收信息 .38 2.4 练习40 第 3 章 发送和接收数据41 3.1 信息编码.42 3.1.1 基本整型42 3.1.2 字符串和文本.48 3.1.3 位操作:布尔值编码50 3.2 组合输入输出流51 3.3 成帧与解析52 3.4 Java特定编码58 3.5 构建和解析协议消息59 3.5.1 基于文本的表示方法62 3.5.2 二进制表示方法65 3.5.3 发送和接收67 3.6 结束76 3.7 练习76 第 4 章 进阶 77 4.1 多任务处理77 4.1.1 Java 多线程.78 4.1.2 服务器协议80 4.1.3 一客户一线程.84 4.1.4 线程池86 4.1.5 系统管理调度:Executor接口 89 4.2 阻塞和超时91 4.2.1 accept(),read()和receive() .91 4.2.2 连接和写数据.92 4.2.3 限制每个客户端的时间.92 4.3 多接收者.94 4.3.1 广播.94 4.3.2 多播.95 4.4 控制默认行为100 4.4.1 Keep-Alive100 4.4.2 发送和接收缓存区的大小101 4.4.3 超时..101 4.4.4 地址重用..102 4.4.5 消除缓冲延迟..102 4.4.6 紧急数据..103 4.4.7 关闭后停留103 4.4.8 广播许可..103 4.4.9 通信等级..104 4.4.10 基于性能的协议选择.104 4.5 关闭连接..104 4.6 Applets 111 4.7 结束.112 4.8 练习.112 第 5 章 NIO..112 5.1 为什么需要NIO? ..113 5.2 与Buffer一起使用Channel ..115 5.3 Selector118 5.4 Buffer详解 ..125 5.4.1 Buffer索引125 5.4.2 创建Buffer.126 5.4.3 存储和接收数据128 5.4.4 准备Buffer:clear(),flip(),和rewind().130 5.4.5 压缩Buffer中的数据..132 5.4.6 Buffer透视:duplicate(),slice()等 134 5.4.7 字符编码..136 5.5 流(TCP)信道详解.136 5.6 Selector详解139 5.6.1 在信道中注册..139 5.6.2 选取和识别准备就绪的信道..141 5.6.3 信道附件..143 5.6.4 Selector小结..144 5.7 数据报(UDP)信道 144 5.8 练习.149 1. 使用定长的写缓冲区改写TCPEchoClientNonblocking.java。 149 2.使用Buffer和DatagramChannel编写一个回显客户端。 .149 第 6 章 深入剖析 ..149 6.1 缓冲和TCP.152 6.2 死锁风险..155 6.3 性能相关..158 6.4 TCP套接字的生存周期158 6.4.1 连接..158 6.4.2 关闭TCP连接..164 6.5 解调多路复用揭秘..167 6.6 练习.169

2012-12-29

Java开发技术大全(500个源代码).

代码范例列表 第1章 示例描述:本章演示如何开始使用JDK进行程序的开发。 HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 accumulationByDoWhile.java 用do~while语句写的累加程序 accumulationByFor.java 用for语句写的累加程序 accumulationByWhile.java 用while语句写的累加程序 boolExample.java 演示boolean变量的程序 charExample.java 演示char变量的程序 compare.java 演示前缀、后缀自加之间区别的程序 constCharExample.java 演示转义字符 converseNumber.java 逆向输出数字 daffodilNumber.java 求水仙花数 division.java 演示整除结果 errorCompoundVariable.java 错误使用局部变量示例 factorial.java 求阶乘 Fibonacci.java 求Fiblnacci数列 GcdAndGcm.java 求最大公约数和最小公倍数 errorInit.java 演示变量初始化错误的程序 integerExample.java 演示各种整型变量的使用 isPrime.java 判断素数 leapYearByIf.java 用if语句判断闰年 leapYearByLogical.java 用逻辑表达式判断闰年 lowToUpper.java 小写字母转换成大写字母 lozengeStar.java 输出一个由*组成的菱形 multiplyTable.java 求乘法口诀表 narrowingConversion_1.java 缩减转换引发错误示例1 narrowingConversion_2.java 缩减转换引发错误示例2 notMultipleOfThree.java 把100-200之间不能被3整除的数输出 outputByDoWhile.java 用while循环随机输出数据 outputByWhile.java 用do~while循环随机输出数据 outputMax.java 求两个数中的最大数 overflowExample.java 演示溢出 precedence.java 演示自加运算符的优先级 primeNumber.java 输出100-200之间的所有素数 ranking.java 评定成绩等级 rankingBySwitch.java 用switch语句评定成绩等级 realExample.java 演示浮点数的有效位数 remainder.java 取余运算示例 showBreak.java 利用标号语句跳转出所有循环嵌套 showCount.java 循环计数示例 showDoubleLoop.java 演示双重循环 showDoubleLoopSe.java 改进的双重循环 showOrder_1.java 演示操作数求值顺序示例1 showOrder_2.java 演示操作数求值顺序示例2 sign.java 用条件运算实现符号函数示例 signByIF.java 用if语句实现符号函数示例 triangleStar.java 输出一个由*组成的直角三角形 upperToLowCase.java 大写转换成小写 variableScopeExample.java 变量使用范围示例 第3章 示例描述:本章学习对象和类。 accessMember.java 访问成员变量示例 constructNoPara.java 无参数的构造方法 constructWithPara.java 带参数的构造方法 declareDefault.java 缺省访问权限的使用 declarePrivate.java 私有访问权限的使用 declareProtected.java 保护访问权限的使用 deriveClass.java 子类访问父类变量示例 getLinePara.java 获取命令行参数示例 hasStaticMethod.java 静态成员方法示例 hasStatMember.java 静态成员变量示例 HelloNative.c 用C写的一个小程序 HelloNative.dll 用C生成的DLL文件 HelloNative.exp 用VC编译生成的辅助文件 HelloNative.h 用javah生成的C语言用的头文件 HelloNative.java 准备调用C函数的java文件 HelloNative.lib 用VC编译生成的静态库文件 HelloNative.obj 用VB编译生成的目标文件 HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个实例成员变量 invokeByObject.java 对象实参传递示例程序 invokeByValue.java 传值调用示例程序 invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名问题示例 onlyTest.java 对象传值示例 otherClass.java 从类的外部访问对象的成员 showInstVar.java 演示不同的对象拥有不同的成员变量 showMain.java 演示main方法访问本类成员 showMethod.java 演示如何定义一个方法体 showReturn_1.java return语句示例1 showReturn_2.java return语句示例2 showStaicVar.java 演示静态变量的使用 staticBlock.java 演示静态块的使用 staticVar.java 定义静态变量 supplyTest.java 对象作为静态成员使用示例 trySwap.java 试图交换两个形参的值 useOnlyTest.java 创建多个对象,演示this的作用 useStaticBolck.java 使用静态块 useStVar.java 使用静态成员变量 第4章 示例描述:本章学习继承与多态。 absClass.java 抽象类定义示例 ancestor.java 基类定义示例1 ancestor_1.java 另一个基类定义 anonymousInner.java 匿名内部类 base.java 定义一个基类 BaseColors.java 一个简单的接口 basePoint.java 一个测试用的基类 Colorable.java 一个子接口 ColoredPoint.java 一个测试用子类 common.java 一个公用类 derive.java 一个测试用子类 differ.java 测试静态方法与实例方法之间的区别 forefather.java 一个简单的基类 grandson.java 上面这个类的子类 hasConstructor.java 拥有构造器的类 hasFinalFun.java 拥有最终方法的类 hasRecall.java 可以完成回调功能的类 HasStatic.java 一个简单的拥有静态成员的类 hideMember_1.java 成员隐藏示例1 hideMember_2.java 成员隐藏示例2 hideMember_3.java 成员隐藏示例3 hideMember_4.java 成员隐藏示例4 hideMember_5.java 成员隐藏示例5 implementABS.java 继承一个抽象类 impRecall.java 实现回调函数 inheritConstruct_1.java 构造器继承示例1 inheritConstruct_2.java 构造器继承示例2 inheritConstruct_3.java 构造器继承示例3 inheritConstruct_4.java 构造器继承示例4 inheritConstruct_5.java 构造器继承示例5 inheritConstruct_6.java 构造器继承示例6 inheritor.java 子类覆盖父类示例 inPack.java 包示例 LotsOfColors.java 定义一个子接口 matching.java 重载解析示例 notInPack.java 用前缀引用包中的类 onlyShow.java 一个简单的接口 Outer_1.java 外部类示例1 Outer_2.java 外部类示例2 Outer_3.java 外部类示例3 Outer_4.java 外部类示例4 Outer_5.java 外部类示例5 Outer_6.java 外部类示例6 Outer_7.java 外部类示例7 Outer_8.java 外部类示例8 overrideMember_1.java 成员方法覆盖示例1 overrideMember_2.java 成员方法覆盖示例2 overrideMember_3.java 成员方法覆盖示例3 overrideMember_4.java 成员方法覆盖示例4 overrideMember_5.java 成员方法覆盖示例5 Paintable.java 实现了多个接口的方法 PaintedPoint.java 实现了多个接口的方法 Point.java 一个简单的类 PrintColors.java 一个子接口 RainbowColors.java 一个子接口 realPoint.java 一个子类 second.java 属于一个命名包的类 showDiff.java 演示隐藏与覆盖之间的区别 showSomething.java 测试运行时多态 stupid.java 试图覆盖最终方法的类,它有错误 Sub.java 一个简单的子类 Super.java 一个基类 testOverload.java 测试方法的重载示例1 testOverload_1.java 测试方法的重载示例2 testOverload_2.java 测试方法的重载示例3 testOverload_3.java 测试方法的重载示例4 useConstructor.java 使用构造器 useHideMember_2.java 试图使用隐藏的成员变量 useInner.java 使用内部类 第5章 示例描述:本章学习数组与字符串。 ArrayString.java 字符串数组 assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维数组 traversing.java 遍历一维数组 useStrBuf.java 使用StringBuffer示例 useString.java 使用String示例 YanghuiTri.java 构造和显示杨辉三角 第6章 示例描述:本章学习Java的异常处理。 demoException_1.java 异常示例1 demoException_2.java 异常示例2 demoException_3.java 异常示例3 demoException_4.java 异常示例4 demoException_5.java 异常示例5 divZeroError.java 除零异常 hasCheckException.java 检查型异常 MyException.java 用户自定义异常 myInput.java 输入数据示例 nestException_1.java 异常嵌套示例1 nestException_2.java 异常嵌套示例2 nestException_3.java 异常嵌套示例3 outBoundError.java 下标越界异常 throwException.java 抛出异常示例 throwsException.java 声明抛出异常 useMyException.java 使用自定义异常 第7章 示例描述:本章学习Java的输入和输出。 CopyFile.java 文件复制实例 dir.java 显示目录下的所有文件和目录 encrypt.java 文件加密 FileList.java 自己实现的一个文件名称枚举类 MyDataIO.java 数据输入输出示例 MyFileOutput.java 将键盘读入的文字保存到文件 MyPipedIO.java 管道流示例 MySequenceIn.java 顺序输入流示例 ObjectFileTest.java 序列化对象示例 ReadAndWrite.java 读入和写出数据 ReadAndWriteFile.java 读入数据写出到文件 Student.java 定义一个用来序列化的类 ThreadIn.java 接收数据用的线程类 ThreadOut.java 发送数据用的线程类 TypeFile.java 显示文件内容的类 useScanner.java 用Scanner接收用户的输入 第8章 示例描述:本章学习多线程。 enhanceThread.java 一个自己定义的增强型线程类 ThreadImRunnable.java 继承Runnable接口实现多线程 mulThread.java 创建多个线程对象的类 demoJoin.java 演示使用join()以确保主线程最后结束 clicker.java 一个计数用的线程类 demoPri.java 调用上面这个类设置线程优先级示例 myThread.java 自己定义的一个Thread的子类 mutexThread.java 一个能管理临界区的线程类 demoMutex.java 使用上面这个类来演示线程的互斥 commSource.java 一个共享资源的类 demoSynchrony.java 演示线程的同步 setDataThread.java 设置数据的线程类 readDataThread.java 读取数据的线程类 demoEnhanceThread.java 使用自己定义的线程类示例 producer_consumer.java 演示生产者-消费者线程 consumer.java 消费者线程 producer.java 生产者线程 common.java 公有类 第9章 示例描述:本章学习运行时类型识别。 Candy.java 一个用来测试的简单类 changeFields.java 改变属性值示例 Circle.java 一个用于测试的简单类 DumpMethods.java 使用反射机制来获取类中的方法 getClassName.java 利用反射机制获取类的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors.java 利用反射机制获取构造器列表 listFields.java 利用反射机制获取成员属性列表 listMethods.java 利用反射机制获取成员方法列表 loadClass.java 动态装载一个类 Shape.java 一个用于测试的简单类 useArray1.java 用反射机制使用数组示例1 useArray2.java 用反射机制使用数组示例2 第10章 示例描述:本章学习泛型。 demoBounds.java 演示有界类型 demoForceChange.java 演示强制类型转换 demoGeneric.java 泛型类的使用示例 demoGenIF.java 测试泛型类 demoGenMethods.java 泛型方法示例 demoHerit_1.java 泛型类继承示例1 demoHerit_2.java 泛型类继承示例2 demoRTTI_1.java 泛型类的类型识别示例1 demoRTTI_2.java 泛型类的类型识别示例2 demoWildcard.java 通配符使用示例 demoWipe.java 擦拭示例 derivedGen.java 泛型父类继承示例 derivedNonGen.java 非泛型父类继承示例 foo.java 一个有错误的类 Gen.java 无限界的泛型擦拭 Generic.java 一个简单的泛型类 genMethod.java 一个泛型方法 GenStr.java 有限界的泛型擦拭 MinMax.java 泛型接口示例 MyClass.java 实现一个泛型接口 nonGen.java 以非泛型类为父类 simpGen.java 使用泛型类示例 Stats.java 一个有界类泛型 superGen.java 父类是泛型 twoGen.java 有两个参数的泛型类 第11章 示例描述:本章学习集合。 CompareScore.java 实现比较器接口 demoAlgorithm.java 集合中简单算法示例 demoArrayList.java 链表使用示例 demoBinSearch.java 二分查找示例 demoEnumSet.java 枚举类型示例 demoHashMap.java 哈希映射示例 demoHashSet.java 哈希集合示例 demoSort.java 排序示例 demoTreeMap.java 树映射示例 demoTreeSet.java 树集合示例 demoVector.java 向量使用示例 job.java 模拟操作系统的进程调度 monkey.java 用链表求猴子选大王 myCompare.java 自己实现的比较器接口 reverseString.java 利用栈将字符串逆序输出 scheduling.java 模拟操作系统的作业调度过程 showClothValue.java 根据用户输入型号输出相应的价格 Size.java 一个枚举类 Student.java 用于记录学生信息的类 第12章 示例描述:本章学习类型包装器、自动装箱和元数据。 demoAnno.java 给方法做注释示例 demoAutoBox_1.java 自动装/拆箱机制示例1 demoAutoBox_2.java 自动装/拆箱机制示例2 demoAutoBox_3.java 自动装/拆箱机制示例3 demoInteger.java 整数类型包装器使用示例 demoSingle.java 单成员注释使用示例 DeprecatedClass.java Deprecated注释示例 InProgress.java Documented元注释使用示例 Marker.java 一个被注释的接口 Meta.java 利用反射机制获取方法的注释 MetaAll.java 获取所有注释示例 MyAnno.java 包含了默认值的注释 MyMarker.java 标记注释使用示例 MySingle.java 单成员注释使用示例 OverrideTester.java Override注释示例 SuppressWarningsTester.java SuppressWarnings注释示例 TODO.java Target元注释使用示例 What.java 显示全部注释 第13章 示例描述:本章学习常用工具类。 checkEmail.java 利用正则表达式检验Email的合法性 currentTime_1.java 显示时间示例程序1 currentTime_2.java 显示时间示例程序2 currentTime_3.java 显示时间示例程序3 DateAndTime.java 用Calendar显示当前的日期和时间 demoFmtTime.java 使用时间格式转换符输出日期和时间 demoFormatter.java Formatter简单输出示例 demoGroup.java 组匹配使用示例 demoMathing.java 匹配方法使用示例 demoMemory.java 内存管理示例程序 demoPattern_1.java Pattern使用示例1 demoPattern_2.java Pattern使用示例2 demoRandom.java 产生随机数序列示例 demoReplace.java 替换方法使用示例 demoRound.java 取整函数使用示例 elapsed.java 计算程序运行时间 exitJVM.java 从子线程中退出虚拟机 getPI.java 利用随机数求π值 progPI.java 利用反正切函数求π的值 runNotepad.java 启动记事本 showCalendar.java 用GregorianCalendar实现一个万年历 showProperties.java 获取环境属性 textToTime.java 从文本串创建日期对象 useLog.java 利用换底公式求任意对数值 第14章 示例描述:本章学习GUI程序设计。 addNodeInJTree.java 在JTree中增加节点示例 AlarmClock.java 小闹钟程序 AWTComponents.htm 为显示AWT组件而编制的网页文件 AWTComponents.java AWT组件示例 AWTFrame.java 用AWT编写的一个简单窗口 CheckAchromatopsiat.java 色盲检测程序 demoBorderLayout.java 边框布局使用示例 demoCardLayout.java 卡片布局使用示例 demoGridBagLayout.java 增强网格布局使用示例 demoGridLayout.java 网格布局使用示例 demoJApplet.htm 运行JApplet的网页文件 demoJApplet.java JApplet使用示例 demoJButton.java 按钮使用示例 demoJCheckbox.java 复选框使用示例 demoJComboBox.java 组合框使用示例 demoJDialog.java 对话框使用示例 demoJFrame.java JFrame简单使用示例 demoJLabel_1.java 图像标签使用示例 demoJLabel_2.java 改变标签上鼠标形状示例 demoJList.java 列表框使用 demoJMenu.java 菜单使用示例 demoJPanel.java 面板使用简单示例 demoJRadioButton.java 单选按钮使用示例 demoJScrollPane_1.java 在JScrollPane创建时添加组件示例 demoJScrollPane_2.java 通过add()方法添加组件示例 demoJSplitPane_1.java 分隔板简单示例1 demoJSplitPane_2.java 分隔板简单示例2 demoJTabbedPane.java 选项板使用示例 demoJTable_1.java 表格使用示例1 demoJTable_2.java 表格使用示例2 demoJTable_3.java 表格使用示例3 demoJTable_4.java 表格使用示例4 demoJTable_5.java 表格使用示例5 demoJText.java 文本框和密码框使用示例 demoJTextArea.java 文本区使用示例 demoJToolBar.java 工具栏使用示例 demoJTree.java 创建JTree示例 ExampleFileFilter.java Sun公司提供的一个文件名过滤器 findDialog.java 查找对话框 fontDialog.java 字体选择对话框 MyTableModel.java 本类实现了一个表格用的模型,取代默认的模型 Notebook.java 记事本 painting_1.java 在面板上画出简单图形示例1 painting_2.java 在面板上画出图形示例2 reMulEvent.java 响应单击按钮事件 showTriDialog.java 用系统预定义的对话框 本章下面还有一些编程要用到的图片和声音文件,不一一列出。 第15章 示例描述:本章学习多媒体程序设计。 building.java 调用另外一个houseCanvas类画出一栋房子 CombinerCanvas.java 编写自己的画布,所要显示的图片在此画布上显示 CombinPic.java 合成两幅图片 DrawArcs.java 画椭圆和圆弧示例 DrawLines.java 画直线示例 DrawPoly.java 画多边形示例 DrawRects.java 画矩形示例 fadeInOut.java 淡入淡出效果示例 FillArea.java 填充图形示例 FontsCanvas.java 自行管理字体的画布 GetFonts.java 获取系统中安装的字体示例 GrayFilter.java 自己实现的GrayFilter类 GrayModel.java 实现一个具备灰度变换功能的Model houseCanvas.java 用直线画出一栋房子 illumination.java 光照特效示例 LightingLiteral.java 字体特效显示示例 ManageFonts.java 自行管理字体示例 mixing.java 显示色彩混合效果 playAudio.java 在Application中播放声音文件 playMP3.java 增强的声音播放文件 playMusic.htm 可以播放背景音乐的一个网页 playMusic.java 利用AudioClip播放声音文件 playVideo.java 媒体播放器编写示例 ResizeOval.java 缩放图形示例 ShowFonts.java 建和使用字体示例 SoundBase.java 将Java Sound API封装在一个线程中 TransparencyExample.java 为实现色彩混合效果而定义的画布 viewPic.java 用标签显示图像示例 本章下面还有一些编程要用到的图片和声音文件,不一一列出 第17章 示例描述:本章学习数据库程序设计。 AddressList.java 学生信息管理系统实例 deleteData.java 从数据库中删除记录 FirstExample.mdb 本章用到的数据库文件 insertData.java 向数据库中添加新数据 queryData.java 查询数据示例 updateData.java 修改数据示例 第18章 示例描述:本章学习C/S网络程序设计。 chatClient.java 聊天客户端程序 chatServer.java 聊天服务端程序 Client.java 一个简单的客户端程序 DownFile.java 文件下载示例 GetHostName.java 根据IP查找主机名 GetIP.java 根据域名查找IP地址 GetMyIP.java 获取本机IP地址 MultiServer.java 可以响应多个客户端的服务程序 myBrowser.java 一个简单的浏览器 Server.java 一个简单的服务端程序 ServerThread.java 一个服务端的线程类 UDPChat.java 用UDP实现的聊天程序示例 第19章 示例描述:本章学习JSP程序设计。本章所有文件均已经按照Tomcat网站部署的要求放置在各自的目录下,然后打包成ZIP文件。读者只需要解包后放置在某一分区中,然后在Tomcat中配置好入口就可以使用。 下面的文件均放置在ROOT目录下面 ArbitraryObject.java 实现一个事件监听者接口的类 calendar.jsp 用JSP实现的日历 count.txt 站点计数器保存的数据文件 counter.jsp 用JSP实现的计数器 faq.java 连接数据库用的JavaBean leaveword.htm 留言板的主页面 Model.java 自己定义的事件源类 ModelChangedListener.java 自己定义的一个事件监听者接口 MouseMovedExampleEvent.java 事件状态对象示例 MouseMovedExampleListener.java 鼠标事件监听者接口与事件监听者示例 OurButtonCustomizer.java 实现一个“按钮”Beans的定制器 query.jsp 数据库查询程序 saveword.java 用于保存记录的JavaBean saveword.jsp 后台保存数据的JSP文件 viewword.jsp 查看留言的JSP页面 WeekDayBeanInfo.java 实现BeanInfo接口示例 WeekDayEditor.java 实现属性编辑器接口 下面的文件均存放在chat目录下,是聊天室的组成文件。 chatreg.java 用户注册用到的JavaBean文件 chatreg.jsp 用户注册的前台JSP文件 chatregcof.jsp 用户注册检查JSP文件 chatroom.jsp 聊天室的主页面 confirm.jsp 检查登录是否正确的JSP文件 in.jsp 即将进入聊天室前的提示页面 listuser.jsp 显示聊天室内的所有用户名的JSP文件 logout.jsp 清除用户的相关信息 netchat.jsp 用户进入聊天室的界面文件 showmsg.jsp 显示各个用户所说的话 talk.jsp 用户聊天用的JSP文件 第21章 示例描述:本章是一个IM软件的完整代码。 ChatFrame.java 聊天用的主界面程序 ClientManageFrame.java 是好友管理窗口,也是客户端程序的主窗口 DBConnection.java 连接数据库用的JavaBean FindUserDlg.java 查找好友对话框 FindUserInfo.java 显示用户基本信息 FriendLabel.java 在list列表中显示用户的头像和字符信息 Login.java 用户登录界面 LoginUser.java 定时器的任务类,用于定时获取上线的用户的信息 MyInfo_AboutBox.java 显示作者信息 ReceiveOthersDialog.java 当用户收到陌生人的消息时,这个类向用户提示 RegisterDialog.java 用户注册面板 Server.java 提供各种服务的类 ServerFrame.java 服务器端的主界面 ServerThread.java 与客户端通讯的线程 SetCenter.java 将窗口设置在屏幕中央的类 showTimeTask.java 刷新时间的类 StartServer.java 启动服务器的主类 UpdateDialog.java 更新用户信息的对话框 UserInfo.java 获取用户信息的类 UserInfoBean.java 保存用户信息的一个JavaBean

2012-12-02

Java socket多线程聊天系统(myeclipse)

用归档压缩包,用myeclipse直接导入即可。 主程序:SFace.java和Face.java 服务器端操作说明: 1、输入本地IP和聊天通信的端口,然后建立服务器; 2、消息接收框里有客户上线与下线的提示; 3、点击“发送信息“或者按”Ctrl+Enter“快捷键向每个在线用户发送服务器消息; 客户端操作说明: 1、点击”连接“弹出”连接服务器“对话框,分别填写服务器的地址(IP)、通信端口、用户登录的名字(用户ID不能为空); 2、点击”发送信息“或按”Ctrl+Enter“发送信息(发送的信息内容不能为空); 3、点击”清屏“按钮将接收信息框里面的信息全部清除; 4、点击”发送文件“弹出打开文件对话框,可以选择要发送的*.txt文件; 5、双击”在线用户”列表框里面的“用户名“可以进行”悄悄话”私人聊天或者传送文件同时激活“私聊”选择框(不可以双击自己的用户名和自己私聊); 6、“聊天对象”提示用户此时的通信对象; 7、当“私聊”处于激活,点击此选择框,通信对象又变成“所有人”; 8、当有文件传过来的时候,程序自动弹出保存文件对话框; 9、从在线用户列表框中可以知道“用户在线”、“用户上线”和“用户下线”;

2012-10-18

WFA登陆程序(vs2010+oracle10g).rar

WFA登陆程序,登陆、注册、修改、删除用户等功能。 (visual studio 2010+oracle 10g)

2012-10-12

MVC在线RSS阅读器(ASP.NET 4.0)

MVC在线RSS阅读器(ASP.NET 4.0) 包含数据库文件 MicroSoft SqlServer 2008 + VisualStudio 2010

2012-10-07

MVC网上书店(ASP.NET 4.0)

MVC网上书店(ASP.NET 4.0) 包含数据库文件 MicroSoft SqlServer 2008 + VisualStudio 2010

2012-10-07

浙工大研究生考试c++历年真题(2008-2012)

浙江工业大学研究生考试计算机学院c++(2008-2012)考研真题

2012-10-07

ASP.NET 4.0网站开发与项目实战PPT

ASP.NET 4.0网站开发与项目实战PPT,较全面的讲述了ASP.NET的相关技术细节,并辅以项目实战的方式学习ASP.NET技术。

2012-10-07

MVC案例解析与传统开发的源代码比较

MVC案例解析与传统模式开发的比较,提供源代码进行大家研究学习,适合初学者学习!@

2012-03-14

Smartupload文件上传的详细用法及源代码

Smartupload文件上传的详细用法及源代码

2012-03-14

linux试卷(5套题集成-仅供参考试题类型)

linux试卷 5套题 linux试卷(5套题集成-仅供参考试题类型)

2009-06-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除