导航:首页 > 编程语言 > dhtjava

dhtjava

发布时间:2022-04-12 06:22:53

Ⅰ 怎样资源共享呢

二楼解释比较专业啊,呵呵,简单点说就是把自己的资料上传到网盘或是象网络文库这样的地方,供他们下载,就是分享了啊。

Ⅱ 魔兽争霸3java问题

兄dei,这不是java,这是魔兽争霸地图脚本语言jass。而且这个地图是用的YDWE编辑的,有很多函数是YDWE自己的。代码里面用到了哈希表

Ⅲ 什么是P2P是下载器

P2P普及系列之一

拓扑结构是指分布式系统中各个计算单元之间的物理或逻辑的互联关系,结点之间的拓扑结构一直是确定系统类型的重要依据。目前互联网络中广泛使用集中式、层次式等拓扑结构,Interne本身是世界上最大的非集中式的互联网络,但是九十年代所建立的一些网络应用系统却是完全的集中式的系统、很多Web应用都是运行在集中式的服务器系统上。集中式拓扑结构系统目前面临着过量存储负载、Dos攻击等一些难以解决的问题。

P2P系统一般要构造一个非集中式的拓扑结构,在构造过程中需要解决系统中所包含的大量结点如何命名、组织以及确定结点的加入/离开方式、出错恢复等问题。

根据拓扑结构的关系可以将P2P研究分为4种形式:中心化拓扑(Centralized Topology);全分布式非结构化拓扑(Decentralized Unstructured Topology);全分布式结构化拓扑(Decentralized Structured Topology,也称作DHT网络)和半分布式拓扑(Partially Decentralized Topology)。

其中,中心化拓扑最大的优点是维护简单发现效率高。由于资源的发现依赖中心化的目录系统,发现算法灵活高效并能够实现复杂查询。最大的问题与传统客户机/服务器结构类似,容易造成单点故障,访问的“热点”现象和法律等相关问题,这是第一代P2P网络采用的结构模式,经典案例就是着名的MP3共享软件Napster。

Napster是最早出现的P2P系统之一,并在短期内迅速成长起来。Napster实质上并非是纯粹的P2P系统,它通过一个中央服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。当某个用户需要某个音乐文件时,首先连接到Napster服务器,在服务器进行检索,并由服务器返回存有该文件的用户信息;再由请求者直接连到文件的所有者传输文件。

Napster首先实现了文件查询与文件传输的分离,有效地节省了中央服务器的带宽消耗,减少了系统的文件传输延时。这种方式最大的隐患在中央服务器上,如果该服务器失效,整个系统都会瘫痪。当用户数量增加到105或者更高时,Napster的系统性能会大大下降。另一个问题在于安全性上,Napster并没有提供有效的安全机制。

在Napster模型中,一群高性能的中央服务器保存着网络中所有活动对等计算机共享资源的目录信息。当需要查询某个文件时,对等机会向一台中央服务器发出文件查询请求。中央服务器进行相应的检索和查询后,会返回符合查询要求的对等机地址信息列表。查询发起对等机接收到应答后,会根据网络流量和延迟等信息进行选择,和合适的对等机建立连接,并开始文件传输。

这种对等网络模型存在很多问题,主要表现为:
(1)中央服务器的瘫痪容易导致整个网络的崩馈,可靠性和安全性较低。
(2)随着网络规模的扩大,对中央索引服务器进行维护和更新的费用将急剧增加,所需成本过高。
(3)中央服务器的存在引起共享资源在版权问题上的纠纷,并因此被攻击为非纯粹意义上的P2P网络模型。对小型网络而言,集中目录式模型在管理和控制方面占一定优势。但鉴于其存在的种种缺陷,该模型并不适合大型网络应用。

P2P普及系列之二

Pastry是微软研究院提出的可扩展的分布式对象定位和路由协议,可用于构建大规模的P2P系统。在Pastry中,每个结点分配一个128位的结点标识符号(nodeID) ,所有的结点标识符形成了一个环形的nodeID空间,范围从0到2128 - 1 ,结点加入系统时通过散列结点IP地址在128位nodeID空间中随机分配。

在MIT,开展了多个与P2P相关的研究项目:Chord,GRID和RON。Chord项目的目标是提供一个适合于P2P环境的分布式资源发现服务,它通过使用DHT技术使得发现指定对象只需要维护O(logN)长度的路由表。

在DHT技术中,网络结点按照一定的方式分配一个唯一结点标识符(Node ID) ,资源对象通过散列运算产生一个唯一的资源标识符(Object ID) ,且该资源将存储在结点ID与之相等或者相近的结点上。需要查找该资源时,采用同样的方法可定位到存储该资源的结点。因此,Chord的主要贡献是提出了一个分布式查找协议,该协议可将指定的关键字(Key) 映射到对应的结点(Node) 。从算法来看,Chord是相容散列算法的变体。MIT GRID和RON项目则提出了在分布式广域网中实施查找资源的系统框架。

T&T ACIRI中心的CAN(Content Addressable Networks) 项目独特之处在于采用多维的标识符空间来实现分布式散列算法。CAN将所有结点映射到一个n维的笛卡尔空间中,并为每个结点尽可能均匀的分配一块区域。CAN采用的散列函数通过对(key, value) 对中的key进行散列运算,得到笛卡尔空间中的一个点,并将(key, value) 对存储在拥有该点所在区域的结点内。CAN采用的路由算法相当直接和简单,知道目标点的坐标后,就将请求传给当前结点四邻中坐标最接近目标点的结点。CAN是一个具有良好可扩展性的系统,给定N个结点,系统维数为d,则路由路径长度为O(n1/d) ,每结点维护的路由表信息和网络规模无关为O(d) 。

DHT类结构最大的问题是DHT的维护机制较为复杂,尤其是结点频繁加入退出造成的网络波动(Churn)会极大增加DHT的维护代价。DHT所面临的另外一个问题是DHT仅支持精确关键词匹配查询,无法支持内容/语义等复杂查询。

半分布式结构(有的文献称作 Hybrid Structure)吸取了中心化结构和全分布式非结构化拓扑的优点,选择性能较高(处理、存储、带宽等方面性能)的结点作为超级点(英文文献中多称作:SuperNodes, Hubs),在各个超级点上存储了系统中其他部分结点的信息,发现算法仅在超级点之间转发,超级点再将查询请求转发给适当的叶子结点。半分布式结构也是一个层次式结构,超级点之间构成一个高速转发层,超级点和所负责的普通结点构成若干层次。最典型的案例就是KaZaa。

KaZaa是现在全世界流行的几款p2p软件之一。根据CA公司统计,全球KaZaa的下载量超过2.5亿次。使用KaZaa软件进行文件传输消耗了互联网40%的带宽。之所以它如此的成功,是因为它结合了Napster和Gnutella共同的优点。从结构 上来说,它使用了Gnutella的全分布式的结构,这样可以是系统更好的扩展,因为它无需中央索引服务器存储文件名,它是自动的把性能好的机器成为SuperNode,它存储着离它最近的叶子节点的文件信息,这些SuperNode,再连通起来形成一个Overlay Network. 由于SuperNode的索引功能,使搜索效率大大提高。

P2P普及系列之三

全分布非结构化网络在重叠网络(overlay)采用了随机图的组织方式,结点度数服从"Power-law"[a][b]规律,从而能够较快发现目的结点,面对网络的动态变化体现了较好的容错能力,因此具有较好的可用性。同时可以支持复杂查询,如带有规则表达式的多关键词查询,模糊查询等,最典型的案例是Gnutella。

Gnutella是一个P2P文件共享系统,它和Napster最大的区别在于Gnutella是纯粹的P2P系统,没有索引服务器,它采用了基于完全随机图的洪泛(Flooding)发现和随机转发(Random Walker)机制。为了控制搜索消息的传输,通过TTL (Time To Live)的减值来实现。具体协议参照〔Gnutella协议中文版〕

在Gnutella分布式对等网络模型N中,每一个联网计算机在功能上都是对等的,既是客户机同时又是服务器,所以被称为对等机(Servent,Server+Client的组合)。

随着联网节点的不断增多,网络规模不断扩大,通过这种洪泛方式定位对等点的方法将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。所以在初期的Gnutella网络中,存在比较严重的分区,断链现象。也就是说,一个查询访问只能在网络的很小一部分进行,因此网络的可扩展性不好。所以,解决Gnutella网络的可扩展性对该网络的进一步发展至关重要。

由于没有确定拓扑结构的支持,非结构化网络无法保证资源发现的效率。即使需要查找的目的结点存在发现也有可能失败。由于采用TTL(Time-to-Live)、洪泛(Flooding)、随机漫步或有选择转发算法,因此直径不可控,可扩展性较差。

因此发现的准确性和可扩展性是非结构化网络面临的两个重要问题。目前对此类结构的研究主要集中于改进发现算法和复制策略以提高发现的准确率和性能。

全分布非结构化网络在重叠网络(overlay)采用了随机图的组织方式,结点度数服从"Power-law"[a][b]规律,从而能够较快发现目的结点,面对网络的动态变化体现了较好的容错能力,因此具有较好的可用性。同时可以支持复杂查询,如带有规则表达式的多关键词查询,模糊查询等,最典型的案例是Gnutella。

