各种语言
文章平均质量分 72
liuzhushiqiang
这个作者很懒,什么都没留下…
展开
-
C/C++ sort函数的用法
(1)sort函数的用法做ACM题的时候,排序是一种经常要用到的操作。如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错。STL里面有个sort函数,可以直接对数组排序,复杂度为n*log2(n)。使用这个函数,需要包含头文件。这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排转载 2013-05-17 16:06:04 · 865 阅读 · 0 评论 -
JSP与SERVLET的关系
综述:Java Servlet是JSP技术的基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。现在许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器,也可以通过附件的应用服务器和模块来支持Servlet,这得益于Java的跨平台特性。另外,由于Servlet内部以线程方式提供提供服务,不必对于每个请求都启动一个进程,并且利用多线程机转载 2013-09-18 22:31:14 · 3710 阅读 · 0 评论 -
Java实现MD5加密类
package test.md5;import java.security.MessageDigest;public class MD5Util { public final static String MD5(String s) { char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A转载 2013-10-05 20:27:02 · 658 阅读 · 0 评论 -
ArrayList和Vector的区别
ArrayList和Vector功能类似。整体上ArrayList是Vector的“裸奔新版”Vector从Java 1.0起就存在,ArrayList从Java 1.2起才存在,较新。所以Vector在JavaME、Card等各种微小版本都可以使用,而ArrayList不能ArrayList不具备线程同步的安全性,但速度较快,所以叫裸奔。Vector具备线程安全。转载自:http转载 2013-10-06 10:49:58 · 517 阅读 · 0 评论 -
JAVA里面如何让一个线程死亡或结束
这问题也是很常见的问题,自打 stop不推荐使用后,我们还有别的可以选择的方法吗?设置一个标志,让其自动return最安全。 /** * JAVA里面如何使用一个线程死亡或结束. * @author 赵学庆,Java世纪网(java2000.net) * */public class T { public static void main(String[]转载 2013-09-20 10:14:15 · 1032 阅读 · 0 评论 -
odbc数据源的意义
主要是方便管理1 你肯定要链接数据库2 那么你肯定要用户名和密码3 正式的数据库和应用服务器应该是单独的人员管理,而不是开发人员4 密码会定期修改5 如果链接数据库是各自书写代码和配置,则运行环境的密码修改将会是一个噩梦,一不小心就忘记一个6 所以,大家全部到一个数据源那里获取连接。管理员只需要修改数据源的配置,而无需修改应用的配置7 如果数据库的地址变更,则同样不会影转载 2013-10-05 20:40:21 · 929 阅读 · 0 评论 -
Java Socket 通信中传递Object对象注意的问题
Java Socket通信中传递自定义对象时,出现了java.lang.ClassNotFoundException网上查了半天,原因是 客户端和服务端传递的对象所在包的路径不一致,也有人说必须添加serialVersionUID,并且一致,测试后发现不用添加也可以通信。转载自:http://blog.csdn.net/mimitracely/article转载 2013-10-07 19:36:16 · 819 阅读 · 0 评论 -
做出漂亮的Java界面--substance.jar的使用
一直以来都认为用Swing做出来的程序太难看了,但是又无可奈何,但现在好了,有了substance.jar,只需要在你的程序中添加几行简单的代码,就可以做出非常漂亮的界面来,如果不是亲眼看到,你也许不敢相信这是真的. 下面我就来介绍一下substance.jar的使用.1.下载substance.jar 现在最新的版本已经出到4.3了,而且更新很快 下载地址:http转载 2013-09-23 11:02:42 · 2070 阅读 · 0 评论 -
异步IO
异步IO的概念和同步IO相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。异步IO将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达。在它检测到数据并做出响应之前,第一个比特已转载 2013-10-24 20:56:23 · 702 阅读 · 0 评论 -
TCP长连接与短连接的区别
1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模转载 2013-10-24 20:25:14 · 611 阅读 · 0 评论 -
IO多路复用
与多线程和多进程相比,I/O多路复用的最大优势是系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程。主要应用:(1)客户程序需要同时处理交互式的输入和服务器之间的网络连接(2)客户端需要对多个网络连接作出反应(3)TCP服务器需要同时处理多个处于监听状态和多个连接状态的套接字(4)服务器需要处理多个网络协议的套接字(5)服务器需要同转载 2013-10-24 20:51:30 · 827 阅读 · 0 评论 -
Socket信号驱动
第一条:概述 信号驱动IO,不是异步IO。信号驱动IO是指:进程预先告知内核,使得 当某个socketfd有events(事件)发生时,内核使用信号通知相关进程。异步IO(Asynchronous IO)是指:进程执行IO系统调用(read / write)告知内核启动某个IO操作,内核启动IO操作后立即返回到进程。IO操作即内核当中的服务例程。Posix 通过 aio_X转载 2013-10-24 20:54:16 · 1796 阅读 · 0 评论 -
中断方式和轮询方式的区别
中断的汉语解释是半中间发生阻隔、停顿或故障而断开。那么,在计算机系统中,我们为什么需要“阻隔、停顿和断开”呢?举个日常生活中的例子,比如说我正在厨房用煤气烧一壶水,这样就只能守在厨房里,苦苦等着水开——如果水溢出来浇灭了煤气,有可能就要发生一场灾难了。等啊等啊,外边突然传来了惊奇的叫声“怎么不关水龙头?”于是我惭愧的发现,刚才接水之后只顾着抱怨这份无聊的差事,居然忘了这事,于是慌慌张张的冲转载 2013-10-24 21:45:32 · 4405 阅读 · 0 评论 -
JFrame、JWindow、JDialog、JOptionPane
Java中各种窗口应用演示程序一,JFrame: 带标题栏和边框,可带菜单栏,一个GUI程序至少得拥有一个 JFrame 或 JWindow,不会挡住主JFrame 二,JWindow: 可单独使用,也可从属于 JFrame ,可当成一JFrame使用,仅是无标题栏,无窗口按钮,转载 2013-10-23 15:48:46 · 4033 阅读 · 0 评论 -
java文件读写操作大全
一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println("请输入您的命令∶"); byte buffer[]=new byte[1024]; int count=System.in.read(buffe转载 2013-10-23 11:25:16 · 614 阅读 · 0 评论 -
java-Socket文件上传/进度条
客户端代码: 1、客户端运行程序:package wtb.khd;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStre转载 2013-10-23 15:51:16 · 3453 阅读 · 0 评论 -
Java中Runnable和Thread的区别
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。下面看例子:package org.thread.demo; class MyThread extends Thre转载 2013-09-17 18:18:26 · 446 阅读 · 0 评论 -
什么是java序列化,如何实现java序列化?
Java 串行化技术可以使你将一个对象的状态写入一个Byte流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。序列化就是一种转载 2013-09-16 21:38:33 · 573 阅读 · 0 评论 -
c++map的基本操作和用法
1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能 自动建立Key - value的对应。key 和 value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000转载 2013-03-11 18:38:56 · 466 阅读 · 0 评论 -
三十分钟掌握STL
这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karycontact:[email protected]概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离转载 2013-03-11 17:53:43 · 441 阅读 · 0 评论 -
C++ std::pair 与 std::make_pair
std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。例如std::pair 或者 std::pair等。pair实质上是一个结构体,其主要的两个成员变量是first和second,这两个变量可以直接使用。初始化一个pair可以使用构造函数,也可以使用std::make_pair函数,make_pair函数的定义如下:template pair mak转载 2013-08-06 09:39:15 · 633 阅读 · 0 评论 -
图的深度优先搜索(DFS)——图用邻接矩阵表示
该程序是用图的邻接举着实现的。如果想用图的邻接链表实现DFS算法,只要把该程序中的firstAdj()和nextAdj()以及图的创建等操作改用邻接链表实现即可,其他的如DFS主程序框架可以不用修改。temp.cpp//图的深度优先搜索(DFS)//图用邻接矩阵表示#include#include#include "temp.h"using namespace std;i原创 2013-05-02 09:42:20 · 1090 阅读 · 0 评论 -
图的基本操作——邻接链表表示(网(边带权值的图)的编程没有给出,与一般的图类似)
#define VertexType int//顶点的类型#define MAX_VERTEX_NUM 20 //最大顶点数#define Status int#define OK 1#define ERROR 0#define NULL 0 typedef enum{NG, DG, NW, DW}GraphType;//图的类型typedef struct A原创 2013-02-21 15:22:47 · 835 阅读 · 0 评论 -
图的基本操作——邻接矩阵表示(网(边带权值的图)的编程没有给出,与一般的图类似)
#define VertexType int#define AdjMatrix int typedef enum{NG, DG, NW, DW}GraphKind;#define Status int#define MAX_N 10#define OK 1#define ERROR 0typedef struct{ VertexType vexs[MAX_N];原创 2013-02-21 15:10:46 · 3918 阅读 · 0 评论 -
数据结构实验4---用HuffmanTree进行编码、译码
#include#include#include#include#include#include#include#define Status int #define OK 1 #define ERROR 0#define STACK_INIT_SIZE 10#define MAX_LINE 10#define MAX_CHAR 200using namespace std原创 2013-02-21 14:31:37 · 716 阅读 · 0 评论 -
数据结构实验3---二叉树的遍历(递归、非递归)
#include#include#include#include#include#define Status int #define OK 1 #define OVERFLOW 0#define ERROR 0#define STACK_INIT_SIZE 10using namespace std;typedef struct BiTNode{//原创 2013-02-21 15:01:22 · 1935 阅读 · 0 评论 -
数据结构实验2---表达式求值(“栈”实现)
#include #include #include #include #define STACK_INIT_SIZE 100 #define INCREAMENT 100 #define ZUIDAWEISHU 10 #define ERROR 0 using namespace std; class Y原创 2013-02-21 15:02:22 · 1370 阅读 · 0 评论 -
数据结构实验1---约瑟夫环(“链表”实现)
//改程序用来模拟约瑟夫环游戏,用户输入环中结点个数和初始的密码值//先打印出产生的结点编号、密码信息,再依次打印出当前密码和出列者的编号#include#includeusing namespace std;struct LNode{//LNode结构体 作为结点元素 int a, b; LNode *next;};int createRand()原创 2013-02-21 15:04:39 · 2513 阅读 · 0 评论 -
探寻C++最快的读取文件的方案
在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中很不错,转载 2013-08-06 21:17:00 · 575 阅读 · 0 评论 -
textpad和masm搭建汇编环境
首先下载Masm615以及textpad,建议使用textpad英文版,下面以TextPad 5.4为例,说明编译环境的搭建方法。安装好textpad之后,启动后的界面是这样的:一、类型过滤:支持*.asm文件格式点击Configure -> Preferecence....(如图1)打开设置面板,在左边的列表中选择FileNameFilter,增加对*.asm格式的支持(如图2)转载 2013-03-05 18:41:03 · 1761 阅读 · 0 评论 -
Hash算法
hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,(每一个真实值只能有一个键值,但是一个键值可以对应多个真实值),这样可以快速在数组等条件中里面存取数据. 在网上看了不少HASH资料,所以对HASH的相关资料进行总结和收集。 //HashTable.h template class HashTable{ public转载 2013-08-07 21:02:52 · 538 阅读 · 0 评论 -
优先队列用法
历史性的解决了我对优先队列的疑惑。o(╯□╰)o转载自Blog:每次自己写优先队列都会有一种很山寨的感觉。将所有的容器入队,将任务从大到小排列,每次把任务都分配给当前最清闲的容器。第一次提交的时候竟然因为没有输出那个nwa了。[cpp] view plaincopy#include #includ转载 2013-08-14 20:56:49 · 604 阅读 · 0 评论 -
为什么很多人说 Java 不适合编写桌面应用?
Java的桌面程序并不少,其中最为知名的莫过于Eclipse。在Linux和Mac下,Java程序的比例远高于Windows下。不过,“Java不适合写桌面应用”的说法有一定道理,论调的主要背景是供Windows下使用的企业桌面应用的开发。由于一些历史和定位的原因,对于这种GUI程序的需求,Java的优势不明显,劣势比较明显。这事还得从Java的传统,“跨平台一致性”说起。在写转载 2013-09-16 16:30:46 · 958 阅读 · 0 评论 -
Java基于Socket文件传输示例
最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解。在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度。废话少说,先来看服务器端的程序。1.服务器端package sterning;import java.io.BufferedInputStream;imp转载 2013-10-22 21:23:55 · 1006 阅读 · 3 评论