线性表的使用(转)
线性表的使用(转)[@more@]线性表的逻辑定义线性表(Linear List)是由n(n≥0)个数据元素(结点)a1,a2,…,an组成的有限序列。 ① 数据元素的个数n定义为表的长度(n=0时称为空表)。 ② 将非空的线性表(n>0)记作:(a1,a2,…,an) ③ 数据元素ai(1≤i≤n)只是个抽象符号,其具体含义在不同情况下可以不同。 线性表的逻辑结构特征 对于非空的线性表: ① 有且仅有一个开始结点a1,没有直接前趋,有且仅有一个直接后继a2; ② 有且仅有一个终结结点an,没有直接后继,有且仅有一个直接前趋an-1; ③ 其余的内部结
急!~安装FC5但不能进桌面,求救啊~~~(转)
急!~安装FC5但不能进桌面,求救啊~~~(转)[@more@]先讲一下我的电脑配置:AMD 2800+ATI 显卡8139 网卡NV8 主板集成声卡折腾了两三天,终于把FC5刻录成盘,DVD版的,急的就安装了~~~~先说明,SHA1正确!开始安装,进入那个选择安装方式的界面,这个界面想必大家都知道吧~~然后,问题出现了,按理说,如果直接按确定或者不动他,都会进入图形安装模式,但是我这里不管如何,都是进入文本安装模式~~~模式不对就不对吧,我不在意~~~然后从文本开始安装,我装第一次是,把所有软件包都勾上了,不是详情里的,只是在选择的地方勾了,所以有些默认
JDK安装(转)
JDK安装(转)[@more@]Windows 98/ME: 简单的方法就是运行msconfig,这会显示一个实用程序,在这里可以设置:设置项目如下:JAVA_HOME=L:JavaJ2SE //你安装J2SE的目录//classpath设置,详见<>classpath=.;%JAVA_HOME%lib ools.jar;path=....;%JAVA_HOME%in;b)Windows 2000(我没XP,谁有,请跟贴):打开系统设置,按Winkey+Break 或 右击“我的电脑”,选属性,选择高级->系统环境。在第一栏加入以下设置:JAVA_HOME=L:JavaJ2SE //你安装J2SE的目录//classpath设置,详见<>classpath=.;%JAVA_HOME%lib ools.jar;path=.....
急!~安装了FC5但无法进入桌面~~求救!!(转)
急!~安装了FC5但无法进入桌面~~求救!!(转)[@more@]先讲一下我的电脑配置:AMD 2800+ATI 显卡8139 网卡NV8 主板集成声卡折腾了两三天,终于把FC5刻录成盘,DVD版的,急的就安装了~~~~先说明,SHA1正确!开始安装,进入那个选择安装方式的界面,这个界面想必大家都知道吧~~然后,问题出现了,按理说,如果直接按确定或者不动他,都会进入图形安装模式,但是我这里不管如何,都是进入文本安装模式~~~模式不对就不对吧,我不在意~~~然后从文本开始安装,我装第一次是,把所有软件包都勾上了,不是详情里的,只是在选择的地方勾了,所以有些默
JDK1.4新特性:断言(转)
JDK1.4新特性:断言(转)[@more@]JDK1.4中引入的一个新特性之一就是断言(assert),为程序的调试提供了强有力的支持,以下的文档根据SUNTEC内容及相关内容组成。源代码:/*** Simple examples of the use of the new assertion feature in JDK1.4** @author S.Ritter 16/7/2001**/public class AssertExample {public static void main(String[] args) {int x = 10;if (args.length > 0) {try {x = Integer.parseInt(args[0]);} catch (NumberFormatException nfe) {/* Ignore */}}System.out.println("Testing assertion that x == 10
Java程序的反加密(转)
Java程序的反加密(转)[@more@]首先我们来看看Java程序的反加密,也就是通常所说的Crack过程,只有明白了这个过程,我们才能有效的对我们的程序进行加密。通常我们得到的Java程序的Crack包有两种,一种属于KeyGen(注册码生成器)、一种属于替换修改;我们先看第一种,当我们找到一个应用程序的KeyGen的时候我们总是很佩服那个做出KeyGen的人,觉得他很厉害,但是你仔细分析一下,为什么他能做出KeyGen呢?只有他对这个Java程序的加密算法了解的非常清楚;这种人有哪些呢?一个是那个公司里面的人,那不可能,除非内讧,还又呢,就是猜想,
接收键盘的输入并原样输出到屏幕上(转)
接收键盘的输入并原样输出到屏幕上(转)[@more@]/* Readwrite.java接收键盘的输入, 并原样输出到屏幕上要结束此程序是,请按+C键*/// 利用的库import java.io.*;// class Readwritepublic class Readwrite{public static void main(String[] args){byte[] buff = new byte[1024]; // 定义数组while (true) {try {int n = System.in.read(buff); // 从System.in读出数据System.out.write(buff, 0, n); // 写入System.out中}catch (Exception e) { //异常处理System.exit(1);}}}}
Linux内核即时入侵检测安全增强-系统调用运行步骤(转)
Linux内核即时入侵检测安全增强-系统调用运行步骤(转)[@more@]二.系统调用运行步骤冰块 我们的系统安全增强是建立在一个内核后面的参考监视器上的。 用户的进程要想访问系统的调用就必须经过这个参考的监视器。如图1。这个系统调用参考的监视器包括两个重要的功能部分:参考功能函数和认证功能函数。参考功能函数是用来生成一个结果,这个结果是关于是否允许或是拒绝一个基于访问控制数据库系统调用请求的。这个访问控制数据库概念性的包括入口和访问控制的规则(规则涉及进程,系统调用,访问模式)。在ACD中的访问控制规则能捕
java写文件(转)
java写文件(转)[@more@]/* Writefile.java接收键盘的输入,并原样输出到屏幕上此外,还有将键盘输入的数据按顺序存放到文件中使用方法:java Writefile 文件名要结束此程序时,请在行的开始部分输入一个#号。*/import java.io.*;// Class Writefilepublic class Writefile{public static void main(String[] args){byte[] buff = new byte[1024];boolean cont = true; // 循环控制变量FileOutputStream outfile = null; // 文件输出对象// 生成对象outfile,准备输出到文件try{outfile = new FileOutputStream(args[0]);}catch (FileNotFo
Linux内核即时入侵检测安全增强-防止缓冲区溢出的内核补丁(转)
Linux内核即时入侵检测安全增强-防止缓冲区溢出的内核补丁(转)[@more@]三.防止缓冲区溢出的内核补丁冰块 这一部分我们来描述一个对系统安全有很大危害的缓冲区溢出的Linux内核补丁。3.1 缓冲区溢出漏洞攻击 在C语言中对队列资源的限制很容易让一个内存溢出。有很多广为人知的方法来利用缓冲区溢出的漏洞来对系统进行攻击。他们可以利用缓冲区溢出的漏洞来向系统内插入一些恶意的系统命令操作,就可以得到一个特权的shell,从而对系统进行控制。主要就是利用攻击由root或是administrator运行的程序,插入一些命令,而这些命令就有
Linux内核即时入侵检测安全增强-后语(转)
Linux内核即时入侵检测安全增强-后语(转)[@more@]五.后语冰块 这篇文章的整个补丁代码我没有找到,可能是因为这个人关于这个东西的开发已经放弃了吧。呵呵,如果谁能找到。请告诉大家,原来他们提供的url是:www.iac.rm.cnr.it/tecno/software/indexs.HTML 这篇文章和以前发表的LIDS文章都是关于内核模块级的系统安全的。这篇主要是对缓冲区溢出的漏洞进行防范。虽然没有代码的原形,但是它给出的几个代码事例能够帮助我们更好的理解Linux的内核模块如何截获系统调用,或是如何对进程运行权分析的实现。对于我们理解Linux和其他操
Linux内核即时入侵检测安全增强-介绍(转)
Linux内核即时入侵检测安全增强-介绍(转)[@more@]一.介绍冰块 现在大家已经公认了,世界上没有绝对的方法或绝对安全的系统来阻止黑客的入侵:没有漏洞的软件对我们来说还是一个梦想。即使是很流行的程序或是操作系统一样会包含很都可以被入侵者利用的漏洞。许多软件包的行为都是和其他操作系统的组件(函数库或是内核)相互作用的。 由于这个原因,所以入侵检测和如何处理入侵行为在计算机工业里一直在广泛的讨论和研究。 很多现有的入侵检测的技术都是基于一些对审计和日志文件的分析。主要思想是搜索整个系统的文件和参考列
内核编译菜单中相关选项的意义(转)
内核编译菜单中相关选项的意义(转)[@more@] 很多参考书上说这是那些开发人员认为还不是很稳定的功能,但是根据我的经验,这个是应该选的一个选项,因为现代的Linux是建立在这些基础上的,所以应该可以回答Y,除非你只是想使用Linux中已经完全定型的东西,但性能肯定不会好到哪,而且对系统特性的支持也不会好。 processor family (386,,486/cx486,586/k5/5x86/6x86,pentinum/k6/tsc,ppro/6x86) 这 应该没有太多可说的吧,选择你的CPU的种类,BIOS可以自检得到,注意系统的启动信息。需要注意的是不能选择比你的CPU类型还高级的CP
java截获标准输出(1)(转)
java截获标准输出(1)(转)[@more@]在Java程序中截获控制台输出内容:一、Java管道流 1.1 注意事项一 1.2 注意事项二 1.3 注意事项三 1.4 解决问题二、捕获Java控制台输出三、捕获其他程序的控制台输出参考资料关于作者俞良松 (javaman@163.net)软件工程师,独立顾问和自由撰稿人2001 年 10 月在Java开发中,控制台输出仍是一个重要的工具,但默认的控制台输出有着各种各样的局限。本文介绍如何用Java管道流截取控制台输出,分析管道流应用中应该注意的问题,提供了截取Java程序和非Java程序控制台输出的实例。即使在图形用户
java截获标准输出(2)(转)
java截获标准输出(2)(转)[@more@]startByteArrayReaderThread()方法是整个类真正的关键所在。这个方法的目标很简单,就是创建一个定期地检查 ByteArrayOutputStream缓冲区的线程。缓冲区中找到的所有数据都被提取到一个byte数组,然后写入到 PipedOutputStream。由于PipedOutputStream对应的PipedInputStream由getInputStream ()返回,从该输入流读取数据的线程都将读取到原先发送给ByteArrayOutputStream的数据。前面提到,LoopedStreams类解决了管道流存在的前二个问题,我们来看看这是如何实现的。ByteArrayOutputStream具有根据需要
用java实现一个简单的序列化的例子(转)
用java实现一个简单的序列化的例子(转)[@more@]package test;import java.io.*;public class Test implements Serializable{int i=0;//不让变量j序列化transient int j=0;public static void main(String[] args) {Test test=new Test();test.i=3;test.j=7;System.out.println(test.i);System.out.println(test.j);//存FileOutputStream fileStream = null;try {fileStream = new FileOutputStream("c: est.obj");ObjectOutputStream out = new ObjectOutputStream(fileStream);out.writeObject(test);out.close();}catch (Exception ex)
Java中对HashMap的深度分析与比较(转)
Java中对HashMap的深度分析与比较(转)[@more@]在Java的世界里,无论类还是各种数据,其结构的处理是整个程序的逻辑以及性能的关键。由于本人接触了一个有关性能与逻辑同时并存的问题,于是就开始研究这方面的问题。找遍了大大小小的论坛,也把《Java 虚拟机规范》,《apress,.java.collections.(2001),.bm.ocr.6.0.shareconnector》,和《Thinking in Java》翻了也找不到很好的答案,于是一气之下把JDK的 src 解压出来研究,扩然开朗,遂写此文,跟大家分享感受和顺便验证我理解还有没有漏洞。 这里就拿HashMap来研究吧。 HashMap可谓J
java版本名称(转)
java版本名称(转)[@more@]Java诞生以将近有十个年头,不知道你只不知道,它每发布一个版本都有其自己特有的名字,并且有一定的规律,是不是很有趣呢?已发行的版本:版本号 名称 中文名 发布日期JDK 1.1.4 Sparkler 宝石 1997-09-12JDK 1.1.5 Pumpkin 南瓜 1997-12-13JDK 1.1.6 Abigail 阿比盖尔--女子名 1998-04-24JDK 1.1.7 Brutus 布鲁图--古罗马政治家和将军 1998-09-28JDK 1.1.8 Chelsea 切尔西--城市名 1999-04-08J2SE 1.2 Playground 运动场 1998-12-04J2SE 1.2.1 none 无 1999-03-30J2SE 1.2.2 Cricket 蟋蟀 1999-07-08J2SE 1.3 Kestrel
Java学习从入门到精通(2)(转)
Java学习从入门到精通(2)(转)[@more@]四、 Java应用的运行环境Java的应用可以简单分为以下几个方面:1、 Java的桌面应用桌面应用一般仅仅需要JRE的支持就足够了。2、 Java Web应用Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:Browser层:浏览器显示用户页面Web层:运行Servlet/JSPDB层:后端数据库,向Java程序提供数据访问服务3、 Java企业级应用企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:Browser层:浏览器显示用户页面Client层:Java客户端图形程序(或者
Java学习从入门到精通(3)(转)
Java学习从入门到精通(3)(转)[@more@]第七步,J2EE编程以上的学习过程如果是比较顺利的话,进行到这一步,难度又陡然提高。因为上面的知识内容都是只涉及一个方面,而像EJB,JMS,JTA等核心的J2EE规范往往是几种Java技术的综合运用的结晶,所以掌握起来难度比较大。首先一定要学习好JNDI,JNDI是App Server定位服务器资源(EJB组件,Datasouce,JMS)查找方法,如果对JNDI不熟悉的话,EJB,JMS这些东西几乎学不下去。 JNDI其实就是javax.naming.*这个包,运用起来很简单。难点在于服务器资源文件的配置。对于服务器资源文件的配置,就需