Gnutella是一个P2P文件共享系统,它和Napster最大的区别在于Gnutella是纯粹的P2P系统,没有索引服务器,它采用了基于完全随机图的洪泛(Flooding)发现和随机转发(Random Walker)机制。为了控制搜索消息的传输,通过TTL (Time To Live)的减值来实现。具体协议参照〔Gnutella协议中文版〕

在Gnutella分布式对等网络模型N中,每一个联网计算机在功能上都是对等的,既是客户机同时又是服务器,所以被称为对等机(Servent,Server+Client的组合)。

随着联网节点的不断增多,网络规模不断扩大,通过这种洪泛方式定位对等点的方法将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。所以在初期的Gnutella网络中,存在比较严重的分区,断链现象。也就是说,一个查询访问只能在网络的很小一部分进行,因此网络的可扩展性不好。所以,解决Gnutella网络的可扩展性对该网络的进一步发展至关重要。

由于没有确定拓扑结构的支持,非结构化网络无法保证资源发现的效率。即使需要查找的目的结点存在发现也有可能失败。由于采用TTL(Time-to-Live)、洪泛(Flooding)、随机漫步或有选择转发算法,因此直径不可控,可扩展性较差。

因此发现的准确性和可扩展性是非结构化网络面临的两个重要问题。目前对此类结构的研究主要集中于改进发现算法和复制策略以提高发现的准确率和性能。

P2P普及系列之四

半分布式结构的优点是性能、可扩展性较好,较容易管理,但对超级点依赖性大,易于受到攻击,容错性也受到影响。下表比较了4种结构的综合性能,比较结果如表1-1所示。

比较标准/拓扑结构 中心化拓扑 全分布式非结构化拓扑 全分布式结构化拓扑 半分布式拓扑
可扩展性 差 差 好 中
可靠性 差 好 好 中
可维护性 最好 最好 好 中
发现算法效率 最高 中 高 中
复杂查询 支持 支持 不支持 支持

表1:4种结构的性能比较

P2P普及系列之五

国外开展P2P研究的学术团体主要包括P2P工作组(P2PWG) 、全球网格论坛(Global Grid Forum ,GGF) 。P2P工作组成立的主要目的是希望加速P2P计算基础设施的建立和相应的标准化工作。P2PWG成立之后,对P2P计算中的术语进行了统一,也形成相关的草案,但是在标准化工作方面工作进展缓慢。目前P2PWG已经和GGF合并,由该论坛管理P2P计算相关的工作。GGF负责网格计算和P2P计算等相关的标准化工作。

从国外公司对P2P计算的支持力度来看,Microsoft公司、Sun公司和Intel公司投入较大。Microsoft公司成立了Pastry项目组,主要负责P2P计算技术的研究和开发工作。目前Microsoft公司已经发布了基于Pastry的软件包SimPastry/ VisPastry。Rice大学也在Pastry的基础之上发布了FreePastry软件包。

在2000年8月,Intel公司宣布成立P2P工作组,正式开展P2P的研究。工作组成立以后,积极与应用开发商合作,开发P2P应用平台。2002年Intel发布了. Net基础架构之上的Accelerator Kit (P2P加速工具包) 和P2P安全API软件包,从而使得微软. NET开发人员能够迅速地建立P2P安全Web应用程序。

Sun公司以Java技术为背景,开展了JXTA项目。JXTA是基于Java的开源P2P平台,任何个人和组织均可以加入该项目。因此,该项目不仅吸引了大批P2P研究人员和开发人员,而且已经发布了基于JXTA的即时聊天软件包。JXTA定义了一组核心业务:认证、资源发现和管理。在安全方面,JXTA加入了加密软件包,允许使用该加密包进行数据加密,从而保证消息的隐私、可认证性和完整性。在JXTA核心之上,还定义了包括内容管理、信息搜索以及服务管理在内的各种其它可选JXTA服务。在核心服务和可选服务基础上,用户可以开发各种JXTA平台上的P2P应用。

P2P实际的应用主要体现在以下几个方面:

P2P分布式存储
P2P分布式存储系统是一个用于对等网络的数据存储系统,它可以提供高效率的、鲁棒的和负载平衡的文件存取功能。这些研究包括:OceanStore,Farsite等。其中,基于超级点结构的半分布式P2P应用如Kazza、Edonkey、Morpheus、Bittorrent等也是属于分布式存储的范畴,并且用户数量急剧增加。

计算能力的共享
加入对等网络的结点除了可以共享存储能力之外,还可以共享CPU处理能力。目前已经有了一些基于对等网络的计算能力共享系统。比如SETI@home。目前SETI@home采用的仍然是类似于Napster的集中式目录策略。Xenoservers向真正的对等应用又迈进了一步。这种计算能力共享系统可以用于进行基因数据库检索和密码破解等需要大规模计算能力的应用。

P2P应用层组播
应用层组播,就是在应用层实现组播功能而不需要网络层的支持。这样就可以避免出现由于网络层迟迟不能部署对组播的支持而使组播应用难以进行的情况。应用层组播需要在参加的应用结点之间实现一个可扩展的,支持容错能力的重叠网络,而基于DHT的发现机制正好为应用层组播的实现提供了良好的基础平台。
Internet间接访问基础结构(Internet Indirection Infrastructure)。

为了使Internet更好地支持组播、单播和移动等特性,Internet间接访问基础结构提出了基于汇聚点的通信抽象。在这一结构中,并不把分组直接发向目的结点,而是给每个分组分配一个标识符,而目的结点则根据标识符接收相应的分组。标识符实际上表示的是信息的汇聚点。目的结点把自己想接收的分组的标识符预先通过一个触发器告诉汇聚点,当汇聚点收到分组时,将会根据触发器把分组转发该相应的目的结点。Internet间接访问基础结构实际上在Internet上构成了一个重叠网络,它需要对等网络的路由系统对它提供相应的支持。

P2P技术从出现到各个领域的应用展开,仅用了几年的时间。从而证明了P2P技术具有非常广阔的应用前景。

P2P普及系列之六

随着P2P应用的蓬勃发展,作为P2P应用中核心问题的发现技术除了遵循技术本身的逻辑以外,也受到某些技术的发展趋势、需求趋势的深刻影响。

如上所述,DHT发现技术完全建立在确定性拓扑结构的基础上,从而表现出对网络中路由的指导性和网络中结点与数据管理的较强控制力。但是,对确定性结构的认识又限制了发现算法效率的提升。研究分析了目前基于DHT的发现算法,发现衡量发现算法的两个重要参数度数(表示邻居关系数、路由表的容量)和链路长度(发现算法的平均路径长度)之间存在渐进曲线的关系。

研究者采用图论中度数(Degree)和直径(Diameter)两个参数研究DHT发现算法,发现这些DHT发现算法在度数和直径之间存在渐进曲线关系,如下图所示。在N个结点网络中,图中直观显示出当度数为N时,发现算法的直径为O(1);当每个结点仅维护一个邻居时,发现算法的直径为O(N)。这是度数和直径关系的2种极端情况。同时,研究以图论的理论分析了O(d)的度和O(d)的直径的算法是不可能的。

从渐进曲线关系可以看出,如果想获得更短的路径长度,必然导致度数的增加;而网络实际连接状态的变化造成大度数邻居关系的维护复杂程度增加。另外,研究者证明O(logN)甚至O(logN/loglogN)的平均路径长度也不能满足状态变化剧烈的网络应用的需求。新的发现算法受到这种折衷关系制约的根本原因在于DHT对网络拓扑结构的确定性认识。

非结构化P2P系统中发现技术一直采用洪泛转发的方式,与DHT的启发式发现算法相比,可靠性差,对网络资源的消耗较大。最新的研究从提高发现算法的可靠性和寻找随机图中的最短路径两个方面展开。也就是对重叠网络的重新认识。其中,small world特征和幂规律证明实际网络的拓扑结构既不是非结构化系统所认识的一个完全随机图,也不是DHT发现算法采用的确定性拓扑结构。

实际网络体现的幂规律分布的含义可以简单解释为在网络中有少数结点有较高的“度”,多数结点的“度”较低。度较高的结点同其他结点的联系比较多,通过它找到待查信息的概率较高。

Small-world[a][b]模型的特性:网络拓扑具有高聚集度和短链的特性。在符合small world特性的网络模型中,可以根据结点的聚集度将结点划分为若干簇(Cluster),在每个簇中至少存在一个度最高的结点为中心结点。大量研究证明了以Gnutella为代表的P2P网络符合small world特征,也就是网络中存在大量高连通结点,部分结点之间存在“短链”现象。

因此,P2P发现算法中如何缩短路径长度的问题变成了如何找到这些“短链”的问题。尤其是在DHT发现算法中,如何产生和找到“短链”是发现算法设计的一个新的思路。small world特征的引入会对P2P发现算法产生重大影响。

P2P普及系列之七

有DHT算法由于采用分布式散列函数,所以只适合于准确的查找,如果要支持目前Web上搜索引擎具有的多关键字查找的功能,还要引入新的方法。主要的原因在于DHT的工作方式。

