java里面的for循环的格式: for(String s : arr)是什么意思,能否详细解释一下

java里面的for循环的格式: for(String s : arr)是什么意思,能否详细解释一下,第1张

分析如下:

for的循环语句
for(String s : args)这个格式是foreach的形式,表示取出数组args[]中的每一个元素,就是循环一次就依次取出一个元素赋值给s,知道取完为止
java中的foreach也是用for表示
具体语法分两种:
第一种-数组
for(type var : arr) {
//循环体
}
示例(这里以List为例):
List<String> list = new ArrayList<String>();
for(String item : list){
Systemoutprintln("循环元素:" + item);
}
第二种-非数组类可迭代对象
for(type var : coll) {
//循环体
}
示例:
Map<String, String> map = new HashMap<String, String>();
for(Entry<String, String> item : mapentrySet()){
Systemoutprintln("循环元素 key:" + itemgetKey() + " value:" + itemgetValue());
}

编程环境

1、DK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK 。

2、另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境 [14]  。

3、JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可 [15]  。

参考资料来源:百度百科:Java

磁盘阵列简述:
磁盘阵列是一种把若干硬磁盘驱动器按照一定要求组成一个整体,整个磁盘阵列由阵列控制器管理的系统。冗余磁盘阵列RAID(Redundant Array of Independent Disks)技术1987年由加州大学伯克利分校提出,最初的研制目的是为了组合小的廉价磁盘来代替大的昂贵磁盘,以降低大批量数据存储的费用(当时RAID称为Redundant Array of Inexpensive Disks 廉价的磁盘阵列),同时也希望采用冗余信息的方式,使得磁盘失效时不会使对数据的访问受损失,从而开发出一定水平的数据保护技术。
磁盘阵列的工作原理与特征:
RAID的基本结构特征就是组合(Striping),捆绑2个或多个物理磁盘成组,形成一个单独的逻辑盘。组合套(Striping Set)是指将物理磁盘组捆绑在一块儿。在利用多个磁盘驱动器时,组合能够提供比单个物理磁盘驱动器更好的性能提升。 数据是以块(Chunks)的形式写入组合套中的,块的尺寸是一个固定的值,在捆绑过程实施前就已选定。块尺寸和平均I/O需求的尺寸之间的关系决定了组合套的特性。总的来说,选择块尺寸的目的是为了最大程度地提高性能,以适应不同特点的计算环境应用。
磁盘阵列优点:
磁盘阵列有许多优点:首先,提高了存储容量;其次,多台磁盘驱动器可并行工作,提高了数据传输率;RAID技术确实提供了比通常的磁盘存储更高的性能指标、数据完整性和数据可用性,尤其是在当今面临的I/O总是滞后于CPU性能的瓶颈问题越来越突出的情况下,RAID解决方案能够有效地弥补这个缺口。
阵列技术的介绍:
RAID技术是一种工业标准,各厂商对RAID级别的定义也不尽相同。目前对RAID级别的定义可以获得业界广泛认同的有4种,RAID 0、RAID 1、RAID 0+1和RAID 5,我们常见的主板自带的阵列芯片或阵列卡能支持的模式有:RAID 0、RAID 1、RAID 0+1。
1) RAID 0是无数据冗余的存储空间条带化,它将所有硬盘构成一个磁盘阵列,可以同时对多个硬盘做读写动作,但是不具备备份及容错能力,具有成本低、读写性能极高、存储空间利用率高等特点,在理论上可以提高磁盘子系统的性能。
2) RAID 1是两块硬盘数据完全镜像,可以提高磁盘子系统的安全性,技术简单,管理方便,读写性能均好。但它无法扩展(单块硬盘容量),数据空间浪费大,严格意义上说,不应称之为“阵列”。
3) RAID 0+1综合了RAID 0和RAID 1的特点,独立磁盘配置成RAID 0,两套完整的RAID 0互相镜像。它的读写性能出色,安全性高,但构建阵列的成本投入大,数据空间利用率低,不能称之为经济高效的方案。
常见的阵列卡芯片有三种:Promise(乔鼎信息)、highpoint、ami(美商安迈)。这三种芯片都有主板集成或独立的阵列卡这二种形式的产品。我们主要用到的是Promise阵列卡,经过测试在无盘中稳定,并且不容易坏Promise常见的阵列芯片有:Promise Fasttrak 66、Fasttrak 100、Fasttrak 133、20262、20265、20267、20270、Fasttrak TX2、Fasttrak TX4、Fasttrak TX2000,TX4000Highpoint常见的阵列芯片有:highpoint 370、370a、372、372a。AMI / LSI Logic MegaRAID 这种芯片的产品我们用得很少,现在知道的有艾崴 WO2-R主板上集成了American Megatrends MG80649 控制器,其阵列卡的产品也没有使用过。
注意事项:
1) 用来创建磁盘阵列的硬盘一般需成对使用。
2) 强烈建议使用型号、容量、品牌均一致的四个硬盘来做阵列。
3) 阵列卡和一部分集成的阵列芯片支持双阵列,当您使用四个硬盘来做阵列时,建议设置为双阵列。但如果主板集成的是Promise类芯片,几乎都不支持创建双阵列。(4)、没有安装对应的阵列驱动程序或驱动程序不对,而又设置为由阵列启动时,NT服务器启动时将会蓝屏。任何创建阵列或者重建阵列的 *** 作都将清除硬盘或者阵列上的所有现有数据!
阵列卡的作用,简单的一句话就是加快网吧的速度,本为一个IDE的硬盘在带30以上就会造成瓶颈,速度就会慢下来,想提高速度一定得做阵列,这样不但速度快,以后加机器也不会有太大的影响。
做阵列注意的是:
阵列的一个误区就是大家还是把磁盘分开来看,作为阵列,你只能把做阵列的硬盘当成一个大的硬盘!在拷盘前我们用SFDISK(或者用其它分区软件,不用FDISKEXE,因为FDISKEXE只认80G,而一般做阵列后,硬盘都大于80G)对其进行分区,然后用GHOST将盘刻到阵列硬盘上面!
只要硬盘的位置与数据线不脱离,阵列卡如果换同名的阵列卡,其内容是不会改变的,因为阵列卡中相关参数设置保存在了硬盘当中。
磁盘阵列
1 什么是磁盘阵列(Disk Array)
磁盘阵列(Disk Array)是由一个硬盘控制器来控制多个硬盘的相互连接,使多个硬盘的读写同步,减少错误,增加效率和可靠度的技术。
2什么是RAID
RAID是Redundant Array of Inexpensive Disk的缩写,意为廉价冗余磁盘阵列,是磁盘阵列在技术上实现的理论标准,其目的在于减少错误、提高存储系统的性能与可靠度。常用的等级有1、3、5级等。
3什么是RAID Level 0
RAID Level 0是Data Striping(数据分割)技术的实现,它将所有硬盘构成一个磁盘阵列,可以同时对多个硬盘做读写动作,但是不具备备份及容错能力,它价格便宜,硬盘使用效率最佳,但是可靠度是最差的。
以一个由两个硬盘组成的RAID Level 0磁盘阵列为例,它把数据的第1和2位写入第一个硬盘,第三和第四位写入第二个硬盘……以此类推,所以叫“数据分割",因为各盘数据的写入动作是同时做的,所以它的存储速度可以比单个硬盘快几倍。
但是,这样一来,万一磁盘阵列上有一个硬盘坏了,由于它把数据拆开分别存到了不同的硬盘上,坏了一颗等于中断了数据的完整性,如果没有整个磁盘阵列的备份磁带的话,所有的数据是无法挽回的。因此,尽管它的效率很高,但是很少有人冒着数据丢失的危险采用这项技术。
4什么是RAID Level 1
RAID Level 1使用的是Disk Mirror(磁盘映射)技术,就是把一个硬盘的内容同步备份复制到另一个硬盘里,所以具备了备份和容错能力,这样做的使用效率不高,但是可靠性高。
5什么是RAID Level 3
RAID Level 3采用Byte-interleaving(数据交错存储)技术,硬盘在SCSI控制卡下同时动作,并将用于奇偶校验的数据储存到特定硬盘机中,它具备了容错能力,硬盘的使用效率是安装几个就减掉一个,它的可靠度较佳。
6什么是RAID Level 5
RAID Level 5使用的是Disk Striping(硬盘分割)技术,与Level 3的不同之处在于它把奇偶校验数据存放到各个硬盘里,各个硬盘在SCSI控制卡的控制下平行动作,有容错能力,跟Level 3一样,它的使用效率也是安装几个再减掉一个。
7什么是热插拔硬盘?
热插拔硬盘英文名为Hot-Swappable Disk,在磁盘阵列中,如果使用支持热插拔技术的硬盘,在有一个硬盘坏掉的情况下,服务器可以不用关机,直接抽出坏掉的硬盘,换上新的硬盘。一般的商用磁盘阵列在硬盘坏掉的时候,会自动鸣叫提示管理员更换硬盘。
磁盘阵列(Disk array)原理
为什么需要磁盘阵列 如何增加磁盘的存取(acces)速度,如何防止数据因磁盘的故障而失落及如 何有效的利用磁盘空间,一直是电脑专业人员和用户的困忧;而大容量磁盘的价 格非常昂贵,对用户形成很大的负担。磁盘阵列技术的产生一举解决了这些问题。
过去十年来,CPU的处理速度几乎是几何级数的跃升,内存(memory)的 存取速度亦大幅增加,而数据储存装置——它要是磁盘(hard disk)——的存取 速度相较之下。较为缓慢。整个I/0吞吐量不能和系统匹配,形成电脑系统的瓶 颈,降低了电脑系统的整体性能(throughout)若不能有效的提升磁盘的存取速 度,CPU、内存及磁盘间的不平衡将使CPU及内存的改进形成浪费。
目前改进磁盘存取速度的方式主要有两种。一是磁盘快取控制(disk cache controller),它将从磁盘读取的数据存在快取内存(cache memory)中以减少磁 盘存取的次数。数据的读写都在cache内存中进行,大幅增加存取的速度,如要读 取的数据不在cache内存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方 式在单工期环境(Single—tasking envioronment)如DOS之下。对大量数据的 存取有很好的性能(量小且频繁的存取则不然)。但在多工(multi—tasking)环 境之下(因为要不停的作数据交换(swapping)的动作)或数据库(database) 的存取(因每一记录都很小)就不能显示其性能。这种方式没有任何安全保障。
其一是使用磁盘阵列的技术。磁盘阵列是把多个磁盘组成一个阵列,当作单 一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据 时,阵列中的相关磁盘一起动作:大幅减低数据的存取时间,同时有更佳的空间 利用率。磁盘阵列所利用的不同的技术,称为RAID level,不同的level针对不 同的系统及应用,以解决数据安全的问题。
一般高性能的磁盘阵列都足以硬件的形式来达成、进—步的把磁盘cache控制 及磁盘阵列结合在—个控制器(RAID controler)或控制卡个,针对个同的用户 解决人们对磁盘输出/入系统的四大要求:
(1)增加存取速度。
(2)容错(fault tolerance),即安全性。
(3)有效的利用磁盘空间。
(4)尽量的平衡CPU,内存及磁盘的性能并异,提高电脑的整体工作性能。
磁盘阵列原理
1987年,加州伯克利大学的一位人员发表了名为“磁盘阵列研究”的论文, 正式提到了RAID也就是滋盘阵列,论文提出廉价的5.25”及3.5”的硬盘也能如 大机器上的8”盘能提供人容量、高性能和数据的一致性,并详述了RAIDl至5 的技术。 磁盘阵列针对不同的应用使用的不同技术,称为RAID level,RAID是Redundant Array of Inexpenslve Disks的缩写,而每一level代表一种技术,目前 业界公认的标准是RAID0—RAID5。这个level并个代表技术的高低,level5并不高于level3,level1也个低于level4。字于要选样哪一种RAID level的产品,纯视用户的 *** 作环境(Operating envir0nment)及应用(application)而定,与level 的高低没有必然的关系。RAID0没有安全的保障,仅其快速,所以适合高速I/0 的系统;RAIDl适用于需安全性又要兼顾速度的系统,RAID2及RAID3适用于 大型电脑及影像、CAD/CAM等处理;RAID5多用于0LTP,因有余融机构及 大型数据处理中心的迫切需要,故使用较多而较有名气,但也因此形成很多人对 磁盘阵列的误解,以为磁盘阵列非要RAID5不可;RAID4较少使用、和RAID5 有其共同之处,但RAID4适合大量数据的存取。其他如RAID6,RAID7。乃至 RAIDl0、50、100等,都是厂商各做各的,并无一致的标准,在此不作说明。
RAID1
RAID1是使用磁盘镜像(disk muroring)的技术,磁盘镜像应用在RAIDl 之前就在很多系统中使用,它的方式是在工作磁盘(working disk)之外再加一 额外的备份磁盘(backup disk)两个磁盘所储存的数据安全一致。数据在写入工 作磁盘同时也写入备份磁盘。
RAID2
RAID2是把数据分散为位元/位元组(bit/byte)或块(b1ock),加入海明码Hamming Code、在磁盘阵列中作间隔写入(Interleaving)到每个磁盘小。而 且地址(address)都一样,也就是在各个磁盘中,其数据都在相同的磁道(cylinder or track)及扇区中。RAID2又称为并行阵列(parallel array)其设计足使 用共轴同步(spindle synchronize)的技术,存取数据时、控个磁盘阵列—起动 作,在各个磁盘的相同位置作平行存取,所以有最好的存取时间(auesstime),共 总线(bus)是特别的设计以大带宽并行传输所存取的数据,所以有最好的传输时 间(transfer time)。在人型档案的存取应用,RAID2有最好的件能,仅如果档 案太小,会将其性能批下来。因为磁盘的存取足以期区为单位。而RAID2的存取是所有磁盘平行动作,而且是作单位元或位元组的存取。故小于—个扇区的数据 最会使其件能大打折扣。RAID2是设计给需要连续且大量数据的电脑使用的、如 大型电脑(mainframe to supercomputer)、作影像处理或CAD/CAM的工作站 (workstation)等,并个适用于—般的多用户环境网络服务器(network server)。 小型机或PC。
RAID3
RAID3的数据储存及存取方式都和RAID2一样,仅在安今方面以奇偶较验 (parity check)取代海明码做错误校正及检测,所以只需要—个额外的校检磁盘 (parity disk)。奇偶校验值的计算足以各个磁盘的相对应位作XOR的逻辑运算, 然后将结果写入奇偶校验磁盘,仟何数据的修改都要做奇偶校验计算。
RAID4
RAID4也使用一个校验磁盘,但和RAID3不一样,RAID4的方式是RAID0 加上一个校验磁盘。
RAID5
RAID5和RAID4相似但避免了RAID4的瓶颈,方法是不用校验磁盘而将校 验数据以循环的方式放在每一个磁盘中,RAID5的控制比较复杂,尤其是利用硬件对磁盘阵列的控制,因为这种方式的应用比其他的RAID level要掌握更多的事情,更多的输出/入需求,既要速度快,又要处理数据,计算校验值,做错误 校正等,所以价格较高,其应用最好是0LTP,至于用于大型文件,不见得有最 佳的性能。
RAID的对比: 下面几个表列是RAID的一些性质:
*** 作 工作模式 最少硬盘量 可用容量 适用范围
RAID0 磁盘延伸和数据分布 2 T PC服务器和图形工作站
RAIDl 数据分布和镜像 2 T/2
RAID2 共轴同步,并行传输,ECC 3 视结构而定 大档案且输入输出不频繁的应用 如:影像处理和CAD/CAM等
RAID3 共轴同步,并行传输,Parity 3 Tx(n—1)/n
RAID4 数据分布,固定Parity 3 Tx(n—1)/n
RAID5 数据分布,分布Parity 3 Tx(n—1)/n 银行、金融、股市、数据库等大 型数据处理中心OLTP应用
RAID的性能与可用性
RAID Level 用户数据利用率 BandWidth Performance Transaction Performance 数据可用性
RAID0 1 025 1 00005
RAID1 05 025 085 1
RAID2 067 1 025 09999
RAID3 075 1 025 09999
RAID4 075 025 061 09999
RAID5 075 025 061 09999
以上数据基于4个磁盘,传输块大小lK,75%的读概率,数据可用性的计算 基于同样的损坏概率。
RAID的概述
RAID0
没有任何额外的磁盘或空间作安全准备,所以一般人不重视它,这是误解。 其实它有最好的效率及空间利用率,对于追求效率的应用,非常理想,可同时用 其他的RAID level或其他的备份方式以补其不足,保护重要的数据。
RAID1
最佳的安全性,100%不停机,即使有一个磁盘损坏也能照常作业而不影响 其效能(对能并行存取的系统稍有影响),因为数据是作重复储存。RAIDl的并行 读取几乎有RAID0的性能、因为可同时读取相互镜像的磁盘;写入也只比RAID0略逊,因为同时写入两个磁盘并没有增加多少工作。虽比RAID0要增加—倍的 磁盘做镜像,但作为采用磁盘阵列的进入点,它是最便宜的一个方案,是新设磁 盘陈列的用户之最佳选择。
RAlD5
RAID5在不停机及容错的表现都很好,但如有磁盘故障。对性能的影向较大, 大容量的快取内存有助于维持性能,但在0LTP的应用中,因为每—笔数据或记 录(record)都很小,对磁盘的存取频繁。故有—定程度的影响。某磁盘故障 时,读取该磁盘的数据需把共用同一校验值分段的所有数据及校验值读出来、再把故障磁盘的数据计算出来;写入时,除了要重覆读取的程序外,还要再做校验值的计算,然后写入更新的数据及校验值;等换上新的磁盘,系统要计算整个磁 盘阵列的数据以回复故障磁盘的数据,时间要很长,如系统的工作负载很重的话, 有很多输出/入的请求征排队等候时,会把系统的性能拉下来。仅如使用硬件磁 盘阵列的话,其件能就可以得到大幅度的改进,因为硬件磁盘阵列如Arena系列 本身有内置的CPU与个机系统并行运作。所有存取磁盘的输出入工作都在磁盘陈列本身完成,不花费主机的时间,配合磁盘陈列的cache内存的使用,可以提高 系统的整体性能,而优越的SCSI控制更能增加数据的传输速率,即使枉磁盘故障 的情况下,主机系统的件能也不会有明显的降低。RAID5要做的事情太多,所以 价格较贵。不适于小系统,但如果是大系统使用大的磁盘阵列的话,RAID5却是 最便宜的方案。
总而言之,RAID0及RAIDl最适合PC服务器及图形工作站的用户,提供 最佳的性能及最便宜的价格。以低成本符合市场的需求。RAID2及RAID3适用 于大档案输入输出需求个频繁的应用如影像处理及CAD/CAM等;而RAID5 则适用于银行、金融、股市、数据库等大列数据处理中心的0LTP应用;RAID4 与RAID5有相同的特件及用方式,但其较适用于大型文件的读取。
磁盘阵列的额外容错功能
事实上容错功能已成为磁盘阵列最受清睐的特性,为了加强容错的功能以及使系统在磁盘故障的情况下能迅速的重建数据,以维持系统的性能,一般的磁盘 阵列系统都可使用热备份(hot spare or hot standby drive)的功能,所谓热备份是在建立(configure)磁盘阵列系统的时候,将其中一磁盘指定为后备磁盘, 此一磁盘在平常并不 *** 作,仅若阵列中某一磁盘发生故障时,磁盘阵列即以后备 磁盘取代故障磁盘,并自动将故障磁盘的数据重建(rebuild)在后备磁盘之上, 因为反应快速,加上cache内存减少了磁盘的存取,所以数据重建很快即可完成,对 系统的性能影响不大。对丁要求不停机的大型数据处理中心或控制小心而言,热 备份更是一项重要的功能,因为可避免晚间或无人守护时发生磁盘故障所引起的 种种不便。
备份盘又有热备份与温备份之分,热备份税和温备份的不同在于热备份盘 和阵列—起运转,一有故障时马上备援,而温备份盘虽然带电但并个运转,需要 备援时才启动。两者分别在是否运转及启动的时间,仅温备份并不运转,理论上有较长的寿命。另一个额外的容错功能是坏期区转移(bad sector reassignment)。坏扇区是磁盘故障的主要原因,通常磁盘在读写时发牛坏扇区的 情况即表示此磁盘故障。不能冉作读写,甚至有很多系统会因为不能完成读写的 动作而死机,仅若因为某一扇区的损坏而使工作不能完成或要更换磁盘,则使得 系统性能大打折扣,而系统的维护成本也未免太高了,坏扇区转移是当磁盘阵列 系统发现磁盘有坏扇区时,以另一空白的且无故障的扇区取代该扇区,以延长磁盘 的使用寿命,减少坏磁盘的发生率以及系统的维护成本。所以坏扇区转移功能使 磁盘阵列具有更好的容错性,同时使整个系统村最好的成本效益比。其他如可外 接电池备援磁盘阵列的快取内存,以避免突然断电时数据尚未写回磁盘而丢失; 或在RAIDl时作写入一致性的检查等,虽是小技术,但亦不可忽视。
深入了解RAID
2000-9-29·元凯宁·PCHDD
RAID是由美国加州大学伯克利分校的DA Patterson教授在1988年提出的。RAID是Redundent Array of Inexpensive Disks的缩写,直译为“廉价冗余磁盘阵列”,也简称为“磁盘阵列”。后来RAID中的字母I被改作了Independent,RAID就成了“独立冗余磁盘阵列”,但这只是名称的变化,实质性的内容并没有改变。可以把RAID理解成一种使用磁盘驱动器的方法,它将一组磁盘驱动器用某种逻辑方式联系起来,作为逻辑上的一个磁盘驱动器来使用。一般情况下,组成的逻辑磁盘驱动器的容量要小于各个磁盘驱动器容量的总和。RAID的具体实现可以靠硬件也可以靠软件,Windows NT *** 作系统就提供软件RAID功能。RAID一般是在SCSI磁盘驱动器上实现的,因为IDE磁盘驱动器的性能发挥受限于IDE接口(IDE只能接两个磁盘驱动器,传输速率最高15MBps)。IDE通道最多只能接4个磁盘驱动器,在同一时刻只能有一个磁盘驱动器能够传输数据,而且IDE通道上一般还接有光驱,光驱引起的延迟会严重影响系统速度。SCSI适配器保证每个SCSI通道随时都是畅通的,在同一时刻每个SCSI磁盘驱动器都能自由地向主机传送数据,不会出现像IDE磁盘驱动器争用设备通道的现象。
RAID的优点
1成本低,功耗小,传输速率高。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个的磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。
2可以提供容错功能。这是使用RAID的第二个原因,因为普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID和容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。
3RAID比起传统的大直径磁盘驱动器来,在同样的容量下,价格要低许多。
RAID的分级
1RAID0级,无冗余无校验的磁盘阵列。数据同时分布在各个磁盘驱动器上,没有容错能力,读写速度在RAID中最快,但因为任何一个磁盘驱动器损坏都会使整个RAID系统失效,所以安全系数反倒比单个的磁盘驱动器还要低。一般用在对数据安全要求不高,但对速度要求很高的场合。
2RAID1级,镜象磁盘阵列。每一个磁盘驱动器都有一个镜像磁盘驱动器,镜像磁盘驱动器随时保持与原磁盘驱动器的内容一致。RAID1具有最高的安全性,但只有一半的磁盘空间被用来存储数据。主要用在对数据安全性要求很高,而且要求能够快速恢复被损坏的数据的场合。
3RAID2级,纠错海明码磁盘阵列。磁盘驱动器组中的第一个、第二个、第四个……第2n个磁盘驱动器是专门的校验盘,用于校验和纠错,例如七个磁盘驱动器的RAID2,第一、二、四个磁盘驱动器是纠错盘,其余的用于存放数据。使用的磁盘驱动器越多,校验盘在其中占的百分比越少。RAID2对大数据量的输入输出有很高的性能,但少量数据的输入输出时性能不好。RAID2很少实际使用。
4RAID3和RAID4,奇校验或偶校验的磁盘阵列。不论有多少数据盘,均使用一个校验盘,采用奇偶校验的方法检查错误。任何一个单独的磁盘驱动器损坏都可以恢复。RAID3和RAID4的数据读取速度很快,但写数据时要计算校验位的值以写入校验盘,速度有所下降。RAID3和RAID4的使用也不多。
5RAID5级,无独立校验盘的奇偶校验磁盘阵列。同样采用奇偶校验来检查错误,但没有独立的校验盘,校验信息分布在各个磁盘驱动器上。RAID5对大小数据量的读写都有很好的性能,被广泛地应用。
从RAID1到RAID5的几种方案中,不论何时有磁盘损坏,都可以随时拔出损坏的磁盘再插入好的磁盘(需要硬件上的热插拔支持),数据不会受损,失效盘的内容可以很快地重建,重建的工作也由RAID硬件或RAID软件来完成。但RAID0不提供错误校验功能,所以有人说它不能算作是RAID,其实这也是RAID0为什么被称为0级RAID的原因——0本身就代表“没有”。
RAID的应用
当前的PC机,整个系统的速度瓶颈主要是硬盘。虽然不断有Ultra DMA33、DMA66、DMA100等快速的标准推出,但收效不大。在PC中,磁盘速度慢一些并不是太严重的事情。但在服务器中,这是不允许的,服务器必须能响应来自四面八方的服务请求,这些请求大多与磁盘上的数据有关,所以服务器的磁盘子系统必须要有很高的输入输出速率。为了数据的安全,还要有一定的容错功能。RAID提供了这些功能,所以RAID被广泛地应用在服务器体系中。
RAID提供的容错功能是自动实现的(由RAID硬件或是RAID软件来做)。它对应用程序是透明的,即无需应用程序为容错做半点工作。要得到最高的安全性和最快的恢复速度,可以使用RAID1(镜像);要在容量、容错和性能上取折衷可以使用RAID5。在大多数数据库服务器中, *** 作系统和数据库管理系统所在的磁盘驱动器是RAID1,数据库的数据文件则是存放于RAID5的磁盘驱动器上。
有时我们看某些名牌服务器的配置单,发现其CPU并不是很快,内存也算不上是很大,显卡更不是最好,但价格绝对不菲。是不是服务器系统都是暴利产品呢?当然不是。服务器的配置与一般的家用PC的着重点不在一处。除去更高的稳定性外,冗余与容错是一大特点,如双电源、带电池备份的磁盘高速缓冲器、热插拔硬盘、热插拔PCI插槽等。另一个特点就是巨大的磁盘吞吐量。这主要归功于RAID。举一个例子来说,一台使用了SCSI RAID的奔腾166与一台IDE硬盘的PⅢCopermine 800都用做文件服务器,奔腾166会比PⅢ的事务处理能力高上几十倍甚至上百倍,因为PⅢ处理器的运算能力根本用不上,反倒是奔腾166的RAID起了作用。
RAID现在主要应用在服务器,但就像任何高端技术一样,RAID也在向PC机上转移。也许所有的PC机都用上了SCSI磁盘驱动器的RAID的那一天,才是PC机真正的“出头之日”。

