什么是堆栈,关于这个名词,我在百度,google搜索了半天,也没有发现一个比较权威的解释,还有许多资料语焉不详,就以维基百科的解释为准吧,和我记忆中的一致。
堆栈(英文:stack),中国大陆作堆栈,台湾作堆叠,在计算机科學中,是一種特殊的串列形式的資料結構,它的特殊之處在於只能允許在鏈結串列或陣列的一端(稱為堆疊頂端指標,英文為top)進行加入資料(push)和輸出資料(pop)的運算。另外堆疊也可以用一維陣列或連結串列的形式來完成。堆疊的另外一個相對的操作方式稱為佇列。
由於堆疊資料結構只允許在一端進行操作,因而按照後進先出(LIFO, Last In First Out)的原理運作。
堆疊資料結構使用兩種基本操作:推入(push)和彈出(pop):
推入(push) :將數據放入堆疊的頂端(陣列形式或串列形式),堆 ......
一 相对路径的获得
说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
String relativelyPath=System.getProperty("user.dir");
上述相对路径中,java项目中的文件是相对于项目的根目录
web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)
二 类加载目录的获得(即当运行时某一类时获得其装载目录)
1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
(test.txt文件的路径为 项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)
上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可
1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)
InputStream is=Test1.class.getResourceAsStream("/test.txt");
(test.txt文件的路径为 项目名\src\test. ......
什么是堆栈,关于这个名词,我在百度,google搜索了半天,也没有发现一个比较权威的解释,还有许多资料语焉不详,就以维基百科的解释为准吧,和我记忆中的一致。
堆栈(英文:stack),中国大陆作堆栈,台湾作堆叠,在计算机科學中,是一種特殊的串列形式的資料結構,它的特殊之處在於只能允許在鏈結串列或陣列的一端(稱為堆疊頂端指標,英文為top)進行加入資料(push)和輸出資料(pop)的運算。另外堆疊也可以用一維陣列或連結串列的形式來完成。堆疊的另外一個相對的操作方式稱為佇列。
由於堆疊資料結構只允許在一端進行操作,因而按照後進先出(LIFO, Last In First Out)的原理運作。
堆疊資料結構使用兩種基本操作:推入(push)和彈出(pop):
推入(push) :將數據放入堆疊的頂端(陣列形式或串列形式),堆 ......
java.net的类可以划分为两类:套接字API(Sockets API)和用于处理统一资源定位器(URL)。Socket 是所有其他可移植网络通信的底层机制,用于网络上客户和服务器之间的各种通信。java提供的套接字支持三种不同的底层协议:Socket(面向连接的协议)、DatagramSocket(无连接协议)和MulticastSocket。
在编写网络编程时,通常会谈到客户和服务器,发起通信的是客户(client),接收请求的是服务器(server)。客户需要两个信息来找到Internet上的一个服务器并与之连接,即IP地址和端口号。
客户构造一个Socket来打开与一个服务器的链接:
try{
Socket sock = new Socket("www.baidu.com",25);
}catch(UnkownHostException e){
System.out.println("can't find host.");
}catch(IOE ......
Google
、
VMware
让
Java
扛起云计算大旗
通过与
Google
、
Salesforce.com
等
企业
的合作,虚拟化厂商
VMware
正在努力使
云计算
变得更为轻量、可移植,以符合客户的要求。
如果有人问
Java
产品供应商都有哪些?
EMC
的子公司
VMware
的排名绝对不会靠前。对大多数人来说,
VMware
的
VM
的两个字母,并不代表
JVM
(
Java
虚拟机),它指的是那种能够在其上运行服务器以及桌面系统的虚拟机。但是今天,我们需要改变我们的看法了。
VMware
正在重新塑身。虚拟化这个概念已经是昨日黄花了。在操作系统厂商参与到这个游戏当中之后,更大为失色。今天,最时髦的是云计算。纵观当今局势,
Redmonk
分析师
James Governor
说,今天说到云实际就是在说
VMware
,说到
VMware
实际就是在说云,当然是新的,现在的
VMware
。全新的
VMware
云计算已经将他的目光聚焦在
Java
上。
在本周旧金山的
Google I/O
大会上,
VMware
和
Google
宣布成为战略合作伙伴关系,合作内容是让
Java
开发者更容易部署基于
Google
应用引擎的云计算服务。在本项合作之前,也就是四月份,
VMware
已 ......
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序。若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。
内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排序、归并排序和基数排序(又称为分配排序)。
其中,插入排序主要包括直接插入排序和希尔排序两种;选择排序主要包括直接选择排序和堆排序;交换排序主要包括气(冒)泡排序和快速排序。
◆稳定排序:假设在待排序的文件中,存在两个或两个以上的记录具有相同的关键字,在用某种排序法排序后,若这些相同关键字的元素的相对次序仍然不变,则这种排序方法是稳定的。其中冒泡,插入,基数,归并属于稳定排序,选择,快速,希尔,堆属于不稳定排序。
◆就地排序:若排序算法所需的辅助空间并不依赖于问题的规模n,即辅助空间为O(1), 则称为就地排序。
import ......