基于DHT的P2P系统采用相容散列函数根据精确关键词进行对象的定位与发现。散列函数总是试图保证生成的散列值均匀随机分布,结果两个内容相似度很高但不完全相同的对象被生成了完全不同的散列值,存放到了完全随机的两个结点上。因此,DHT可以提供精确匹配查询,但是支持语义是非常困难的。

目前在DHT基础上开展带有语义的资源管理技术的研究还非常少。由于DHT的精确关键词映射的特性决定了无法和信息检索等领域的研究成果结合,阻碍了基于DHT的P2P系统的大规模应用。

P2P发现技术中最重要的研究成果应该是基于small world理论的非结构化发现算法和基于DHT的结构化发现算法。尤其是DHT及其发现技术为资源的组织与查找提供了一种新的方法。

随着P2P系统实际应用的发展,物理网络中影响路由的一些因素开始影响P2P发现算法的效率。一方面,实际网络中结点之间体现出较大的差异,即异质性。由于客户机/服务器模式在Internet和分布式领域十几年的应用和大量种类的电子设备的普及,如手提电脑、移动电话或PDA。这些设备在计算能力、存储空间和电池容量上差别很大。另外,实际网络被路由器和交换机分割成不同的自治区域,体现出严密的层次性。

另一方面,网络波动的程度严重影响发现算法的效率。网络波动(Churn、fluctuation of network)包括结点的加入、退出、失败、迁移、并发加入过程、网络分割等。DHT的发现算法如Chord、CAN、Koorde等都是考虑网络波动的最差情况下的设计与实现。由于每个结点的度数尽量保持最小,这样需要响应的成员关系变化的维护可以比较小,从而可以快速恢复网络波动造成的影响。但是每个结点仅有少量路由状态的代价是发现算法的高延时,因为每一次查找需要联系多个结点,在稳定的网络中这种思路是不必要的。

同时,作为一种资源组织与发现技术必然要支持复杂的查询,如关键词、内容查询等。尽管信息检索和数据挖掘领域提供了大量成熟的语义查询技术,由于DHT精确关键词映射的特性阻碍了DHT在复杂查询方面的应用。

P2P普及系列之八

Internet作为当今人类社会信息化的标志,其规模正以指数速度高速增长.如今Internet的“面貌”已与其原型ARPANET大相径庭,依其高度的复杂性,可以将其看作一个由计算机构成的“生态系统”.虽然Internet是人类亲手建造的,但却没有人能说出这个庞然大物看上去到底是个什么样子,运作得如何.Internet拓扑建模研究就是探求在这个看似混乱的网络之中蕴含着哪些还不为我们所知的规律.发现Internet拓扑的内在机制是认识Internet的必然过程,是在更高层次上开发利用Internet的基础.然而,Internet与生俱来的异构性动态性发展的非集中性以及如今庞大的规模都给拓扑建模带来巨大挑战.Internet拓扑建模至今仍然是一个开放性问题,在计算机网络研究中占有重要地位.

Internet拓扑作为Internet这个自组织系统的“骨骼”,与流量协议共同构成模拟Internet的3个组成部分,即在拓扑网络中节点间执行协议,形成流量.Internet拓扑模型是建立Internet系统模型的基础,由此而体现的拓扑建模意义也可以说就是Internet建模的意义,即作为一种工具,人们用其来对Internet进行分析预报决策或控制.Internet模型中的拓扑部分刻画的是Internet在宏观上的特征,反映一种总体趋势,所以其应用也都是在大尺度上展开的.对Internet拓扑模型的需求主要来自以下几个方面1) 许多新应用或实验不适合直接应用于Internet,其中一些具有危害性,如蠕虫病毒在大规模网络上的传播模拟;(2) 对于一些依赖于网络拓扑的协议(如多播协议),在其研发阶段,当前Internet拓扑只能提供一份测试样本,无法对协议进行全面评估,需要提供多个模拟拓扑环境来进行实验;(3) 从国家安全角度考虑,需要在线控制网络行为,如美国国防高级研究计划局(DARPA)的NMS(network modeling and simulation)项目。

随机网络是由N个顶点构成的图中,可以存在条边,我们从中随机连接M条边所构成的网络。还有一种生成随机网络的方法是,给一个概率p,对于中任何一个可能连接,我们都尝试一遍以概率p的连接。如果我们选择M = p,这两种随机网络模型就可以联系起来。对于如此简单的随机网络模型,其几何性质的研究却不是同样的简单。随机网络几何性质的研究是由Paul,Alfréd Rényi和Béla Bollobás在五十年代到六十年代之间完成的。随机网络在Internet的拓扑中占有很重要的位置。

随机网络参数
描述随机网络有一些重要的参数。一个节点所拥有的度是该节点与其他节点相关联的边数,度是描述网络局部特性的基本参数。网络中并不是所有节点都具有相同的度,系统中节点度的分布情况,可以用分布函数描述,度分布函数反映了网络系统的宏观统计特征。理论上利用度分布可以计算出其他表征全局特性参数的量化数值。

聚集系数是描述与第三个节点连接的一对节点被连接的概率。从连接节点的边的意义上,若为第i个节点的度,在由k.个近邻节点构成的子网中,实际存在的边数E(i)与全部k.个节点完全连接时的总边数充的比值定义为节点i的聚集系数。

Ⅳ 要成为一名专业的程序员,从零开始需要怎么一步步来比较好,要把最底层的先学精通吗(个人认为)求学长