等我打开eclipse 来回答你。。。
打开Eclipse 点上方的 window > 最下面的 preferencs > 打开server > 点Runtime enviorment 然后就出现你们tomcat 服务器了 然后选择你要删除的 点remove
望采纳

怎样实现iMessage群发\x0d\\x0d\Apple公司全线在mac \x0d\os与ios两个 *** 作系统上内置了FaceTime与iMessage两个应用。完美替代运营商的短信与电话。并且FaceTime与iMessage的帐号不仅仅与Apple \x0d\ID 绑定,同时也与使用这Apple ID的手机号码绑定,这样的漏洞自然给无孔不入的中国的群发垃圾信息商们提供了后门。\x0d\\x0d\这样iPhone的iMessage时不时就能收到以邮件为发送者的垃圾iMessage,尤其是嘀嗒打车群发的最多,听说是厦门一家公司 *** 刀的。针对iMessage的群发实现,新闻稿上说是花几分钟写个脚本就可以了。可惜我花时间研究了好几次,也没有实现大批量群发的实现,倒是把自己的Apple \x0d\ID搞的电脑与手机不同步了。\x0d\\x0d\我研究怎么实现iMessage群发先是从XMPP协议开始的,因为Apple \x0d\MAC \x0d\os上的ichat是XMPP客户端,可以连接iMessage服务器,同时也可连接gtalk与weibo私信。但后面发现iMessage的服务器验证是加密,没办法实现非ichat \x0d\XMPP客户端连接iMeesage服务器,那就自然没办法实现程序控制往iMeesage服务器批量发送信息。\x0d\\x0d\只能通过MAC \x0d\OS或者iOS自带的程序往iMeesage服务器发送信息,那要实现群发,自然只能想办法去调用自带的这ichat客户端,在MAC \x0d\OS系统上Apple公司提供一种叫Apple script的脚本来自动实现任务。可能通过tell \x0d\application "Messages"就可以激活iMessage客户端自动发送信息。这样实现的群发的思路就很清楚了\x0d\1通过AppleScript实现批量注册itune帐号\x0d\\x0d\2通过AppleScript实现自动取一个itune帐号群发100个APPle \x0d\ID的iMessage\x0d\\x0d\set EMAIL to "EMAIL_DEL_DESTINATARI" -- el destinatari ha de tenir l'iMessage activat\x0d\set MSG to "COS_DEL_MISSATGE"\x0d\set N to the 1000 -- nombre de vegades que s'enviarà el missatge\x0d\set APPLE_ID to "E:" -- la teva Apple ID que ha de tenir iMessage activat\x0d\repeat N times\x0d\ tell application "Messages"\x0d\ send MSG to buddy EMAIL of service APPLE_ID\x0d\ end tell\x0d\end repeat

