- 博客(48)
- 资源 (70)
- 收藏
- 关注
原创 Careerup Top 150 Question(1)
Implement an algorithm todetermine if a string has all unique characters. What if you can not useadditional data structures? 不使用额外的数据结构,实现一个算法用来判断一个字符串是否只有唯一的字符串组成。
2013-07-10 23:31:16
1517
原创 《Java TCP/IP Socket编程》读书笔记(16)
第五章 NIO5.1我们为什么需要NIO多线程环境下对共享状态进行同步访问,增加了系统调度和切换上下文的开销,程序员对这些开销无法控制。阻塞等待。我们需要一种可以一次轮询一组客户端,以查找那个客户端需要服务。在NIO中,一个Channel代表一个可以轮询的I/O目标,Channel能够注册一个Selector实例。Selector的select可以查找“在当前一组信
2013-02-02 22:28:18
1943
1
原创 《Java TCP/IP Socket编程》读书笔记(15)
4.4 控制默认的行为4.4.1 Keep-alive如果一段时间内没有数据交换,通信的每个终端可能都会怀疑对方是否还处于活跃状态。TCP协议提供了一种keep-alive的机制,该机制在经过一段不活动时间后,将向另一个终端发送一个探测消息。如果另一个终端还出于活跃状态,它将回复一个确认消息。如果经过几次尝试后依然没有收到另一终端的确认消息,则终止发送探测信息,关闭套接字,并在下一
2013-01-30 23:29:17
2726
原创 《Java TCP/IP Socket编程》读书笔记(14)
4.2 阻塞和超时Socket的I/O调用可能会因为多种原因而阻塞。数据输入方法read()和receive()在没有数据可读时会阻塞。TCP套接字的write()方法在没有足够的空间缓存传输的数据时可能阻塞。 4.2.1 accept(),read()和receive()对于这些方法,我们可以使用Socket类、ServerSocket类和DatagramSocket
2013-01-30 23:23:01
1800
原创 《Java TCP/IP Socket编程》读书笔记(13)
4.1.5 系统管理调度——Executor接口Executor接口(java.util.concurrent包的一部分)就代表了一个根据某种策略来执行Runnable实例的对象,其中可能包括了排队和调度的细节,或如何选择要执行的任务。Executor接口只定义了一个方法:interface Executor {void execute(Runnable task);}Ja
2013-01-30 23:18:27
1541
原创 《Java TCP/IP Socket编程》读书笔记(12)
4.1.4 线程池每个新线程都会消耗系统资源:创建一个线程将占用CPU周期,而且每个线程都自己的数据结构(如,栈)也要消耗系统内存。另外,当一个线程阻塞(block)时,JVM将保存其状态,选择另外一个线程运行,并在上下文转换(context switch)时恢复阻塞线程的状态。随着线程数的增加,线程将消耗越来越多的系统资源。这将最终导致系统花费更多的时间来处理上下文转换和线程管理,更少的
2013-01-30 23:13:57
1379
原创 《Java TCP/IP Socket编程》读书笔记(11)
第四章 进阶4.1 多任务处理迭代服务器:当一个客户端向一个已经被其他客户端占用的服务器发送连接请求时,虽然其在连接建立后即可向服务器端发送数据,服务器端在处理完已有客户端的请求前,却不会对新的客户端作出响应。并行服务器:可以单独处理没一个连接,且不会产生干扰。并行服务器分为两种:一客户一线程和线程池。4.1.1 Java多线程Java提供了两种在一个新线程中执行任务的
2013-01-30 23:10:24
1407
1
原创 《Java TCP/IP Socket编程》读书笔记(10)
3.5.3.3 基于文本编解码和UDP套接字客户端package com.suifeng.tcpip.chapter3.vote;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;
2013-01-28 23:08:29
1484
原创 《Java TCP/IP Socket编程》读书笔记(9)
3.5.3 发送和接收下面是一个投票服务器用到的服务,用于处理服务器端接收到的投票信息的处理。package com.suifeng.tcpip.chapter3.vote;import java.util.HashMap;import java.util.Map;/** * 服务器端对获取的投票信息进行处理 * @author Administrator * */
2013-01-28 23:03:21
1262
原创 《Java TCP/IP Socket编程》读书笔记(8)
3.5 构建和解析消息协议下面看一个简单的例子。程序支持两种请求。一种是查询(inquiry),即向服务器询问给定候选人当前获得的投票总数。服务器发回一个响应消息,包含了原来的候选人ID和该候选人当前(查询请求收到时)获得的选票总数。另一种是投票(voting)请求,即向指定候选人投一票。服务器对这种请求也发回响应消息,包含了候选人ID和其获得的选票数(包括了刚投的一票)。下面是投
2013-01-28 22:52:30
1357
原创 《Java TCP/IP Socket编程》读书笔记(6)
3.2 组合输入输出流Java中与流相关的类可以组合起来从而提供强大的功能。我们可以将一个Socket实例的OutputStream包装在一个BufferedOutputStream实例中,这样可以先将字节暂时缓存在一起,然后再一次全部发送到底层的通信信道中,以提高程序的性能。我们还能再将这个BufferedOutputStream实例包裹在一个DataOutputStream实例中,以实现发
2013-01-27 23:31:08
1652
原创 《Java TCP/IP Socket编程》读书笔记(5)
3.1 信息编码3.1.1 基本整型TCP和UDP套接字使我们能够发送和接收字节序列(数组),及范围在0~255之间的整数。下面考虑发送一个byte型整数、一个short型整数、一个int型整数和一个long型整数,这四个类型在Java中依次用1、2、4、8个字节进行标示。1. 发送顺序,可以由低位到高位发送(little-endian),也可以由高位到低位发送
2013-01-27 23:21:32
1559
原创 《Java TCP/IP Socket编程》读书笔记(4)
2.3 UDP套接字UDP协议提供了一种不同于TCP协议的端对端服务,实际上UDP只实现了两个功能:1)、 在IP协议的基础上添加了另一层地址(端口)2)、对数据传输过程中可能产生的错误进行了检测,并抛弃了已损坏的数据。UDP套接字与TCP套接字的不同点:1. UDP协议在使用前不需要进行连接。2. UDP协议保存边界信息。2.3.1 UDP客户端UDP客户
2013-01-26 23:25:25
1652
原创 《Java TCP/IP Socket编程》读书笔记(3)
2.2 TCP套接字2.2.1 TCP客户端TCP客户端的步骤1.创建一个Socket实例:构造器向指定的远程主机和端口建立一个TCP连接。2. 通过套接字的输入输出流(I/O streams)进行通信:一个Socket连接实例包括一个InputStream和一个OutputStream,它们的用法同于其他Java输入输出流。3. 使用S
2013-01-26 23:16:26
4614
原创 《Java TCP/IP Socket编程》读书笔记(2)
2.1 套接字地址1. 在Java中,地址可以是IP地址也可以是主机名。下面是一个Java中地址的例子package com.suifeng.tcpip.chapter2;import java.net.Inet4Address;import java.net.Inet6Address;import java.net.InetAddress;import java.net
2013-01-26 23:07:13
2162
1
原创 《Java TCP/IP Socket编程》读书笔记(1)
1.1 计算机网络、协议和报文计算机网络是由一组通过通信信道相互连接的机器组成。我们把这些机器成为主机和路由器。1、主机是指运行应用程序的计算机,这些应用程序包括网络浏览器、即时通信代理或者文件共享程序。2、路由器是指将信息从一个通信信道传递或者转发到另一个通信信道。3、通信信道指将字节序列从一个主机传递到另一个主机的手段。4、信息是指计算机创建和解释的字节序列。协议是
2013-01-26 22:57:49
3969
翻译 使用JavaMail发送邮件(Gmail)
以Gmail服务器为例输入正确的用户名和密码,然后输入有效的邮箱地址即可实现发送。代码已经验证通过。下面是源码package com.suifeng.mail;import java.util.Properties;import javax.mail.Message;import javax.mail.MessagingException;impor
2012-11-08 22:37:39
9064
3
原创 HTML5游戏开发---弹跳球
本游戏涉及的知识点有: 1.绘制球、图像和渐变 2.定时事件和碰撞检测第一个版本 form { width:330px; margin:20px; background-color:brown; padding:20px; } // 盒子左上角位置 var boxX = 20; var boxY = 30;
2012-11-03 16:19:43
1897
原创 HTML5 游戏开发---骰子游戏
骰子游戏 // 画布大小 var canvasWidth = 400; var canvasHeight = 300; // 骰子大小 var diceWidth = 100; var diceHeight = 100; // 骰子位置 var diceX = 50; var diceY = 50;
2012-11-01 23:44:23
3578
原创 快速排序算法的Java实现
package com.suifeng.sort;public class QuickSort { public static void main(String[] args) { int[] nums = { 49, 38, 65, 97, 76, 13, 27 }; System.out.println("=============排序前============="); //
2012-09-10 22:44:32
525
翻译 命令模式
原帖详见:http://javapapers.com/design-patterns/command-design-pattern/ 命令设计模式是用于将请求封装成一个对象,并将其传递给一个调用者,在这里调用者并不知道怎样服务于这个请求,但是使用相应的命令可以执行响应的动作。为了理解命令设计模式,我们应该理解相关的术语,例如客户端代码、命令、命令实现、调用者、接收者。
2012-09-03 22:55:58
751
原创 《Struts2技术内幕》读书笔记一
前段时间买了一本《Struts2技术内幕》,这本书绝对值得一读,从更高的角度、更深的层次了解Struts2的每一个角落。建议每一个正在使用Struts2的同学好好研究一本书,知道怎么用并不是我们的目的。 随手把重要的知识点记录一下,目前只包含了前五章的内容:WEB开发浅谈、Struts2概览、Struts2涉及的设计模式和XWork容器。 直接把内容贴到这个
2012-08-27 23:54:14
804
翻译 线程安全和ThreadLocal入门
原帖地址:http://javapapers.com/core-java/threadlocal/尝试翻译,欢迎批评指正。 原文地址:http://javapapers.com/core-java/threadlocal/ThreadLocal的核心概念是没一个线程可以通过get或者set方法访问它自己的、独立初始化的变量的副本。1. ThreadLocal介绍
2012-08-27 23:34:53
1750
翻译 Spring 依赖注入(DI)
最近在了解依赖注入的一些东西,这篇文章写得通俗易懂,英文不是很难。如果想查看原文,请点击:http://javapapers.com/spring/dependency-injection-di-with-spring/下面是我尝试翻译的,仅供参考,欢迎拍砖。博客没有提供上传附件的功能,可以到http://download.csdn.net/detail/licl19870
2012-08-19 10:12:34
591
原创 《Flex企业应用开发实战》学习笔记之企业应用开发入门
最近在看《Flex企业应用开发实战》这本书,里边内容写得相当好,以笔记的形式记录下来和大家分享。(如有错误,请及时提出,不胜感激)如需要源码或者PDF格式文件可以给我留言或者发邮件。 第一章 Flex企业应用开发入门1.1 B/S企业应用开发入门以前WEB开发那些很恶心的东西,不详述1.2 噩梦结束,新时代来临Flex来了,还讲了作者的一个项目的实际应用。1.3 Fle
2011-10-22 21:08:56
1838
1
原创 Flex权威指南3学习笔记之二------简单控件的使用
<br />1.插入图片<br />在名为"product"的VBox中,找到Label“Milk”,在其下面插入如下代码:<br /><mx:Image source="assets/dairy_milk.jpg" scaleContent="true"/><br />这样就可以把一张图片显示出来了。<br />另外,还可以如下添加一张图片:<br /> <br /> <br /><mx:Image source="@Embed('assets/dairy_milk.jpg')" scaleContent
2010-07-18 11:49:00
1099
3
原创 Flex权威指南3学习笔记之一------界面知识(四)
<br />运用视图实现界面的切换<br /> <br />1.在DashBoard.mxml中,添加一个ApplicationBar,并在其中添加四个LinkButton用于切换<br /><mx:ApplicationControlBar dock="true"> <mx:LinkButton label="All"> <mx:LinkButton label="Sales"> <mx:LinkButton label="Categories"> <mx:LinkButton l
2010-07-17 11:16:00
770
原创 Flex权威指南3学习笔记之一------界面知识(三)
<br />使用视图状态<br /> <br /> <br /><br />1.新建一个显示购物车的视图状态<br /> <br /><mx:State name="cartView"> <mx:SetProperty target="{products}" name="width" value="0"/> <mx:SetProperty target="{products}" name="height" value="0"/> <mx:SetProperty target="{cartBox}
2010-07-17 11:07:00
537
原创 Flex权威指南3学习笔记之一------界面知识(二)
使用基于条件的约束的布局1.在viewCart按钮和checkOut按钮添加分别添加属性“right="90"”、“right="10"”,删除x属性,y属性值设为0,如下所示:两个按钮将会靠右显示,不用将坐标定死。2.另外 版权标签如下显示显示效果如下所示:3.在第一个VBox下再添加一个VBox,用于显示购物车信息
2010-07-17 10:57:00
895
原创 Flex权威指南3学习笔记之一------界面知识(一)
最近在学习flex,正在看《Flex 权威指南》,把一些重要的知识记录下来,刚入门的可以看一下,高手就不用看了 呵呵一、容器的相关知识常见容器及布局规则容器规则VBox子元素垂直排列,每个子元素在前一个元素的下方HBox子元素水平排列,每个子元素在前一个元素的右侧Canvas在制定的位置绘制子元素,(x,y)控制其坐标Application使用layout属性,可以获得类似前三种布局方式Tile将子元素排成一个或多个横行或者竖行,每个Tile的单元格时相同的PanelBox容器的子类,可以获得VBox、HB
2010-07-17 10:45:00
936
原创 Flex入门之增强型约束条件
<br />增强型约束条件主要用于控件排列时相对于兄弟元素的位置。增强型约束条件先将容器的空间分割为可以用来定位其他组件的行和列,然后将组件约束在哪些行和列上。在Flex中,可以使用ConstrantRow定义水平区域,ConstrantColumn定义垂直区域。<br />下面看代码:<br /><?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="
2010-07-08 21:10:00
783
转载 Java IO框架
可从IO的类层次,IO框架的设计模式来论述。 总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来,在IO读入之后经过JVM处理,把字节流转换成字符流。而字符流的字符采用哪种字符编码实现由JVM默认编码决定。 而每个流都分输入和输出,所以,总体来说,IO有四个顶层类: InputStream OutputStream Reader Writer 而作为机器级别于机器直接交互的则是字
2010-05-18 15:40:00
7227
原创 堆和栈究竟有什么区别?
堆和栈究竟有什么区别? 主要的区别由以下几点: 1、管理方式不同; 2、空间大小不同; 3、能否产生碎片不同; 4、生长方向不同; 5、分配方式不同; 6、分配效率不同; 管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。 空间大小:一般来讲在32位系统下,堆内存可以达到4G的空间,从这
2010-05-11 17:24:00
707
原创 一个Java的字符串常用类
package com.tienway.util;import java.util.ArrayList;public class StringUtil{ public static String ContextType1ToType2(String Type1Context) { if (Type1Context== null
2010-05-06 17:29:00
575
转载 javascript操作xml生成树形菜单
这个效果应该不算什么稀奇,网上也有现成的代码,我这个也没什么特别的地方,只是因为我自己写的,也算是为学习DOM后一个练习;在IE下测试通过; 实现效果是这样的:读取XML文档;采用递归生成无限级的树形菜单;能够响应鼠标事件,展开与拆叠子级菜单;首先是生成一个XML文档,我用的是XML Spy的编辑器;
2010-04-14 19:43:00
1377
原创 C#实现Access导入导出Excel
一、Access从Excel中导入数据1.用到的Excel表的格式及内容 实现 OleDbConnection con = new OleDbConnection(); try { OpenFileDialog openFile = new OpenFileDialog();//打开文件对话框。
2010-01-27 11:18:00
18525
5
原创 HeadFirst 设计模式一及其c#实现
设计原则一:找出应用中可能需要变化之处,把他们独立出来,不要把他们和不需变化的代码混在一起。这样可以很容易的改动或者封装需要变化的部分;设计原则二:针对接口编程;而不是针对实现编程。 下边是c#代码的实现: public interface IFlyBehavior { void Fly(); } public interfac
2009-11-13 20:59:00
1271
原创 Ajax 入门(一)
Microsoft Ajax Library命名空间客户端命名空间 描述Global JavaScript内部类的扩展,如Array、Boolean、string、Error、Number和ObjectSys 根命名空间,它是在客户端与.net Framework中的System命名空间等同的类,这个命名空间包括一些基础类,如Application和StringBuilder.,
2009-10-17 10:38:00
475
转载 螺旋队列最优算法的解法
今天下了本《程序员面试宝典》,看到有个螺旋队列的题目,发现解法没有注释,好像还有点复杂,索性自己重写了一个,发现比书上的精炼不少,我估计应该是最优解法了.21 22 23 24 ... 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15
2009-10-16 09:45:00
643
原创 C#中ReferenceEquals和Equals的区别
ReferenceEquals()判断两个字符串是否指向相同的内存地址;Equals,先判断两个字符串有相同的内存位置,则两个字符串相等;否则逐字符比较两个字符串,判断是否相等下面举一个例子看一下: string peom1 = "Kubla Khan"; string peom2 = "Kubla Khan"; string
2009-10-15 18:53:00
2435
3
asp.net文件管理、论坛管理、聊天室源代码
2009-05-11
asp.net注册、登录、投票、计数器源代码
2009-05-11
ASP.NET 3.5 开发大全
2009-04-15
design-patterns-for-humans设计模式中文翻译版
2018-03-29
Struts2 技术内幕读书笔记(1)
2012-08-27
Hibernate教程
2010-11-22
ActionScript3 cookbook英文版
2010-07-26
js实现世界各地时间源代码
2010-03-28
js实现万年历源代码
2010-03-28
asp.net 大文件上传
2009-11-05
C#24个公共类集锦
2009-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人