前言
你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发)
建议:
不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。
回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。
一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节。
一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。
注:你也许会很奇怪为什么下面的东西很偏Unix/linux,这是因为我觉得Windows下的编程可能会在未来很没有前途,原因如下:
现在的用户界面几乎被两个东西主宰了,1)Web,2)移动设备iOS或Android。Windows的图形界面不吃香了。
越来越多的企业在用成本低性能高的Linux和各种开源技术来构架其系统,Windows的成本太高了。
微软的东西变得太快了,很不持久,他们完全是在玩弄程序员。详情参见《Windows编程革命史》
所以,我个人认为以后的趋势是前端是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。
启蒙入门
1、 学习一门脚本语言,例如python/Ruby
可以让你摆脱对底层语言的恐惧感,脚本语言可以让你很快开发出能用得上的小程序。实践项目:
处理文本文件,或者csv (关键词 python csv, python open, python sys) 读一个本地文件,逐行处理(例如 word count,或者处理log)
遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果
跟数据库打交道 (python sqlite),写一个小脚本统计数据库里条目数量
学会用各种print之类简单粗暴的方式进行调试
学会用Google (phrase, domain, use reader to follow tech blogs)
为什么要学脚本语言,因为他们实在是太方便了,很多时候我们需要写点小工具或是脚本来帮我们解决问题,你就会发现正规的编程语言太难用了。
2、 用熟一种程序员的编辑器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,学会如何配置代码补全,外观,外部命令等。
Source Insight (或 ctag)
使用这些东西不是为了Cool,而是这些编辑器在查看、修改代码/配置文章/日志会更快更有效率。
3、 熟悉Unix/Linux Shell和常见的命令行
如果你用windows,至少学会用虚拟机里的linux, vmware player是免费的,装个Ubuntu吧
一定要少用少用图形界面。
学会使用man来查看帮助
文件系统结构和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
学会使用一些文本操作命令 sed/awk/grep/tail/less/more …
学会使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…
了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息
了解正则表达式,使用正则表达式来查找文件。
对于程序员来说Unix/Linux比Windows简单多了。(参看我四年前CSDN的博文《其实Unix很简单》)学会使用Unix/Linux你会发现图形界面在某些时候实在是太难用了,相当地相当地降低工作效率。
4、 学习Web基础(HTML/CSS/JS) + 服务器端技术 (LAMP)
未来必然是Web的世界,学习WEB基础的最佳网站是W3School。
学习HTML基本语法
学习CSS如何选中HTML元素并应用一些基本样式(关键词:box model)
学会用 Firefox + Firebug 或 chrome 查看你觉得很炫的网页结构,并动态修改。
学习使用Javascript操纵HTML元件。理解DOM和动态网页(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 网上有免费的章节,足够用了。或参看 DOM 。
学会用 Firefox + Firebug 或 chrome 调试Javascript代码(设置断点,查看变量,性能,控制台等)
在一台机器上配置Apache 或 Nginx
学习php,让后台PHP和前台HTML进行数据交互,对服务器相应浏览器请求形成初步认识。实现一个表单提交和反显的功能。
把PHP连接本地或者远程数据库 MySQL(MySQL 和 SQL现学现用够了)
跟完一个名校的网络编程课程(例如:http://www.stanford.e/~ouster/cgi-bin/cs142-fall10/index.php ) 不要觉得需要多于一学期时间,大学生是全职一学期选3-5门课,你业余时间一定可以跟上
学习一个javascript库(例如jQuery 或 ExtJS)+ Ajax (异步读入一个服务器端图片或者数据库内容)+JSON数据格式。
HTTP: The Definitive Guide 读完前4章你就明白你每天上网用浏览器的时候发生的事情了(proxy, gateway, browsers)
做个小网站(例如:一个小的留言板,支持用户登录,Cookie/Session,增、删、改、查,上传图片附件,分页显示)
买个域名,租个空间,做个自己的网站。
进阶加深
1、 C语言和操作系统调用
重新学C语言,理解指针和内存模型,用C语言实现一下各种经典的算法和数据结构。推荐《计算机程序设计艺术》、《算法导论》和《编程珠玑》。
学习(麻省理工免费课程)计算机科学和编程导论
学习(麻省理工免费课程)C语言内存管理
学习Unix/Linux系统调用(Unix高级环境编程),,了解系统层面的东西。
用这些系统知识操作一下文件系统,用户(实现一个可以拷贝目录树的小程序)
用fork/wait/waitpid写一个多进程的程序,用pthread写一个多线程带同步或互斥的程序。多进程多进程购票的程序。
用signal/kill/raise/alarm/pause/sigprocmask实现一个多进程间的信号量通信的程序。
学会使用gcc和gdb来编程和调试程序(参看我的《用gdb调试程序》)
学会使用makefile来编译程序。(参看我的《跟我一起写makefile》)
IPC和Socket的东西可以放到高级中来实践。
学习Windows SDK编程(Windows 程序设计 ,MFC程序设计)
写一个窗口,了解WinMain/WinProcere,以及Windows的消息机制。
写一些程序来操作Windows SDK中的资源文件或是各种图形控件,以及作图的编程。
学习如何使用MSDN查看相关的SDK函数,各种WM_消息以及一些例程。
这本书中有很多例程,在实践中请不要照抄,试着自己写一个自己的例程。
不用太多于精通这些东西,因为GUI正在被Web取代,主要是了解一下Windows 图形界面的编程。@virushuo 说:“ 我觉得GUI确实不那么热门了,但充分理解GUI工作原理是很重要的。包括移动设备开发,如果没有基础知识仍然很吃力。或者说移动设备开发必须理解GUI工作,或者在win那边学,或者在mac/iOS上学”。
2、学习Java
Java 的学习主要是看经典的Core Java 《Java 核心技术编程》和《Java编程思想》(有两卷,我仅链了第一卷,足够了,因为Java的图形界面了解就可以了)
学习JDK,学会查阅Java API Doc Java Platform SE 6
了解一下Java这种虚拟机语言和C和Python语言在编译和执行上的差别。从C、Java、Python思考一下“跨平台”这种技术。
学会使用IDE Eclipse,使用Eclipse 编译,调试和开发Java程序。
建一个Tomcat的网站,尝试一下JSP/Servlet/JDBC/MySQL的Web开发。把前面所说的那个PHP的小项目试着用JSP和Servlet实现一下。
3、Web的安全与架构

学习HTML5,网上有很多很多教程,以前酷壳也介绍过很多,我在这里就不罗列了。
学习Web开发的安全问题(参考新浪微博被攻击的这个事,以及Ruby的这篇文章)
学习HTTP Server的rewrite机制,Nginx的反向代理机制,fast-cgi(如:PHP-FPM)
学习Web的静态页面缓存技术。
学习Web的异步工作流处理,数据Cache,数据分区,负载均衡,水平扩展的构架。
实践任务:
使用HTML5的canvas 制作一些Web动画。
尝试在前面开发过的那个Web应用中进行SQL注入,JS注入,以及XSS攻击。
把前面开发过的那个Web应用改成构造在Nginx + PHP-FPM + 静态页面缓存的网站
4、学习关系型数据库
你可以安装MSSQLServer或MySQL来学习数据库。
学习教科书里数据库设计的那几个范式,1NF,2NF,3NF,……
学习数据库的存过,触发器,视图,建索引,游标等。
学习SQL语句,明白表连接的各种概念(参看《SQL Join的图示》)
学习如何优化数据库查询(参看《MySQL的优化》)
实践任务:设计一个论坛的数据库,至少满足3NF,使用SQL语句查询本周,本月的最新文章,评论最多的文章,最活跃用户。
5、一些开发工具
学会使用SVN或Git来管理程序版本。
学会使用JUnit来对Java进行单元测试。
学习C语言和Java语言的coding standard 或 coding guideline。(我N年前写过一篇关C语言非常简单的文章——《编程修养》,这样的东西你可以上网查一下,一大堆)。
推荐阅读《代码大全》《重构》《代码整洁之道》
高级深入
1、C++ / Java 和面向对象
我个人以为学好C++,Java也就是举手之劳。但是C++的学习曲线相当的陡。不过,我觉得C++是最需要学好的语言了。参看两篇趣文“C++学习信心图” 和“21天学好C++”
学习(麻省理工免费课程)C++面向对象编程
读我的 “如何学好C++”中所推荐的那些书至少两遍以上(如果你对C++的理解能够深入到像我所写的《C++虚函数表解析》或是《C++对象内存存局(上)(下)》,或是《C/C++返回内部静态成员的陷阱》那就非常不错了)
然后反思为什么C++要干成这样,Java则不是?你一定要学会对比C++和Java的不同。比如,Java中的初始化,垃圾回收,接口,异常,虚函数,等等。
实践任务:
用C++实现一个BigInt,支持128位的整形的加减乘除的操作。
用C++封装一个数据结构的容量,比如hash table。
用C++封装并实现一个智能指针(一定要使用模板)。
《设计模式》必需一读,两遍以上,思考一下,这23个模式的应用场景。主要是两点:1)钟爱组合而不是继承,2)钟爱接口而不是实现。(也推荐《深入浅出设计模式》)
实践任务:
使用工厂模式实现一个内存池。
使用策略模式制做一个类其可以把文本文件进行左对齐,右对齐和中对齐。
使用命令模式实现一个命令行计算器,并支持undo和redo。
使用修饰模式实现一个酒店的房间价格订价策略——旺季,服务,VIP、旅行团、等影响价格的因素。
学习STL的用法和其设计概念 - 容器,算法,迭代器,函数子。如果可能,请读一下其源码
实践任务:尝试使用面向对象、STL,设计模式、和WindowsSDK图形编程的各种技能
做一个贪吃蛇或是俄罗斯方块的游戏。支持不同的级别和难度。
做一个文件浏览器,可以浏览目录下的文件,并可以对不同的文件有不同的操作,文本文件可以打开编辑,执行文件则执行之,mp3或avi文件可以播放,图片文件可以展示图片。
学习C++的一些类库的设计,如: MFC(看看候捷老师的《深入浅出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能会太难了,但是如果你能了解其中的设计模式和设计那就太好了,如果你能深入到我写的《STL string类的写时拷贝技术》那就非常不错了,ACE需要很强在的系统知识,参见后面的“加强对系统的了解”)
Java是真正的面向对象的语言,Java的设计模式多得不能再多,也是用来学习面向对象的设计模式的最佳语言了(参看Java中的设计模式)。
推荐阅读《Effective Java》 and 《Java解惑》
学习Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是学习Java的设计,如IoC等。
Java的技术也是烂多,重点学习J2EE架构以及JMS, RMI, 等消息传递和远程调用的技术。
学习使用Java做Web Service (官方教程在这里)
实践任务: 尝试在Spring或Hibernate框架下构建一个有网络的Web Service的远程调用程序,并可以在两个Service中通过JMS传递消息。
C++和Java都不是能在短时间内能学好的,C++玩是的深,Java玩的是广,我建议两者选一个。我个人的学习经历是:
深究C++(我深究C/C++了十来年了)
学习Java的各种设计模式。
2、加强系统了解
重要阅读下面的几本书:
《Unix编程艺术》了解Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验。你一定会有一种醍醐灌顶的感觉。
《Unix网络编程卷1,套接字》这是一本看完你就明白网络编程的书。重要注意TCP、UDP,以及多路复用的系统调用select/poll/epoll的差别。
《TCP/IP详解 卷1:协议》- 这是一本看完后你就可以当网络黑客的书。了解以太网的的运作原理,了解TCP/IP的协议,运作原理以及如何TCP的调优。
实践任务:
理解什么是阻塞(同步IO),非阻塞(异步IO),多路复用(select, poll, epoll)的IO技术。
写一个网络聊天程序,有聊天服务器和多个聊天客户端(服务端用UDP对部分或所有的的聊天客户端进Multicast或Broadcast)。
写一个简易的HTTP服务器。
《Unix网络编程卷2,进程间通信》信号量,管道,共享内存,消息等各种IPC…… 这些技术好像有点老掉牙了,不过还是值得了解。
实践任务:
主要实践各种IPC进程序通信的方法。
尝试写一个管道程序,父子进程通过管道交换数据。
尝试写一个共享内存的程序,两个进程通过共享内存交换一个C的结构体数组。
学习《Windows核心编程》一书。把CreateProcess,Windows线程、线程调度、线程同步(Event, 信号量,互斥量)、异步I/O,内存管理,DLL,这几大块搞精通。
实践任务:使用CreateProcess启动一个记事本或IE,并监控该程序的运行。把前面写过的那个简易的HTTP服务用线程池实现一下。写一个DLL的钩子程序监控指定窗口的关闭事件,或是记录某个窗口的按键。
有了多线程、多进程通信,TCP/IP,套接字,C++和设计模式的基本,你可以研究一下ACE了。使用ACE重写上述的聊天程序和HTTP服务器(带线程池)
实践任务:通过以上的所有知识,尝试
写一个服务端给客户端传大文件,要求把100M的带宽用到80%以上。(注意,磁盘I/O和网络I/O可能会很有问题,想一想怎么解决,另外,请注意网络传输最大单元MTU)
了解BT下载的工作原理,用多进程的方式模拟BT下载的原理。
3、系统架构
负载均衡。HASH式的,纯动态式的。(可以到Google学术里搜一些关于负载均衡的文章读读)
多层分布式系统 – 客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是经典的多层结构。
CDN系统 – 就近访问,内容边缘化。
P2P式系统,研究一下BT和电驴的算法。比如:DHT算法。
服务器备份,双机备份系统(Live-Standby和Live-Live系统),两台机器如何通过心跳监测对方?集群主结点备份。
虚拟化技术,使用这个技术,可以把操作系统当应用程序一下切换或重新配置和部署。
学习Thrift,二进制的高性能的通讯中间件,支持数据(对象)序列化和多种类型的RPC服务。
学习Hadoop。Hadoop框架中最核心的设计就是:MapRece和HDFS。MapRece的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapRece就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。
了解NoSQL数据库(有人说可能是一个过渡炒作的技术),不过因为超大规模以及高并发的纯动态型网站日渐成为主流,而SNS类网站在数据存取过程中有着实时性等刚性需求,这使得目前NoSQL数据库慢慢成了人们所关注的焦点,并大有成为取代关系型数据库而成为未来主流数据存储模式的趋势。当前NoSQL数据库很多,大部分都是开源的,其中比较知名的有:MemcacheDB、Redis、Tokyo Cabinet(升级版为Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。

Ⅳ mac上的bt下载工具

mac上的bt下载工具除了迅雷还有Folx,并且有做过测试,Folx的下载速度比迅雷快多了。

Ⅵ 程序员高级深入应该学习哪些知识

安博志远课程设置 1、C++ / Java 和面向对象我个人以为学好C++,Java也就是举手之劳。但是C++的学习曲线相当的陡。不过,我觉得C++是最需要学好的语言了。参看两篇趣文“C++学习信心图” 和“21天学好C++”学习(麻省理工免费课程)C++面向对象编程读我的 “如何学好C++”中所推荐的那些书至少两遍以上(如果你对C++的理解能够深入到像我所写的《C++虚函数表解析》或是《C++对象内存存局(上)(下)》,或是《C/C++返回内部静态成员的陷阱》那就非常不错了)然后反思为什么C++要干成这样,Java则不是?你一定要学会对比C++和Java的不同。比如,Java中的初始化,垃圾回收,接口,异常,虚函数,等等。实践任务:用C++实现一个BigInt,支持128位的整形的加减乘除的操作。用C++封装一个数据结构的容量,比如hash table。用C++封装并实现一个智能指针(一定要使用模板)。《设计模式》必需一读,两遍以上,思考一下,这23个模式的应用场景。主要是两点:1)钟爱组合而不是继承,2)钟爱接口而不是实现。(也推荐《深入浅出设计模式》)实践任务:使用工厂模式实现一个内存池。使用策略模式制做一个类其可以把文本文件进行左对齐,右对齐和中对齐。使用命令模式实现一个命令行计算器,并支持undo和redo。使用修饰模式实现一个酒店的房间价格订价策略——旺季,服务,VIP、旅行团、等影响价格的因素。学习STL的用法和其设计概念 - 容器,算法,迭代器,函数子。如果可能,请读一下其源码。实践任务: 尝试使用面向对象、STL,设计模式、和WindowsSDK图形编程的各种技能 做一个贪吃蛇或是俄罗斯方块的游戏。支持不同的级别和难度。做一个文件浏览器,可以浏览目录下的文件,并可以对不同的文件有不同的操作,文本文件可以打开编辑,执行文件则执行之,mp3或avi文件可以播放,图片文件可以展示图片。学习C++的一些类库的设计,如: MFC(看看候捷老师的《深入浅出MFC》),Boost, ACE, CPPUnit,STL (STL可能会太难了,但是如果你能了解其中的设计模式和设计那就太好了,如果你能深入到我写的《STL string类的写时拷贝技术》那就非常不错了,ACE需要很强在的系统知识,参见后面的“加强对系统的了解”)Java是真正的面向对象的语言,Java的设计模式多得不能再多,也是用来学习面向对象的设计模式的最佳语言了(参看Java中的设计模式)。推荐阅读《Effective Java》 and 《Java解惑》学习Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是学习Java的设计,如IoC等。Java的技术也是烂多,重点学习J2EE架构以及JMS, RMI, 等消息传递和远程调用的技术。学习使用Java做Web Service (官方教程在这里)实践任务: 尝试在Spring或Hibernate框架下构建一个有网络的Web Service的远程调用程序,并可以在两个Service中通过JMS传递消息。C++和Java都不是能在短时间内能学好的,C++玩是的深,Java玩的是广,我建议两者选一个。我个人的学习经历是:深究C++(我深究C/C++了十来年了)学习Java的各种设计模式。2、加强系统了解重要阅读下面的几本书:《Unix编程艺术》了解Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验。你一定会有一种醍醐灌顶的感觉。《Unix网络编程卷1,套接字》这是一本看完你就明白网络编程的书。重要注意TCP、UDP,以及多路复用的系统调用select/poll/epoll的差别。《TCP/IP详解 卷1:协议》- 这是一本看完后你就可以当网络黑客的书。了解以太网的的运作原理,了解TCP/IP的协议,运作原理以及如何TCP的调优。实践任务:理解什么是阻塞(同步IO),非阻塞(异步IO),多路复用(select, poll, epoll)的IO技术。写一个网络聊天程序,有聊天服务器和多个聊天客户端(服务端用UDP对部分或所有的的聊天客户端进Multicast或Broadcast)。写一个简易的HTTP服务器。《Unix网络编程卷2,进程间通信》信号量,管道,共享内存,消息等各种IPC…… 这些技术好像有点老掉牙了,不过还是值得了解。实践任务:主要实践各种IPC进程序通信的方法。尝试写一个管道程序,父子进程通过管道交换数据。尝试写一个共享内存的程序,两个进程通过共享内存交换一个C的结构体数组。学习《Windows核心编程》一书。把CreateProcess,Windows线程、线程调度、线程同步(Event, 信号量,互斥量)、异步I/O,内存管理,DLL,这几大块搞精通。实践任务: 使用CreateProcess启动一个记事本或IE,并监控该程序的运行。把前面写过的那个简易的HTTP服务用线程池实现一下。写一个DLL的钩子程序监控指定窗口的关闭事件,或是记录某个窗口的按键。有了多线程、多进程通信,TCP/IP,套接字,C++和设计模式的基本,你可以研究一下ACE了。使用ACE重写上述的聊天程序和HTTP服务器(带线程池)实践任务: 通过以上的所有知识,尝试 写一个服务端给客户端传大文件,要求把100M的带宽用到80%以上。(注意,磁盘I/O和网络I/O可能会很有问题,想一想怎么解决,另外,请注意网络传输最大单元MTU)了解BT下载的工作原理,用多进程的方式模拟BT下载的原理。3、系统架构负载均衡。HASH式的,纯动态式的。(可以到Google学术里搜一些关于负载均衡的文章读读)多层分布式系统 – 客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是经典的多层结构。CDN系统– 就近访问,内容边缘化。P2P式系统,研究一下BT和电驴的算法。比如:DHT算法。服务器备份,双机备份系统(Live-Standby和Live-Live系统),两台机器如何通过心跳监测对方?集群主结点备份。虚拟化技术,使用这个技术,可以把操作系统当应用程序一下切换或重新配置和部署。学习Thrift,二进制的高性能的通讯中间件,支持数据(对象)序列化和多种类型的RPC服务。学习Hadoop。Hadoop框架中最核心的设计就是:MapRece和HDFS。MapRece的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapRece就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。了解NoSQL数据库(有人说可能是一个过渡炒作的技术),不过因为超大规模以及高并发的纯动态型网站日渐成为主流,而SNS类网站在数据存取过程中有着实时性等刚性需求,这使得目前NoSQL数据库慢慢成了人们所关注的焦点,并大有成为取代关系型数据库而成为未来主流数据存储模式的趋势。当前NoSQL数据库很多,大部分都是开源的,其中比较知名的有:MemcacheDB、Redis、Tokyo Cabinet(升级版为Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。写了那么多,回顾一下,觉得自己相当的有成就感。希望大家不要吓着,我自己这十来年也在不断地学习,今天我也在学习中,人生本来就是一个不断学习和练级的过程。不过,一定有漏的,也有不对的,还希望大家补充和更正。 关键字: 程序员高级深入

Ⅶ java编程问题

class Vehicle {
private int wheels;
private float weight;

public Vehicle() {
// TODO Auto-generated constructor stub
}

public Vehicle(int w, int wt) {
wheels = w;
weight = wt;
}

public int getWheels() {
return wheels;
}
public void setWheels(int wheels) {
this.wheels = wheels;
}
public float getWeight() {
return weight;
}
public void setWeight(float weight) {
this.weight = weight;
}

public String toString() {
return "widht=" + weight + ";wheels=" + wheels;
}
}

class Car extends Vehicle {
private int loader;

public Car() {

}

public Car(int l) {
loader =l;
}
public int getLoader() {
return loader;
}

public void setLoader(int loader) {
this.loader = loader;
}

public String toString() {
return super.toString() + ";loader="+loader;
}
}

class Truck {
private int payload;

public Truck() {
}

public Truck(int pay) {
payload = pay;
}

public int getPayload() {
return payload;
}

public void setPayload(int payload) {
this.payload = payload;
}

public String toString () {
return super.toString() + ";payload=" + payload;
}
}

Ⅷ 大数据开发工程师要学习哪些课程

1.大数据工程师工作中会做什么?

集群运维:安装、测试、运维各种大数据组件
数据开发:细分一点的话会有ETL工程师、数据仓库工程师等
数据系统开发:偏重Web系统开发,比如报表系统、推荐系统等
这里面有很多内容其实是十分重合的,下面大致聊一下每一块内容大致需要学什么,以及侧重点。
2.集群运维
数据工程师,基本上是离不开集群搭建,比如hadoop、Spark、Kafka,不要指望有专门的运维帮你搞定,新组件的引入一般都要自己来动手的。
因此这就要求数据工程师了解各种大数据的组件。
由于要自己的安装各种开源的组件,就要求数据工程师要具备的能力: Linux 。要对Linux比较熟悉,能各种自己折腾着玩。
由于现在的大数据生态系统基本上是 JVM系的,因此在语言上,就不要犹豫了,JVM系的Java和Scala基本上跑不掉,Java基本上要学的很深,Scala就看情况了。
3. ETL
ETL在大数据领域主要体现在各种数据流的处理。这一块一方面体现在对一些组件的了解上,比如Sqoop、Flume、Kafka、Spark、MapRece;另一方面就是编程语言的需要,Java、Shell和Sql是基本功。
4.系统开发
我们大部分的价值最后都会由系统来体现,比如报表系统和推荐系统。因此就要求有一定的系统开发能力,最常用的就是 Java Web这一套了,当然Python也是挺方便的。
需要注意的是,一般数据开发跑不掉的就是各种提数据的需求,很多是临时和定制的需求,这种情况下, Sql就跑不掉了,老老实实学一下Sql很必要。
如何入门?
前面提到了一些数据工程师会用到的技能树,下面给一个入门的建议,完全个人意见。
1.了解行业情况
刚开始一定要了解清楚自己和行业的情况,很多人根本就分不清招聘信息中的大数据和数据挖掘的区别就说自己要转行,其实是很不负责的。不要总是赶热点,反正我就是经常被鄙视做什么大数据开发太Low,做数据就要做数据挖掘,不然永远都是水货。
2.选择学习途径
如果真是清楚自己明确地想转数据开发了,要考虑一下自己的时间和精力,能拿出来多少时间,而且在学习的时候最好有人能多指点下,不然太容易走弯路了。
在选择具体的学习途径时,要慎重一点,有几个选择:
自学
报班
找人指点
别的不说了,报班是可以考虑的,不要全指望报个辅导班就能带你上天,但是可以靠他帮你梳理思路。如果有专业从事这一行的人多帮帮的话,是最好的。不一定是技术好,主要是可沟通性强。
3.学习路线
学习路线,下面是一个大致的建议:
第一阶段
先具备一定的Linux和Java的基础,不一定要特别深,先能玩起来,Linux的话能自己执行各种操作,Java能写点小程序。这些事为搭建Hadoop环境做准备。
学习Hadoop,学会搭建单机版的Hadoop,然后是分布式的Hadoop,写一些MR的程序。
接着学学Hadoop生态系统的其它大数据组件,比如Spark、Hive、Hbase,尝试去搭建然后跑一些官网的Demo。
Linux、Java、各种组件都有一些基础后,要有一些项目方面的实践,这时候找一些成功案例,比如搜搜各种视频教程中如何搞一个推荐系统,把自己学到的用起来。
第二阶段
到这里是一个基本的阶段了,大致对数据开发有一些了解了。接着要有一些有意思内容可以选学。
数据仓库体系:如何搞数据分层,数据仓库体系该如何建设,可以有一些大致的了解。
用户画像和特征工程:这一部分越早了解越好。
一些系统的实现思路:比如调度系统、元数据系统、推荐系统这些系统如何实现。
第三阶段
下面要有一些细分的领域需要深入进行,看工作和兴趣来选择一些来深入进行
分布式理论:比如Gossip、DHT、Paxo这些构成了各种分布式系统的底层协议和算法,还是要学一下的。
数据挖掘算法:算法是要学的,但是不一定纯理论,在分布式环境中实现算法,本身就是一个大的挑战。
各种系统的源码学习:比如Hadoop、Spark、Kafka的源码,想深入搞大数据,源码跑不掉。

Ⅸ 电脑的专业术语有哪些

这方面的术语的确太多!你选修的这个应该是硬件方面的我先给这些吧 电脑硬件英文术语完全介绍 (显示设备篇)(仅作积累)音频
3DPA(3DPositionalAudio,3D定位音频)
AAC(AdvancedAudioCompression,高级音频压缩
AC(AcousticEdge,声学边缘)
AC(AudioCodec,音频多媒体数字信号编解码器)
AC-3(AudioCoding3,第三代音响编码)
AC97(AudioCodec'97,多媒体数字信号解编码器1997年标准)
ACIRC(AdvancedCrossInterleaveReed-SolomonCode,高级交叉插入里德所罗门代码)
ADIP(ADdressInPre-groove,地址预刻)
AFC(Amplitude-frequencycharacteristic,振幅频率特征)
AMC(audio/modemcodec,音频/调制解调器多媒体数字信号编解码器)
APS(AudioProctionStudio,音频生产工作室)
APX(AllPositioneXpansion全方位扩展)
ASIO(,音频流输入输出接口)
ATRAC(,可适应转换声学译码,MD专用数字声音数据压缩系统)
AUD_EXT(AudioExtension,音频扩展)
AUX(AuxiliaryInput,辅助输入接口)
CBR(ConstantBitRate,固定比特率)
CS(ChannelSeparation,声道分离)
CMSS(CreativeMultiSpeakerSurround,创新多音箱环绕)
CPRM(,记录媒体内容保护)
DAB(digitalaudiobroadcast,数字音频广播)
DBBS(DynamicBassBoostSystem,动态低音增强系统)
DCC(DigitalCompactCassette,数字盒式磁带)
DDMA(DistributedDMA,分布式DMA)
DDSS(DolbyDigitalSurroundSound,杜比数字环绕声)
DHT(DolbyHeadphoneTechnology,杜比耳机技术)
DLS(DownloadableSoundsLevel,可下载音色)
DLS-2(DownloadableSoundsLevel2,第二代可下载音色)
DS3D(DirectSound3DStreams)
DSD(DirectStreamDigital,直接数字信号流)
DSL(DownLoadableSample,可下载的取样音色)
DSO(DynamicSound-stageOrganizer,动态声音层组建)
DSP(DigitalSoundFieldProcessing,数字音场处理)
DTS(DigitalTheaterSystem,数字剧院系统)
DTT(DeskTopTheater,桌面剧院)
EAX(EnvironmentalAudioExtensions,环境音效扩展技术)
EFM(EighttoFourteenMolation,8位信号转换为14位信号)
ESP(Electronic-ShockProtection,电子抗震系统)
ExtendedStereo(扩展式立体声)
FM(FrequencyMolation,频率调制)
FIR(finiteimpulseresponse,有限推进响应)
FPS(FourPointSurround,创新的四点环绕扬声器系统)
FR(FrequenceResponse,频率响应)
FSE(FrequencyShifterEffect,频率转换效果)
GM(GeneralMidi,普通MIDI)
HDA(high-,高效高清楚气动)
Hi-fi(highfidelity,高精度设备)
HPF(High-PassFilter,高通滤波器)
HRTF(HeadRelatedTransferFunction,头部关联传输功能)
I3DL2(Interactive3DLevel2,第二级交互式3D音效)
IID(InterauralIntensityDifference,两侧声音强度差别)
IIR(infiniteimpulseresponse,无限推进响应)
InteractiveAround-Sound(交互式环绕声)
Interactive3DAudio(交互式3D音效)
ITD(InterauralTimeDifference,两侧声音时间延迟差别)
LFE(LowFrequencySoundChannel,低频声音通道)
LP(LongPlay,长时间播放)
LPF(Low-PassFilter,低通滤波器)
MC(modemcodec,调制解调器多媒体数字信号编解码器)
MDLP(MiniDiscLongPlay,长时间播放迷你光盘)
MFM(Magneticfieldmolation,磁场调制)
MIDI(,乐器数字接口)
NC(NoiseCanceling,降噪)
NDA:non-DWORD-aligned,非DWORD排列
NVH(Noise、Vibration、Harshness,噪声、振动和刺耳声)
QEM(QsoundEnvironmentalModeling,Qsound环境建模扬声器组)
QMSS(QSoundMultiSpeakerSystem,Qsound多音箱系统)
RawPCM:RawPulseCodeMolated(元脉码调制)
RMA:RealMediaArchitecture(实媒体架构)
RMAA(RightMarkAudioAnalyzer,公正标识音频分析软件)
RTSP:RealTimeStreamingProtocol(实时流协议)
SACD(SuperAudioCD,超级音乐CD)
SCMS(SerialCopyManagementSystem,连续复制管理系统,限制数字拷贝)
SDMI(SecureDigitalMusicInitiative,安全式数字音乐)
SNR(SignaltoNoiseRatio,信噪比)
S/PDIF(Sony/PhillipsDigitalInterface,索尼/飞利普数字接口)
SP(StreamProcessor,音频流处理器)
SPU(SoundProcessorUnit,声音处理器)
SPX(SoundProctionExperience,声音生成体验)
SPX(SoundProctioneXtensions,声音生成扩展)
SRC(SamplingRateConvertor,采样率转换器,把48KHz转为MD适用的44.1KHz)
SRS:SoundRetrievalSystem(声音修复系统)
SurroundSound(环绕立体声)
SuperIntelligentSoundASIC(超级智能音频集成电路)
TAD(TelephoneAnsweringDevice,电话应答设备)
TC(TimeScaling,时间缩放)
TDMA(TransparentDMA,透明DMA)
THD+N(,总谐波失真加噪音)
TOC(TableOfContents,MD内容表,包括磁盘名称、轨数、演奏时间)
TVA(TimeVariableAmplitude,可随时间变化的音量)
TVF(TimeVariableFilter,可随时间变化的滤波器)
UDAC-MB(-mediabase,通用分配存取控制媒体基准)
UTOC(UserTableofContents,可录式MD内容表)
VBR(VariableBitRate,动态比特率)
WG(WaveGuide,波导合成)
WT(WaveTable,波表合成) RAM&ROM
ABB(AdvancedBootBlock,高级启动块)
ABP:AddressBitPermuting,地址位序列改变
ADT(AdvancedDRAMTechnology,先进DRAM技术联盟)
AL(AdditiveLatency,附加反应时间)
ALDC(,适应无损数据压缩)
ATC(AccessTimefromClock,时钟存取时间)
ATP(ActivetoPrecharge,激活到预充电)
BEDO(BurstEnhancedData-OutRAM,突发型数据增强输出内存)
BPA(BitPackingArchitecture,位封包架构)
AFCmedia(,反铁磁性耦合介质)
BLP(BottomLeadedPackage,底部导向封装)
BSRAM(,突发式管道同步静态存储器)
CAS(ColumnAddressStrobe,列地址控制器)
CCT(ClockCycleTime,时钟周期)
CDRAM(CacheDRAM,附加缓存型DRAM)
CL(CASLatency,CAS反应时间)
CMR(ColossalMagnetoresistive,巨磁阻抗)
CPA(ClosePageAutoprecharge,接近页自动预充电)
CSP(ChipSizePackage,芯片尺寸封装)
CTR(CAStoRAS,列地址到行地址延迟时间)
DB:DeepBuffer(深度缓冲)
DD(DoubleSide,双面内存)
DDBGA(DieDimensionBallGridArray,内核密度球状矩阵排列)
DDR(DoubleDateRate,上下行双数据率)
DDRSDRAM(DoubleDateRate,上下行双数据率SDRAM)
DRCG(DirectRambusClockGenerator,直接RAMBUS时钟发生器)
DIL(al-in-line)
DIVA(DataIntensiVeArchitecture,数据加强架构)
DIMM(DualIn-lineMemoryMoles,双重内嵌式内存模块)
DLL(Delay-LockedLoop,延时锁定循环电路)
DQS(Bidirectionaldatastrobe,双向数据滤波)
DRAM(DynamicRandomAccessMemory,动态随机存储器)
DRDRAM(DirectRAMBUSDRAM,直接内存总线DRAM)
DRSL(DirectRAMBUSSignalingLevel,直接RAMBUS信号级)
DRSL(,微分RAMBUS信号级)
DSM(Distributedsharedmemory,分布式共享内存)
ECC(ErrorCheckingandCorrection,错误检查修正)
ED(Executiondriven,执行驱动)
EDO(EnhancedData-OutRAM,数据增强输出内存)
EHSDRAM(EnhancedHighSpeedDRAM,增强型超高速内存)
ELDDR(EnhancedLatencyDDR,增强反应周期DDR内存)
EMS(EnhancedMemorySystem,增强内存系统)
EMS(ExpandedMemorySpecification,扩充内存规格)
EOL(EndofLife,最终完成产品)
EPROM(erasable,programmableROM,可擦写可编程ROM)
EPOC(ElevatedPackageOverCSP,CSP架空封装)
EPV(ExtendedVoltageProteciton,扩展电压保护)
ESDRAM(EnhancedSDRAM,增强型SDRAM)
ESRAM(EnhancedSRAM,增强型SRAM)
EEPROM(,电擦写可编程只读存储器)
FCRAM(FastCycleRAM,快周期随机存储器)

Ⅹ 什么是p2p技术下载

以下是网络资料:
点对点技术 点对点技术(peer-to-peer, 简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad Hoc连接来连接节点。这类网络可以用于多种用途,各种档案分享软件已经得到了广泛的使用。P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。
纯点对点网络没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其它节点充当客户端和服务器。这种网络设计模型不同于客户端-服务器模型,在客户端-服务器模型中通信通常来往于一个中央服务器。
有些网络(如Napster, OpenNAP, 或IRC @find)的一些功能(比如搜索)使用客户端-服务器结构,而使用P2P结构来实现另外一些功能。类似Gnutella 或Freenet的网络则使用纯P2P结构来实现全部的任务。
历史
P2P 架构体现了一个互连网技术的关键概念,这一概念被描述在1969年4月7日第一份RFC文档“RFC1,主机软件”中。而最近,在不用中心索引服务器结构实现多媒体文件交换的背景下,这个概念已经变的非常普遍了。
纯P2P:
节点同时作为客户端和服务器端。
没有中心服务器。
没有中心路由器。
杂P2P:
有一个中心服务器保存节点的信息并对请求这些信息的要求做出响应。
节点负责发布这些信息(因为中心服务器并不保存文件),让中心服务器知道它们想共享什么文件,让需要它的节点下载其可共享的资源。
路由终端使用地址,通过被一组索引引用来取得绝对地址。
混合P2P:
同时含有纯P2P和杂P2P的特点。
P2P网络的优势
P2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽,存储空间和计算能力。因此,当有节点加入且对系统请求增多,整个系统的容量也增大。这是具有一组固定服务器的C/S结构不能实现的,这种结构中客户端的增加意味着所有用户更慢的数据传输。
P2P网络的分布特性通过在多节点上复制数据,也增加了防故障的健壮性,并且在纯P2P网络中,节点不需要依靠一个中心索引服务器来发现数据。在后一种情况下,系统也不会出现单点崩溃。
当用P2P来描述Napster 网络时,对等协议被认为是重要的,但是,实际中,Napster 网络取得的成就是对等节点(就象网络的末枝)联合一个中心索引来实现。这可以使它能快速并且高效的定位可用的内容。对等协议只是一种通用的方法来实现这一点。
应用
点对点技术有许多应用。共享包含各种格式音频,视频,数据等的文件是非常普遍的,实时数据(如IP电话通信)也可以使用P2P技术来传送。
有些网络和通信渠道,象Napster,OpenNAP,和IRC @find,一方面使用了C/S结构来处理一些任务(如搜索功能),另一方面又同时使用P2P结构来处理其他任务。而有些网络,如Gnutella 和 Freenet ,使用P2P结构来处理所有的任务,有时被认为是真正的P2P网络。尽管Gnutella 也使用了目录服务器来方便节点得到其它节点的网络地址。
学术性P2P网络
最近,宾夕法尼亚州立大学的开发者,联合了麻省理工学院开放知识行动,西蒙弗雷泽大学的研究人员,还有第二代互连网P2P工作组,正在开发一个P2P网络的学术性应用。这个项目称为LionShare,基于第二代网络技术,更详细地说是Gnutella模型。这个网络的主要目的是让众多不同学术机构的用户能够共享学术材料。LionShare网络使用杂P2P网络类型,混合了Gnutella分散的P2P网络和传统的C/S网络。这个程序的用户能够上传文件到一个服务器上,不管用户是否在线,都能够持续的共享。这个网络也允许在比正常小得多的共享社区中使用。
这个网络与当前正在使用的其他P2P网络的主要不同是LionShare网络不允许匿名用户。这样做的目的是防止版权材料在网络上共享,这同时也避免了法律纠纷。另一个不同是对不同组有选择性的共享个别的文件。用户能个别选择哪些用户可以接收这一个文件或者这一组文件。
学术社区需要这种技术,因为有越来越多的多媒体文件应用在课堂上。越来越多的的教授使用多媒体文件,象音频文件,视频文件和幻灯片。把这些文件传给学生是件困难的任务,而这如果用LionShare这类网络则容易的多。
法律方面
在美国法律中,“Betamax判决”的判例坚持复制“技术”不是本质非法的,如果它们有实质性非侵权用途。这个因特网广泛使用之前的决定被应用于大部分的数据网络,包括P2P网络,因为已得到认可的文件的传播也是可以的。这些非侵犯的使用包括发放开放源代码软件,公共领域文件和不在版权范围之内的作品。其他司法部门也可用类似的方式看待这个情况。
实际上,大多数在P2P网络上共享的文件是版权流行音乐和电影,包括各种格式(MP3,MPEG,RM 等)。在多数司法范围中,共享这些复本是非法的。这让很多观察者,包括多数的媒体公司和一些P2P的倡导者,批评这种网络已经对现有的发行模式造成了巨大的威胁。试图测量实际金钱损失的研究多少有些意义不明。虽然纸面上这些网络的存在而导致的大量损失,而实际上自从这些网络建成以来,实际的收入并没有多大的变化。不管这种威胁是否存在,美国唱片协会和美国电影协会正花费大量的钱来试着游说立法者来建立新的法律。一些版权拥有者也向公司出钱希望帮助在法律上挑战从事非法共享他们材料的用户。
尽管有Betamax判决,P2P网络已经成为那些艺术家和版权许可组织的代表攻击的靶子。这里面包括美国唱片协会和美国电影协会等行业组织。Napster 服务由于美国唱片协会的投诉而被迫关闭。在这个案例中,Napster故意地买卖这些并没有从版权所有者那得到许可发行的音像文件。
随着媒体公司打击版权侵犯的行为扩大,这些网络也迅速不断地作了调整,让无论从技术上还是法律上都难于撤除。这导致真正犯法的用户成为目标,因为虽然潜在的技术是合法的,但是用侵犯版权的方式来传播的个人对它的滥用很明显是非法的。
匿名P2P网络允许发布材料,无论合法不合法,在各种司法范围内都很少或不承担法律责任。很多人表示这将导致更多的非法材料更容易传播,甚至(有些人指出)促进恐怖主义,要求在这些领域对其进行规范。而其他人则反对说,非法使用的潜在能力不能阻止这种技术作为合法目的的使用,无罪推定必须得以应用,象其他非P2P技术的匿名服务,如电子邮件,同样有着相似的能力。
安全方面
许多P2P网络一直受到怀有各种目的的人的持续攻击。例子包括:
中毒攻击(提供内容与描述不同的文件)
拒绝服务攻击(使网络运行非常慢甚至完全崩溃)
背叛攻击(用户或软件使用网络却没有贡献出自己的资源)
在数据中插入病毒(如,下载或传递的文件可能被感染了病毒或木马)
P2P软件本身的木马(如,软件可能含有间谍软件)
过滤(网络运营商可能会试图禁止传递来自P2P网络上的数据)
身份攻击(如,跟踪网络上用户并且折磨或合法地攻击他们)
垃圾信息(如在网络上发送未请求的信息--不一定是拒绝服务攻击)
如果精心设计P2P网络,使用加密技术,大部分的攻击都可以避免或控制,P2P网络安全事实上与拜占庭将军问题有密切联系。然而,当很多的节点试着破坏它时,几乎任何网络也都会失效,而且许多协议会因用户少而表现得很失败。
计算技术展望
技术上,一个纯P2P应用必须贯彻只有对等协议,没有服务器和客户端的概念。但这样的纯P2P应用和网络是很少的,大部分称为P2P的网络和应用实际上包含了或者依赖一些非对等单元,如DNS。同时,真正的应用也使用了多个协议,使节点可以同时或分时做客户端,服务器,和对等节点。完全分散的对等网络已经使用了很多年了,象Usenet(1979年)和FidoNet(1984年)这两个例子。
很多P2P系统使用更强的对等点(称为超级对等点)作为服务器,那些客户节点以星状方式连接到一个超级对等点上。
在1990年代末期,为了促进对等网络应用的发展,SUN公司增加了一些类到java技术中,让开发者能开发分散的实时聊天的applet和应用,这是在即时通信流行之前。这个工作现在有JXTA工程来继续实现。
P2P系统和应用已经吸引了计算机科学研究的大量关注,一些卓越的研究计划包括Chord计划, ARPANET, the PAST storage utility, P-Grid(一个自发组织的新兴覆盖性网络),和CoopNet内容分发系统。
国内外现状
国外的P2P研究现状
国外开展P2P研究的学术团体主要包括P2P工作组(P2PWG) 、全球网格论坛(Global Grid Forum ,GGF) 。P2P工作组成立的主要目的是希望加速P2P计算基础设施的建立和相应的标准化工作。P2PWG成立之后,对P2P计算中的术语进行了统一,也形成相关的草案,但是在标准化工作方面工作进展缓慢。目前P2PWG已经和GGF合并,由该论坛管理P2P计算相关的工作。GGF负责网格计算和P2P计算等相关的标准化工作。
从国外公司对P2P计算的支持力度来看,Microsoft公司、Sun公司和Intel公司投入较大。Microsoft公司成立了Pastry项目组,主要负责P2P计算技术的研究和开发工作。目前Microsoft公司已经发布了基于Pastry的软件包SimPastry/ VisPastry。Rice大学也在Pastry的基础之上发布了FreePastry软件包。
在2000年8月,Intel公司宣布成立P2P工作组,正式开展P2P的研究。工作组成立以后,积极与应用开发商合作,开发P2P应用平台。2002年Intel发布了. Net基础架构之上的Accelerator Kit (P2P加速工具包) 和P2P安全API软件包,从而使得微软. NET开发人员能够迅速地建立P2P安全Web应用程序。
Sun公司以Java技术为背景,开展了JXTA项目。JXTA是基于Java的开源P2P平台,任何个人和组织均可以加入该项目。因此,该项目不仅吸引了大批P2P研究人员和开发人员,而且已经发布了基于JXTA的即时聊天软件包。JXTA定义了一组核心业务:认证、资源发现和管理。在安全方面,JXTA加入了加密软件包,允许使用该加密包进行数据加密,从而保证消息的隐私、可认证性和完整性。在JXTA核心之上,还定义了包括内容管理、信息搜索以及服务管理在内的各种其它可选JXTA服务。在核心服务和可选服务基础上,用户可以开发各种JXTA平台上的P2P应用。
国内的P2P研究现状
• 北京大学—Maze
Maze 是北京大学网络实验室开发的一个中心控制与对等连接相融合的对等计算文件共享系统,在结构上类似Napster,对等计算搜索方法类似于Gnutella。网络上的一台计算机,不论是在内网还是外网,可以通过安装运行Maze的客户端软件自由加入和退出Maze系统。每个节点可以将自己的一个或多个目录下的文件共享给系统的其他成员,也可以分享其他成员的资源。Maze支持基于关键字的资源检索,也可以通过好友关系直接获得。
• 清华大学—Granary
Granary是清华大学自主开发的对等计算存储服务系统。它以对象格式存储数据。另外,Granary设计了专门的结点信息收集算法PeerWindow的结构化覆盖网络路由协议Tourist。
• 华中科技大学—AnySee
AnySee是华中科大设计研发的视频直播系统。它采用了一对多的服务模式,支持部分NAT和防火墙的穿越,提高了视频直播系统的可扩展性;同时,它利用近播原则、分域调度的思想,使用Landmark路标算法直接建树的方式构建应用层上的组播树,克服了ESM等一对多模式系统由联接图的构造和维护带来的负载影响。
更详细介绍见〔中国计算机学会通讯 Page 38-51 郑纬民等 对等计算研究概论〕
企业研发产品
• 广州数联软件技术有限公司-Poco
POCO 是中国最大的 P2P用户分享平台 , 是有安全、流量控制力的,无中心服务器的第三代 P2P 资源交换平台 , 也是世界范围内少有的盈利的 P2P 平台。目前已经形成了 2600 万海量用户,平均在线 58.5 万,在线峰值突破 71 万,并且全部是宽带用户的用户群。 成为中国地区第一的 P2P 分享平台。[a]
• 深圳市点石软件有限公司-OP
OP-又称为Openext Media Desktop,一个网络娱乐内容平台,Napster的后继者,它可以最直接的方式找到您想要的音乐、影视、软件、游戏、图片、书籍以及各种文档,随时在线共享文件容量数以亿计“十万影视、百万音乐、千万图片”。OP整合了Internet Explorer、Windows Media Player、RealOne Player和ACDSee ,是国内的网络娱乐内容平台。[a]
• 基于P2P的在线电视直播-PPLive
PPLive是一款用于互联网上大规模视频直播的共享软件。它使用网状模型,有效解决了当前网络视频点播服务的带宽和负载有限 问题,实现用户越多,播放越流畅的特性,整 体服务质量大大提高!(2005年的超级女声决赛期间,这款软件非常的火爆,同时通过它看湖南卫视的有上万观众)

阅读全文

与dhtjava相关的资料

热点内容
优信二手车解压后过户 浏览:61
Windows常用c编译器 浏览:778
关于改善国家网络安全的行政命令 浏览:833
安卓如何下载网易荒野pc服 浏览:654
javainetaddress 浏览:104
苹果4s固件下载完了怎么解压 浏览:1002
命令zpa 浏览:285
python编译器小程序 浏览:944
在app上看视频怎么光线调暗 浏览:540
可以中文解压的解压软件 浏览:592
安卓卸载组件应用怎么安装 浏览:912
使用面向对象编程的方式 浏览:339
程序员项目经理的年终总结范文 浏览:929
内衣的加密设计用来干嘛的 浏览:432
淮安数据加密 浏览:292
魔高一丈指标源码 浏览:982
松下php研究所 浏览:168
c回调java 浏览:399
梦幻端游长安地图互通源码 浏览:745
电脑本地文件如何上传服务器 浏览:313