具体输入数值如下:

$stop=setInterval("hanshu()",2000);

function hanshu(){

//要执行的回调函数

}clearInterval(stop);

Java简介:

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

如果项目结构中没有为项目SDK设置任何内容,则项目会发出此警告。


JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rtjar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。  

Class中有个方法 public native boolean isAssignableFrom(Class<> cls)用来判断子类是否继承于父类的或者父接口的。

你会这样子写:

Class clazz = ;

clazzisAssignableFrom(子类名称);返回true说明是挂号里的类的父类或父接口。

clazzisAssignableFrom(子类名称)里的子类名称跟版本有关,好像是15以上的JDK这里的子类名称都是使用的泛型编程。即传的传数是

class<T> 类型的,你用的时候自己斟酌下版本问题。

而常用的instanceof(class )是指该实例是否属于挂号中的类的父类的一个实例。

如上面的例子:

class A{

}

public class B extends A{

public static void main(String[] args){

Class clazz = Bclass;

Class class1 = Aclass;

Systemoutprintln(class1isAssignableFrom(clazz));

if(class1isAssignableFrom(clazz)){

Systemoutprintln("A是B的父类");

}else{

Systemoutprintln("A不是B的父类");

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程[1]  。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点[2]  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等[3]  。

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK[13]  。

另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境[14]  。

JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可[15]  。

JAVA的JDK和API的区别是:

1、Java好比房子,API好比土地,JDK好比开发商的关系。

2、 JDK与API都是为了JAVA,互依互存,又各自独立,只有共同才能创造价值。

一、全称:

1、JDK:Java Development Kit 。

2、API:Application Programming Interface 。

二、概念:

1、Java:是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

2、JDK:

(1)、JDK是Sun Microsystems针对Java开发员的产品。JDK本身使用了Java语言编写。简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。

(2)、 自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。

3、API:

(1)、API是应用程序编程接口。

(2)、 是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

三、作用:

1、JDK:

(1)、jdk是 Java 语言的软件开发工具包。主要用于移动设备、嵌入式设备上的java应用程序。

(2)、JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rtjar)。

(3)、不论什么Java应用服务器实质都是内置了某个版本的JDK。

2、API:

(1)、运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件。

(2)、ava API在Java安全性模型方面也有贡献。当Java API的方法进行任何有潜在危险的 *** 作(比如进行本地磁盘写 *** 作)之前,都会通过查询访问控制器来检验是否得到了授权。访问控制器是一个类,该类用来执行栈检验,已决定是否允许某种 *** 作。

四、其它:

1、JDK:

(1)、JDK包含的基本组件包括:javac – 编译器、jar – 打包工具、javadoc – 文档生成器、jdb – debugger-查错工具、java – 运行编译后的java程序、appletviewer-小程序浏览器、Javap-Java反汇编器、Jconsole: Java进行系统调试和监控的工具等。

(2)、jdk18新特性:

(1)、Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可。

(2)、新增lambda表达式

(3)、提供函数式接口

(4)、Java 8 允许你使用 :: 关键字来传递方法或者构造函数引用

(5)、我们可以直接在lambda表达式中访问外层的局部变量。

2、API:组成及特点:

(1)、所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。

(2)、在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现API的功能。

(3)、为访问主机上的本地资源,Java API调用了本地方法。

(4)、由于Java API class文件调用了本地方法,Java程序就不需要再调用它们了。

(5)、通过这种方法,Java API class文件为底层主机提供了具有平台无关性、标准接口的Java程序。

(6)、对Java程序而言,无论平台内部如何,Java API都会有同样的表现和可预测的行为。

(7)、正是由于在每个特定的主机平台上明确地实现了Java虚拟机和Java API,因此,Java程序自身就能够成为具有平台无关性的程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13444846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-07
下一篇 2023-08-07

发表评论

登录后才能评论

评论列表(0条)

保存