① 谁可以告诉我md5加密原理
MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。
Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。请注意我使用了“字节串”而不是“字符串”这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关。
MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的,用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,而系统并不“知道”用户的密码是什么。
一些黑客破获这种密码的方法是一种被称为“跑字典”的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。
即使假设密码的最大长度为8,同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘组,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。
在很多电子商务和社区应用中,管理用户的Account是一种最常用的基本功能,尽管很多Application Server提供了这些基本组件,但很多应用开发者为了管理的更大的灵活性还是喜欢采用关系数据库来管理用户,懒惰的做法是用户的密码往往使用明文或简单的变换后直接保存在数据库中,因此这些用户的密码对软件开发者或系统管理员来说可以说毫无保密可言,本文的目的是介绍MD5的java Bean的实现,同时给出用MD5来处理用户的Account密码的例子,这种方法使得管理员和程序设计者都无法看到用户的密码,尽管他们可以初始化它们。但重要的一点是对于用户密码设置习惯的保护。
有兴趣的读者可以从这里取得MD5也就是RFC 1321的文本。http://www.ietf.org/rfc/rfc1321.txt
② bert模型插入特殊符号后,如何获取它的值
使用输入连接器(文件/SFTP)在读取输入文件时转换数据。
配置文件内容并在入站连接器配置中添加转义字符配置。具有特殊字符的数据,例如特定语言(拉丁语)或HTML标记。
BERT是一个预训练的语言表征模型。它强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练,而是采用新的maskedlanguagemodel(MLM),以致能生成深度的双向语言表征。
③ bert和lda区别
IDAPro是反汇编工具,bert是双向Transformer的Encoder。
BERT的实现主要是围绕工程化的项目来进行的。bert模型的主要创新点都在pre-train方法上,即用了MaskedLM和NextSentencePrediction两种方法分别捕捉词语和句子级别的representation。
作为反汇编程序的IDAPro能够创建其执行映射,以符号表示(汇编语言)显示处理器实际执行的二进制指令。IDAPro可以从机器可执行代码生成汇编语言源代码,并使这些复杂的代码更具人类可读性(这个可读具有相对性)。
④ 如何打好Java的基础
从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做training,所以可以分享下我的经验,希望对你有用。
因为是在工作中培训,就必然有两个约束:实用、时间紧,因此就不能像大学那样,把所有的知识点都面面俱到的讲到。而只能挑基础的,实用的,难理解的讲。至于其他边边角角的知识,就一笔带过。一则没有时间,二则不常用,再则既使讲了,学生印象也不深刻。总之一句话:“好钢用在刀刃上”。
下面,就根据我的实践,具体谈下学习过程:
1.基础知识
我学习java的时候,先是通读了《Java编程思想》,然后是《Java核心技术》。当时这两本书还不像现在这么厚,而刚才我把案头的《Java核心技术》第9版翻了翻,上下两册已经1700多页了,可想而知,如果要把它通读一遍,且不说把所有的代码都调通,就是当小说读,估计也需要些时间。
但我现在教学依然首推《Java核心技术》,主要是体系完整,实例多,可操作性强。但对初学者,我一般是只讲前6章,也就是下面的内容:
Java程序设计概述
Java程序设计环境
Java的基础程序设计结构
对象与类
继承
接口与内部类
就《Java核心技术》第9版来说,也就是到250页为止,加把劲,1个月拿下完全没问题。
因为你是自学,所以建议你一定要把其中的代码都调通,课后的作业尽量去做。除此之外,还有两点特别重要:
#.学习笔记
因为你是自学,不像在企业中学了就能够实践,印象自然特别深刻。而自学因为没有实践的及时反馈,所以记笔记就显得特别重要。因为记笔记就像写作一样,是整理思路的绝佳方法。同时学习笔记也是你以后开发,面试的绝好资料。
学习编程,人跟人是不一样的,别人觉得难理解的东西,对你却不一定;而你觉得难理解的东西,别人可能又会觉得特简单。而学习笔记就是自己专有的“难点手册”,有点像高考时的“错题本”,以后无论是在面试前,还是在日常工作中,随时都可以翻出来看看,自是获益匪浅。
#.分门别类保存demo
学习笔记是很好的文字资料,但编程界有句话说的特别好,所谓“no code, no text”,意思就是说:千言万语都没有一段代码来的实在。
以我的经验,在你在学习的过程中,就某个知识点,无论当时理解的多透彻,调试的多棒,只要时间一长,等到了实用的时候,肯定会碰到各种各样的问题,一些看似简单的东西,此时死活就是调不通,正所谓人到事中迷。这个时候,如果你手头恰有运行良好的demo,打开参考一下(甚至直接拷贝过来),问题自然迎刃而解。而且因为这些demo都是你亲手调试出来,印象自然特别深刻,一碰到问题,在脑子中自会立刻涌现。
所以说,在学习的过程,一定要善待你调通的demo,千万不要用完了就扔,等后来碰到困难,想要用时却找不到,追愧莫及。正确的做法就是把所有调通的demo,分门别类的保存起来,到时候查起来自是得心应手。
人都说“书到用时方恨少”,其实代码也是这样,所谓“demo用时方恨少”。
2.Spring
目前在Java EE开发中,Spring已经成为和Java核心库一样的基础设施,所以说如果想成为一个合格的Java程序员,Spring肯定绕不开。另一方面,如果掌握了Spring体系,Java基本上就算入门了,就有能力进行一些实用级的开发了。
但Spring本身也是日渐复杂,衍生项目越来越多,但最最核心的概念依旧是IOC和AOP,掌握了这两个概念,再把Spring MVC学会,再学习其他的衍生项目就会平滑很多。
同时,因为Spring本身就应用了许多优雅的设计理念,所以学习Spring的过程,也是加强Java基础知识学习的过程。因此等你掌握了Spring,原来很多你理解不透彻的Java特性,此时就会恍然大悟,包括接口、抽象类等。
我学习Spring,读的第一本书是《Spring实战》,坦率的说,书很一般,但市面上比它好的书,我却没有遇到过。还有一本《Spring源码深度解析》也不错,对Spring的设计理念讲的尤其透彻,虽然整本书读起来有些艰涩,但前几章却生动有趣,也是整本书的精华。所以建议你在学习Spring之前,先把该书的前几章通读一下,然后再回过头来学习《Spring实战》会顺利很多。
以我经验,要学透Spring,终极的方法还是阅读源码(我当时就是这么干的),待把Spring的核心源码通读了,人就真的自由了(所谓无真相不自由),不仅是对Spring,而是对整个Java体系。以后再遇到其他框架,大概一眼就能看出其中的脉络,所谓到了“看山不是山”的境界。但这都是后话,可以作为以后你努力的方向。
和学习Java基础知识一样,学习Spring也一定要记笔记,一定要分门别类保存demo。
老实说,Spring对初学者不算简单,因此最好能有个好老师带一下,不用太长时间,2个课时即可,然后就是在你遇到大的困难时,能及时的点拨下。
以我的经验,要初步掌握Spring,大概需要1到1个半月的时间。
3.其他知识
Spring是Java编程的基础设施,但真要进入到实际项目的开发,还有些东西绕不过,包括 MySql,Mybatis,Redis,Servlet等,但如果你经过Spring的洗礼,这些东西相对就简单多了,以我的经验,1个月的时间足够了。
4.实践
学习Java,光学不练肯定是不行的。但因为是自学,所以就没有实际的产品让你练手,但也没有关系,谁大学还没有做过毕业设计呢?以我的经验,大家最爱的“学生管理系统”依旧是个很好的练手系统。
别看“学生管理系统”逻辑简单,但麻雀虽小五脏俱全,其中数据库设计、Mybatis,Spring、SpringMVC,Servlet、Tomcat一个都不缺,绝对的练手好伴侣。
还有,虽然你的学习重点在Java,因为要做一个完整的demo,前端的配合肯定少不了。因此就免少不了要学一些简单的JS、HTML知识,但因为前端本就是个很大的topic,所以一定要控制好边界,千万不要顾此失彼。就“学生管理系统”来说,在前端上,只要实现一个包含table、textbox、button,能发送REST请求到server,能实现学生的“增删改查”的简单页面即可。
作为一个练手项目,目标就是把Java的主要技能点串起来,所以自不求尽善尽美(也不可能),所以1个月时间足够了。
.最后
按照上面的过程,4个月的时间刚刚好。当然Java的体系是很庞大的,还有很多更高级的技能需要掌握,但不要着急,这些完全可以放到以后工作中边用别学。
学习编程就是一个由混沌到有序的过程,所以你在学习过程中,如果一时碰到理解不了的知识点,大可不必沮丧,更不要气馁,这都是正常的不能再正常的事情了,不过是“人同此心,心同此理”的暂时而已。
在日常的教学中,我常把下面这句话送给学员们,今天也把它送给你:
“道路是曲折的,前途是光明的!”
祝你好运!
⑤ 1080ti微调12层bert要多久
看你所谓的训练是指重头预训练一个bert,还是用bert做微调。前者别想了,后者视数据量而定,一般几十分钟吧。
影驰GTX 1080Ti名人堂显卡延续了经典的白色装甲设计,采用全新的Lumin X RGB炫彩技术,除了中央名人堂LOGO部分,外接供电和视频接口均添加了RGB元素,玩家可使用影驰最新魔盘实现1680万色的多彩调节。此外还有HOF Armor+金属强化背板,HOF Panel液晶显示屏。
同时,还采用“TriMax”散热器,在HOF系列成熟的散热体系上再次优化,采用三枚9CM大风扇,能够带来强大的散热效能。
GTX 1080Ti名人堂有限量版和高频版,同样采用GP-102核心,流处理器个数为3584个。
基础频率和提升频率分别达到了1645MHz和1759MHz(高频版是基础频率为1569MHz,提升频率为1683MHz),同时使用的11GB高速显存,在显存频率是11210MHz(高频版11010MHz)。
总结如下:
影驰GTX 1080Ti名人堂限量版沿用10系名人堂的皇冠造型,更添加了许多RGB元素。12层至臻纯白PCB设计,高强度铝合金HOF Armor+背板,用料豪华。
⑥ 急用:那位对光信号传输中用的BERT板有研究,请指教一下,先谢谢了.
大客户末端专线接入的有效解决方案
1、城域网络现状:
目前城域网光纤传输上的主要业务形式是TDM方式的E1业务和统计复用的IP数据业务两种,前后也出现过一些业务流融合(如ATM)的传输机制,随着各种数据业务、电信业务的飞速发展,两类业务量都在以很大的速度增长。由于两种业务制式的传输特点差别大,采用任何一种传输机制,在传输性能和传输带宽利用率上都难以达到好的效果,两种业务的节点处理设备差别也很大(SDH设备和以太网交换机、路由器),在实际的核心网传输上形成了两网分离、并行发展的趋势;
一些大、中城市,甚至一些发达地区的小城市,城域核心网已经形成了SDH传输网和IP数据网并行的局面。
城域核心网规划建设的网络拓扑方式目前主要是以环形网络为主,E1业务传输设备主体是SDH设备,与SDH传输网络并行的是以路由器/交换机为主要节点设备的IP数据传输网,实际上很多IP数据传输网是通过利用已有SDH传输光缆网络中的光纤资源进行的组网建设。
从以上分析可以得出结论:城域网核心网络拓扑以环网方式为主,传输机制以SDH为主,以太网交换机/路由器等技术和设备应用逐渐增多。
2、市场需求分析:
城域网末端的普通商业客户光纤专线接入需求,近年来一直在持续高速的增长,相对于为数众多的普通居民用户,数量较少的大客户所能提供的效益总额占有比例却很高,这也符合经济学的2/8理论。因此各个地区、各大运营商都在积极竞争大客户的专线接入市场,这几年每年的业务需求量都在以高于50%的增长率扩展,且后续发展仍保持高增长趋势。随着光缆的成本降低和末端接入设备价格的大幅下降,原来很多使用低速双绞线进行数据接入的客户都逐渐改造为利用光纤进行数据接入,例如银行系统的数据网络、邮政系统、连锁经营企业等都逐渐将原来的ISDN、ADSL改用了光纤接入,在成本不高的情况下保证了数据传输的稳定、可靠,以及日后的网络扩容的需求;
3、大客户末端光纤专线接入的网络拓扑方式
将来的城域网络拓扑可能会向网状网方式的智能光网络发展,形成一个智能的、可交换的全光网络,从目前的实际情况看,各地城域网络基本是环形网络拓扑方式为主,主要传输技术是SDH,在城域网边缘大客户专线接入部分,主要是使用的点对点普通光端机,少量使用了SDH环网,近一、二年数据的接入需求成明显上升趋势,使用了大量的以太网光纤收发器,基本也都是点对点使用;随着用户数量的增长,具有完善网管功能的以局端集中型设备为中心的星网拓扑方式应用逐渐增多。在末端专线接入应用中,星网方式比较点对点光端机或光纤收发器,在管理维护、业务种类多样的适应性、扩容变换的灵活性、投入产出比和投资快速回收的综合经济效益等方面,具有明显优势,在末端用户数量很大时,优势更加突出,如果末端采用难以网管的点对点设备,设备的维护、管理随着用户数量的增加,会成为运营商的一个大包袱,这一点已经引起了各大运营商的关注。
在末端接入应用中,为一些大型客户内部组建较独立的光纤传输网络时,或环形光缆已经铺设完成的条件下,以及其他一些需求情况,SDH环网在末端接入中会保持一定的应用份额,但星网拓扑方式仍然是今后大客户专线接入的主流方式,星网与SDH环网的在大客户末端专线接入应用中的对比分析如下:
1)接入容量:目前末端用户需求容量80%在4E1以内,普通光端机一般都可以做到16E1,能够满足绝大多数应用;末端接入用SDH主要是155M制式,环网总容量63E1,各个节点共享这一总容量;如果客户的传输容量需要大的扩容,特别是传输数据带宽需求猛增时,星网方案由于是为每个客户单独使用一路光纤,容量的变化很方便,例如格林威尔的E+E光端机最多可以提供20路E1+100M线速以太网数据的传输。而155M的SDH环网,在传输带宽容量需要扩大时会受到限制,例如有时可能即使一个节点的客户带宽扩容,整个环的所有节点设备都要升级到更大容量的SDH设备,二次投入代价很大。
2)成本比较:很多用户初期只需要4E1以下的专线接入容量,从技术机制和材料成本来看,每对SDH光口成本比较普通星网光端机最少要高出50%以上,甚至更多,E1租赁价格由于竞争的压力已经很低,运营商也越来越注重投资回收率和回收期,这样较高的设备售价在末端大量应用时会起到一定的制约作用。
3)网络拓扑形式:末端成环,环不能抗击2次打击,末端节点一般在用户机房,条件难以保证,例如有些客户为了安全,下班后或节假日往往会习惯性的将设备关机,这样做对于环网是很危险的,还有用户忠诚度的问题,特别是不相关的客户共享一个环网时,末端成环、成链的网络拓扑存在较大隐患;
4)网络规划:SDH末端成环、成链时要求前期的光纤网络规划要全面、细致,这在有末端接入需求的写字楼宇建设、新型企业地理位置变化随机性较大的情况下,往往难以及时适应需求;而目前很多大的城市,光纤网络铺设的非常密集,几公里范围内就可以找到光纤配纤箱,以星网方式根据大客户的增减变化可以及时提供和去除光接口,而要求成环的拓扑,网络建设会受到限制;
5)网管:末端接入使用SDH环网机制的一个优势是可以和上层的SDH网络统一网管,网管通道可以利用SDH的开销实现带内网管,但实际上如果末端接入的SDH端机数量大到一定程度,比如几千个节点终端,带内网管通道的带宽会是一个严重的瓶颈,而且从重要程度来讲,末端的接入侧网管也需要与城域骨干网的网管分开网管通道、分开管理,利用带外网管网建立网管系统,这样与星网方式的光纤接入网管网实施方案一致。
另外,采用SDH机制在光口业务上不同厂家设备都能互通,但网管一般难以做到互通,因此如果希望末端接入侧的SDH与上游城域网SDH统一网管,那么末端的SDH设备需要与城域网的SDH设备为一个设备厂家,这样就限制了运营商的设备选型;
6)SDH星网方案:利用SDH设备组成星网实现末端接入,优势是可以和上游SDH光端机直接在STM-1接口对通,但当末端数量很大时,在与上游SDH设备直接对接时,上游的一个SDH节点机需要给出十几、二十几、甚至几十个光分支,但很多情况下上游SDH光端机很难提供这么多光分支,而采用普通的星网光端机可以很容易的提供大量光方向,光方向在一个节点理论上不受限制;
7)运营商的光节点分布情况:在很多大城市,电信、网通的光纤网络已经铺设的非常密集,例如上海、广州等城市在方圆5公里、甚至在2~3公里范围内都能有光纤配纤箱;对于移动、联通这类运营商,基站已经密布各地,可以充分利用基站资源就近开展大客户接入服务;这样的网络资源下,对于各地的楼宇、客户开展专线接入服务利用点对点、点对多点的方式更加便捷,在激烈的市场竞争环境下,增加新客户、丢失老客户时设备和网络的变更都会比较方便。
8)末端业务的混合传输:MSTP的出现可以说是光传输领域的一个闪光点,给呈现低迷的光传输市场注入了活力。MSTP特别适用于城域网的边缘部分,对于边缘网络多种业务融合的汇聚传输非常有价值,但在网络末端最后一段光纤接入应用时,除了上述SDH机制的特点外,更在于相对普通光端机等产品技术较复杂、成本较高,短期难以大批量应用于末端接入。末端只需要E1接入的可以提供普通星网光端机、需要以太网数据接入的可以用以太网光纤收发器、既需要E1同时又要以太网数据接入的,可以用“光端机+协议转换器”或采用同时传输E1和以太网数据的光端机,例如格林威尔的E+E光端机,可以同时传输多路E1和提供100M线速以太网数据传输,成本低,管理功能强,如果上游城域网络采用MSTP传输,末端接入采用E+E光端机方案则是低成本、高性价比、稳定可靠、易于管理的理想解决方案。
综上,大客户的末端光纤接入需求量很大,逐年递增,从目前需求的情况,在功能、容量、成本、可维护性、投入产出比、投资回收期等几方面考虑,星形网络是末端接入的主要网络形式,星网光端机、光纤收发器、E1和以太网的混合传输光端机是末端接入采用的主流设备,SDH(MSTP)环网接入由于其技术特点、设备成本等方面的原因,在大客户光纤末端接入领域会有一部分应用,但还不是主流。
4、MSAP产品平台的特点介绍
MSAP产品平台是格林威尔公司最新推出的针对末端大客户多业务专线接入应用的产品平台,MSAP产品平台由一系列产品组成,并构成了完整的末端接入解决方案,下面将MSAP的几个特点进行简单介绍。
MSAP系列产品由局端集中型设备和远端设备组成,集中性设备为插卡式,可以混合插入不同容量的光端机光盘、光纤收发器盘、协议转换器盘,以及具有“1+1”光纤保护的光盘等,还可选配SDH上联口光盘直接与上游SDH的STM-1接口对通,实现将各个光分支传输E1和以太网数据业务到上游城域网的汇聚功能,省去了E1配线架等装置。
MSAP为适应末端接入的实际应用需求,具有三项主要的专利技术:
1)E+E混合传输技术:E1和以太网数据通过混合编码采用TDM机制进行混合传输,传输E1容量最多可达20E1,以太网数据可以实现真正的线速100M带宽,性能优越;
2)光端机内置误码测试功能:MSAP的光端机内置了E1误码测试模块功能,可以通过远程网管操作对任何一路E1实现误码性能测试,不到现场就能迅速方便的查找故障点,为快速排故打下了基础,是运营商提高服务质量,方便运营维护的有效手段;
3)电源监控功能:放置客户端的远端光端机内置电源监控模块,远端电源掉电自动上报局端网管,为分清故障类别,特别是为远端无人职守机房的故障自动监测提供了条件。
MSAP的网管为适应运营商维护需要,正在进行从单纯的设备管理向端到端的业务管理转变,因为出现线路故障后,运维部门第一反映需要知道的是那位客户处有故障,而不是第几号设备出了什么故障,这样可以迅速根据相应的客户服务等级采取排故措施,并第一时间通知客户,赢得客户的理解,提升客户满意度。另外,MSAP网管架构已经实现了分布式网管,为广大运营商集中管理、分级监控和维护,为末端成千、上万对光纤专线接入的运营做好了准备。 更多内容请看大型实用解决方案专题 多媒体应用解决方案 宽带接入专题专题,或进入讨论组讨论。
⑦ 如何快速系统的学习java
Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者心中的地位就如“屠龙刀”、“倚天剑”。
Java是个平台,我只想说说我对学好Java的一点看法,希望对初学者有所帮助。
1. 思考一下
学习Java之前,先别急,静下心来好好想想:
1)你对学习Java是否有兴趣?
2)你是否能静下心来坚持不懈地学习?
嗯,这是个容易但又绝对不应该忽略的问题,你确信自己对Java感兴趣、而且又有吃苦的准备,那你才可能学好Java!如果具备这两点条件,就请继续往下看……
2. 准备一下
请不要把你的学习Java之路和其它计算机技术分开看待,技术的联系往往是千丝万缕的,你应该掌握一些学习Java所涉及的基础知识,对于 “CLASSPATH要怎么设置啊”、“跪求JDK下载地址”等等问题,你不该问,因为Internet上太多答案了,甚至换个角度说,你是不是还不适合直接学习编程?
1)买本Java学习用书。
JDK 6正式版刚刚推出,市面上你暂时买不到JDK 6的书籍,但我仍推荐你买一本适合入门的、较新JDK版本的Java书籍,那么,你现在选择一本讲述JDK 5的入门书籍还是有条件的。我可以推荐一些入门书,但是我不打算这么做,因为合我口味的,不一定适合你。但无论如何,《Thing In Java》绝对不应该作为你入门Java的第一本书籍!
记住,网络上学习Java的资源很多,但基本不够系统,拥有一本Java入门书籍,是你系统学习Java的基础。
2)准备Java学习环境。
准备你的学习环境,很简单,安装JDK 6,然后用类似UltraEdit、EditPlus的文本编辑器配置你的学习环境,Internet上有很多关于如何配置的文章。初学Java,不建议用IDE工具,通过一行行的敲代码,你会碰到很多问题,只有这样,你才能学会怎样解决问题,并加深自己对Java的理解。
准备好后,开始进入激动人心的Java学习里程吧!
3. Java基础学习之路
学习Java的过程虽然辛苦些,但又是处处有精彩!学习过程中的心态一定要保持专一,网上关于语言间的“PK”到处都是,别被浮躁影响!认准了Java,你就坚持!克服心魔,恒心最终会给你回报的。
Java的体系分为Java SE、Java EE和Java ME(JDK 5.0以前分别叫J2SE、J2EE和J2ME),Java的敲门砖就是Java SE了,也就是你要入门学习的内容,不论你日后是选择哪个体系领域作为发展方向,你都得从Java SE起步。
学习Java SE,打好Java基础;如果想学Java EE(对不起,我不了解Java ME,所以我无法涉及Java ME的相关内容),对于AWT、Swing是否要学习呢,我个人是觉得还是要知道其所以然的,特别是其事件处理模式,我强烈建议初学者一定要弄清楚,其他具体的开发就不一定要全面掌握了,毕竟AWT、Swing方面的内容足够用几本大部头的书才能描述详尽;当然,如果你的工作就是做 AWT、Swing开发,那就另当别论了。
I/O、Thread都是基础之一。
4. Java EE学习之路
学习了Java SE,还只是完成“万里长征”的第一步。
接下来选择学习Java EE或是Java ME(或者你还想不断深入学习Java SE,只要你喜欢,你可以一直深入下去,就像前面所说的,我不会讲到Java ME的学习);估计选择Java EE方面的学习者会多一些,Java EE所涉及技术非常多,考虑到初学者的接受程度,我会尽量从最常用的角度来介绍。
学习Java EE,在开发环境上不建议再用文本编辑器,我感觉NetBeans 5.5(目前最高正式版本)很适合初学者,我个人也很喜欢NetBeans,如果你喜欢用别的IDE如Eclipse,都没问题,看自己喜欢吧。
4.1 学习JSP/Servlet
Java EE最高版本目前是5.0版本。
在Java EE中,首先要学习JSP/Servlet(结合Tomcat、MySQL)技术,建议JSP1.2/2.X的知识都要掌握,毕竟现在很多的在用系统都还是基于JSP1.2,学习JSP,还必须掌握一些外延技术,如:你还得掌握HTML基础知识,最好再掌握些JavaScript(目前正火的AJAX技术之一)、CSS的技术,而了解XML是必不可少的(至少描述性配置信息是通过XML来描述的)。在学习JSP/Servlet过程中,应该结合学习 JDBC、数据库开发技术,毕竟绝大多数Java Web项目都是和数据库紧密结合的。
4.2 学习数据库开发技术
这里我想重点说一下数据库开发技术,数据库技术是做业务系统必备技能,Java Web开发人员最低程度都应该掌握SQL语句的使用!数据库技术大体可分为DBA技术和数据库开发技术,对于开发而言,应侧重数据库开发技术,而数据库基本操作,也是要掌握的。常用数据库有DB2、Oracle、SQL Server、MySQL等,你可以结合实际需要,选择一种数据库,并花大力气掌握其开发技术。
记住,学习数据库开发技术和学习Java EE,是相对独立的,你可以在学习JSP/Servlet的同时,学习数据库开发技术(如SQL语句等),或者先学数据库开发技术,之后再学习JSP/Servlet。
4.3 学习Java EE其它开发技术
再往后,可以学习一些EJB的知识,目前EJB最新版本是3.0,其和前面的2.X版本相比,有较大不同,考虑到目前EJB 2.X还有很大的应用市场,建议结合学习EJB 2.X/3.0。在学习EJB过程中,应同时掌握一种企业级应用服务器的使用(如 WebSphere、Weblogic、Sun Applcation Server或JBOSS等,目前Sun Applcation Server 9.X和JBOSS都可支持EJB 3.0)。
之后的学习中,再逐渐扩展到其他Java EE技术。
5. 之后
等你对Java EE有些感悟的时候,你自然就会想不断扩展你的知识面,这时候你可以学习Spring、Hibernate,以及各种Web框架(如Struts、JSF、Webwork或是Tapestry等)。
随着技术、经验的不断积累,你会逐步关注分析、设计等更高层次的知识,这时候,你可进一步学习相关的UML、模式等知识(积累了一定经验,你就可以安排自己学习这些知识了)。
6. 小结
永远记住:自始至终,实践是学习Java技术历程中极其重要的一环。脱离了实践,是学不好技术的!
Java学习、实践之路依然没有银弹,况且一步步走来,要学的东西很多,勤奋是金!
善于利用Internet上众多的资源,多吸取些别人的经验。
目前关于Java的争论很多,如“Java正走下坡路”、“Ruby必将取代Java”等论点甚嚣尘上,但正如我前面所言,这是一种浮躁的表现,Java的前景非常好,特别是Java开源以后!就让他们去吵去吧,掌握了Java,你就掌握了当前最火的技术。
“梅花香自苦寒来”,当你掌握了扎实的Java开发基础,你就能把手中的这把“屠龙刀”、“倚天剑”舞得风声水起!那时,你一定会有一种成就感。
以上,你大概了解应当如何学习Java了么?
⑧ 如何快速的学好java
好的学习方法对于你的学习至关重要,对于每一个刚开始学习Java的程序员新人来说,都希望有一种快速学习的方法,漫无目的和长时间的学习很容易消耗你的信息,最后学的混乱,也没有实质性的收获,以至于学习到最后越来越焦虑。
初学者想要快速学习Java技术的心情大家都可以理解,但是有一句话:欲速则不达。盲目的追求快并不能达到理想的学习效果,问题来了,那么作为Java新人如何快速的学习Java编程呢?
新人学习进步非常缓慢,是因为很多的Java难题自己都没有办法解决,身边没有懂技术的人,所以只能一直在网上苦苦查找答案,就算你找到了解答,但是也不一定能够保证是对的。
方法1:Java初学者可以加入一个比较好的Java学习交流群,或者论坛,群不需要加的太多,在群中提出问题,有时候其他人的只言片语也可以帮助你走出困境。多与技术好的人交流沟通,你的技术才能变得更好。比如我的这个技术交流群