精华内容
下载资源
问答
  • Java 发展方向

    2013-09-25 20:01:07
    Java发展方向想往JAVA哪方面发展?一般到一定阶段后,会有两个选择:(1)管理路线(2)技术路线。管理路线。就往项目经理方面发展,考虑自己如何带领团队把项目从头到尾扛下来,高质量高速度是这个方向的目标。技术...

    Java发展方向

    想往JAVA哪方面发展?
    一般到一定阶段后,会有两个选择:(1)管理路线(2)技术路线。
    管理路线。就往项目经理方面发展,考虑自己如何带领团队把项目从头到尾扛下来,高质量高速度是这个方向的目标。
    技术路线。将原有技术向更深处发展,对技术细节了如指掌,并在此基础上进行挖掘更高效的技术架构,解决技术难题。

    java技术主要包括三个方面:j2SE(java2standardeditor)(java基础,可以用awtswing等做C/S模式得软件开发)
                 j2EE(java2enterpriseeditor)(也就是企业级应用,B/S模式软件开发,目前主流方向,包括jsp/servletJDBCJNDIEJB等核心技术,以及一些框架如:strutshibernater)
                 j2ME(java2microeditor)(主要应用于手机嵌入式开发)


    目前JAVA主要分三个方向:J2EEjava2enterpriseedition,也就是JAVA的企业级标准,目前应用最多也最广泛,技术相对成熟)、J2MEjava2microeditonjava在微型系统上的应用,像手机、PDA、电视机机顶盒一类,国家3G标准一旦实施,J2ME将会应用的更加广泛)、J2SEJava2StandardEdition标准版,主要用于个人用户)

    如果有人想学J2EE的话,本人可以推荐一下学习进阶步骤(自己的学习经验,呵呵,当然,并非自学):
    ①先学基本的JAVA语法,推荐《Thinkinginjava》,精通面向对象的思想(封装、继承和多态,其中封装和继承稍微简单一点,多态难一点,但能不能理解好多态是能不能理解面向对象思想的重要一步)(Applet没有必要学,现在不是20世纪,Applet已经风光不在)

    ②学JSP,推荐清华大学出版社《JSP实用案例教程》,掌握JSP代码、JSP指令、JSP动作,同时也要学一些servletXML方面的知识,JSP比起以后要学的STRUTSEJB而言,难度要小很多,但是光看书是不够的,一定要做个小项目(推荐大家按照书上的例子做一些小的电子商务网站,最好采用JSP+javabean的设计模式)

    ③系统的再学一下数据库,书上讲的五大范式没有必要全掌握,掌握前三个就可以了,但是SQL语句一定要精通,这对以后的学习很有帮助,最好能用用SQLServer或者DB2,至于oracle嘛,呵呵,有点难度,反正偶不会~

    ④学习STRUTS(学到这一步,才算真正接触了J2EE,以上学的东西不过是为了以后的学习做好铺垫),精通MVC,花10天左右的时间研究前三章,特别是第二章,经典的HelloWorld的例子一定要会做,如果这个做不好的,J2EE以后就没法学了。此外一定要熟悉Struts标签,掌握自定义标签是如何使用的,STRUTS框架是如何响应客户端请求的……推荐书目:《精通STRUTS——基于MVCjavaweb设计与开发》电子工业出版社(当然,这个时候就要用到J2EE的开发工具了,本人推荐eclipse或者WSAD,其实WSAD也就是eclipse的豪华版,一个收费,一个不收费),现在hibernate也相当流行,可惜偶不懂,郁闷,研究ing……

    ⑤学习EJB,这算是更难的部分了,此外EJB也比较庞大,一般的教程都是翻译的,推荐看电子工业出版社的《精通EJB》,这中间的sessionbeanentitybeanmessagedrivenbean是必须掌握的,我觉得最难的应该是entitybean了,访问数据库(我用的是DB2)都需要配置N多,包括服务器啊,JNDI啊,忒麻烦。书上entity持久化部分主要讲BMPCMP,其实BMP大家只要熟悉就行了,现在主要用CMP比较多(CMP使用容器管理entitybean,生成代码更方面,手工添加的东西很少,贼方便)

    ⑥学习UML,呵呵,这算是系统架构师必须掌握的东西了,如果大家没兴趣以后向更高的层次发展的话,UML就没必要掌握那么多了,不过四大关系一定要熟悉(不过说实话,好多做了几年开发的人四大关系中的关联和依赖仍然分不清楚),9大类图大家随便看看就好了,要想精通的话难度太大,估计咱矿院也没几个老师精通UML的,推荐书目:《UML用户指南》,机械工业出版社

    ⑦学习设计模式,其实学设计模式和你做J2EE项目的关系特别大,问题在于写JAVA程序要用到设计模式,而学设计模式要有深厚的JAVA代码经验,所以这东西也很难搞定,不过设计模式最基本的六大原则、三大类是大家一定要掌握的,至于常见的设计模式嘛,比较常见的有简单工厂、工厂方法、抽象工厂、建造模式、适配器模式、合成模式、单例模式、装饰模式(至于其他的,估计大家工作以后慢慢琢磨,不过学这东西,就要看大家的天赋和造化了,反正偶是看的云里雾里的,头都大了)推荐书木:《JAVA与模式》,哪个出版社的我忘了,写书的叫阎宏,科大毕业的,贼厚一本书,和《Thinkinginjava》差不多,都能当枕头用的,呵呵

    转载于:https://blog.51cto.com/7979281/1301796

    展开全文
  • java发展方向

    2019-10-03 17:52:21
    java的大方向就是j2eej2ee不仅仅是socket编程,具体包括13中核心技术。J2EE的核心API与组件 J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对...
    java的大方向就是j2ee
    j2ee不仅仅是socket编程,具体包括13中核心技术。

    J2EE的核心API与组件

    J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):

    1. JDBC(Java Database Connectivity):
    JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDCB对数据库的访问也具有平台无关性。

    2. JNDI(Java Name and Directory Interface):
    JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。

    3. EJB(Enterprise JavaBean):
    J2EE技术之所以赢得媒体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。

    4. RMI(Remote Method Invoke):
    正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。

    5. Java IDL/CORBA:
    在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。

    6. JSP(Java Server Pages):
    JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

    7. Java Servlet:
    Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。

    8. XML(Extensible Markup Language):
    XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。
    XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。

    9. JMS(Java Message Service):
    MS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另
    一种方式来对您的应用与旧的后台系统相集成。

    10. JTA(Java Transaction Architecture):
    JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。

    11. JTS(Java Transaction Service):
    JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。

    12. JavaMail:
    JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。

    13. JAF(JavaBeans Activation Framework):
    JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。

    转载于:https://www.cnblogs.com/yanxiayu/p/3719511.html

    展开全文
  • java 发展方向

    2010-10-17 17:19:37
    sun 公司董事会通过决议,同意以每股9.5美元的价格将公司出售给Oracle。...在这里我个人就Sun 公司软件部门的一些产品和技术(包括Solaris数据库,Java编程语言,MySQL数据库等等)的未来发表一点看法。需要...
    sun 公司董事会通过决议,同意以每股9.5美元的价格将公司出售给Oracle。虽然还有一些必要的审查和手续,但是两家公司的合并,看起来是不可避免的了。一时间,很多IT领域的朋友众说纷纭,对Sun 公司各种产品和技术的前途提出种种预测。在这里我个人就Sun 公司软件部门的一些产品和技术(包括Solaris数据库,Java编程语言,MySQL数据库等等)的未来发表一点看法。需要说明的是,虽然我个人在 Sun 公司工作,但是并没有任何机会接触到公司决策层的任何相关资料。因此,在本文中出现的所有观点,仅仅是我个人的观点,而不是我的雇主Sun 公司的观点。
     
    Solaris操作系统 在Oracle与Sun 公司共同发表的新闻稿当中指出:Sun 公司所拥有的Java语言和Solaris操作系统是“根本性的长期战略优势”。Solaris操作系统对于Oracle的重要性,由此可见一斑。 作为一家数据库厂商,Oracle做梦都想要拥有自己的操作系统。在没有自有操作系统的情况下,唯一的选择就是全面支持市面上各种操作系统,根据市场的变化来调整不同操作系统的优先级。2000年之前,Sun 公司正如日中天,在金融、电信、能源等多个关键性领域的装机量排名第一,因此Oracle选择将Solaris作为优先考虑的操作系统。2001年前后,GNU/Linux在服务器端的性能已经相当出色,可以运行在价格低廉的x86处理器上,能够方便地从网络上免费下载到安装文件。更重要的是,大量向往自由的技术人员通过各种渠道分享经验,在网络上很容易找到与GNU/Linux相关的各种文档。与此相反,Solaris需要运行在昂贵的 UltraSparc处理器上(当时x86版本的Solaris 8已经可以免费下载,但是还远远没有达到健壮实用的程度),安装过程烦琐复杂,系统管理员还需要经过Sun 公司的专门培训。随着互联网泡沫的全面破灭,企业对信息系统的性价比提出了越来越高的要求。在这种情况下,Solaris的新增装机量开始下降,无须财务主管审批即可立即部署的GNU/Linux开始占领数据中心。Oracle敏捷地注意到了这个趋势,于2002年推出了名为“坚不可摧的 Linux”(Unbreakable Linux)的客户支持计划,开始向GNU/Linux倾斜。需要注意的是,“坚不可摧的Linux”并不是一个新的GNU/Linux发行版,而是指 Oracle向 Linux用户提供的软件更新以及技术支持等等增值服务。与此同时,Oracle开始加大在操作系统方面的投入,慷慨解囊资助GNU/Linux社区中的多个关键性项目,同时试图构造一个全新的GNU/Linux发行版。由于操作系统的复杂性,Oracle在自有操作系统方面的进展缓慢。由于与IBM 公司的DB2存在正面竞争,尽管Solaris的市场正在萎缩,Oracle依然将Solaris作为优先考虑的操作系统。2006 年,GNU/Linux在数据中心的新增装机量已经超过了50%,Solaris的新增装机量则降低到15%以下。这时候Oracle的首席执行长官 Larry Ellison做了一个聪明绝顶的决定:将Red Hat的图标换成Oracle的图标,将“Red Hat Enterprise Linux”几个单词修改成”Oracle Enterprise Linux”,一举推出了与Red Hat Enterprise Linux完全兼容的Oracle Enterprise Linux,同时推出价格仅有Red Hat一半的客户支持计划。尽管业界对此众说纷纭,Oracle终究是依靠GNU/Linux社区的强大实力摆脱了对Solaris的依赖,同时也过了一把“自有操作系统”的瘾。 2006年4 月,在被问及是否会考虑收购Red Hat的时候,Oracle的总裁Larry Ellison信心满满地说:Oracle不会收购一家随时都有可能被淘汰的公司。尽管如此,Red Hat成功地用市场份额证明了他们比Oracle更懂操作系统。Oracle可以轻易地将Red Hat和Novell等等公司贡献给开放源代码社区的成果拿来使用,却无法拿来这些公司在开放源代码领域的声望,也无法拿来用户对这些卓有贡献的公司的忠诚, 这也许是Oracle收购Sun 的原因之一:Sun 懂得操作系统。在文件系统方面,ZFS是目前为止功能最强大的文件系统;在应用开发方面,DTrace能够轻易从内核层和用户层寻找应用程序的瓶颈;在系统安全方面,Solaris Trusted Extension获得了最为全面的EAL 4+认证(包括LSPP, CAPP, RBAC);在超级计算方面,目前世界排名第六的德克萨斯超级计算中心(Texas Advanced Computing Center)运行的是Solaris操作系统。(需要说明的是,排名前五的超级计算机运行的都是不同版本的GNU/Linux操作系统。)尽管新增装机量的增长缓慢,但是在世界各地的数据中心里,依然有10%左右的服务器在运行不同版本的Solaris操作系统。通过收购Sun 公司,Oracle可一举获得操作系统领域的核心技术、人才、声望、以及现有的客户。 因此,Oracle不会放弃Solaris操作系统。剩下来的问题,是如何继续Solaris操作系统的开发。Oracle是会继续支持目前的 OpenSolaris项目呢,还是会采用传统的闭源方式?我个人的看法是,Oracle有可能在GPL授权协议(有可能是GPLv3)的框架下重新发布 OpenSolaris项目。OpenSolaris目前最大的问题,是硬件兼容性的问题。在x86/x64平台上,尚有大量的声卡、网卡、显卡以及其他外接设备没有OpenSolaris的驱动程序。类似的问题,GNU/Linux社区已经解决得比较好了。相关的驱动,基本上都是开放源代码的,只是由于 GPL协议和CDDL协议之间互不兼容,使得OpenSolaris社区无法利用GNU/Linux社区的这些成果。我在《回顾:OpenSolaris 2008.11》一文中明确指出:使用GPL授权协议发布OpenSolaris项目,在技术上可以解决OpenSolaris项目所面临的困境,在感情上可以消除GNU/Linux社区的敌意。的确,使用GPL授权协议使得GNU/Linux社区也可以充分利用OpenSolaris项目中诸如ZFS和 DTrace等等亮点,但是从长远来看,恐怕是OpenSolaris项目得到的好处要更多一点。毕竟,对于一位普通的开发人员来说,没有ZFS和 DTrace的GNU/Linux已经足够好用,但是没有声卡网卡驱动的OpenSolaris就不太好用了。 关于开放源代码软件,Larry Ellison有一句名言:“如果开源软件变的足够好了,很简单,我们就把它拿过来用。”现在GNU/Linux在设备驱动方面的优势如此明显,Larry会放过这个机会吗?
     
    Java编程语言 谈起Java编程语言,我们首先要明确Java语言目前有三个分支:Java SE(标准版)、Java EE(企业版)和Java ME(嵌入版)。Java SE是Java EE和Java ME的基础,类似于国家自然科学资金的基础×××项目,基本上是光花钱不挣钱的。Java EE可以认为是Java语言在企业级解决方案中的应用,大部分做Java的公司,除了Sun 公司之外基本上都是依靠Java EE盈利的。最近几年,Java EE俨然是企业级解决方案的事实标准。以中国的情况为例,2008年40%的企业级应用是基于Java EE的,35%是基于.Net的,另有18%是基于单纯的HTML和JavaScript的。Java ME可以认为是Java语言在嵌入式设备方面的应用,譬如说现在大部分的手机都支持Java ME的某个子集。在2006年之前,厂商每生产一台支持Java ME的手机,要给Sun 公司支付一定的授权费用。2006年11月,Sun 公司启动了名为PhoneME的开放源代码项目,这个收入就变得不是十分可靠了。 在如上三个分支中,Oracle最感兴趣的显然是Java EE。但是在收购Sun 公司之前,Oracle已经收购了这个领域的大牛BEA。以应用服务器(Application Server)为例,在中国2008年BEA的WebLogic的市场份额为27%,仅次于IBM的WebSphere(29%),Oracle自己的应用服务器占7%,而Sun 公司的应用服务器(GlassFish)仅占4%。又以门户服务器(Portal Server)为例,在中国2008年BEA的WebLogic的市场份额为32%,比IBM的WebSphere(31%)还要高一个百分点,Oracle自己的门户服务器占10%,而Sun 公司的门户服务器仅占7%。显而易见,让Oracle暗自动心的不是Sun 公司在这个领域的市场份额,而是Sun 公司作为Java语言的发明者在这个领域领导地位。可以想像,在两家公司合并之后,Oracle必然会将Sun 公司目前的Java EE部门一分为二 --写标准和申请专利的继续写标准和申请专利,开发应用服务器的则并入原来的WebLogic部门。至于Sun 公司自己的应用服务器GlassFish,至少这个品牌想来是不会再用了。下一代的Java EE参考实现,叫做Oracle WebLogic显然要响亮得多。按照同样的推理,Sun 公司原来叫做Java企业系统(Java Enterprise System, JES)的那套东西,本来占到的市场份额就很小,合并之后跟Oracle现有的中间件产品线发生冲突,也将逐渐退出历史舞台。 Java ME是一个比较难办的问题。随着各种高速无线网络的普及,移动与嵌入领域正在变成下一个金光闪闪的企业级取款机,但是Oracle在这个领域却毫无经验。我个人的观点,是Oracle会让这个部门继续独立运作一段时间,但是会指派一位党委书记(有可能是从外部新招来的)前来参观学习。等这新来的党委书记熟悉了Java ME部门的业务之后,才开始对该部门进行调整,并且调整的幅度不会很大。 Java FX的去留,要取决于Java ME的命运。我们知道,不管Java FX的桌面版做的有多好,在桌面这个领域是肯定收不到支票的。Java FX如果想要挣钱,就必须能够在手机上流畅地跑起来 --这个事情,不仅仅是改进Java FX本身那么简单,还需要考虑手机的处理能力,以及跑在手机上那个Java虚拟机的效率。 不管是Java EE还是Java ME,都严重依赖于Java SE。如果底层的虚拟机做的不够好,上层的框架搭得再好都是白搭。Sun 公司自己的Java虚拟机,有很多独到之处,执行效率也不错。两家公司合并之后,Oracle之前从BEA那里获得的JRockit估计要遭殃。 Oracle是一家注重实用的公司,因此Java虚拟机下一步将注重于提升服务器端的性能,某些只有桌面端才用得上得功能,其优先级估计就要低一点了。在这一点上,Java虚拟机和GNU/Linux近年来的发展趋势基本上是一致的。 熟悉Java开发的朋友可能会问:NetBeans呢?这可是Sun 公司花了10年心血精心培养常来的宝贝。在下任何结论之前,我们还是先看看2008年Java集成开发环境的市场份额。根据CSDN提供的每年一度程序员大调查数据,在中国这组数字大概是这样的:NetBeans占19.3%,基于NetBeans的Sun Java Studio占4.5%,Eclipse JDT占52%,基于Eclipse的JBuilder占5.5%,基于Eclipse的IBM WebSphere Studio占2.8%,基于Eclipse的BEA WebLogic Workshop占6.5%,IntelliJ IDEA占2.2%,Oracle自己的JDeveloper占1.2%。乍看起来,NetBeans以及基于NetBeans的集成开发环境占了 23.8%的市场份额,似乎是Oracle白白占了个大便宜。再仔细想想,NetBeans是一个免费的产品,Sun 公司大力发展NetBeans,指望的是开发人员通过使用NetBeans将其开发的产品部署在自家的应用服务器等部署环境上,这样才能够卖出产品和服务。在过去四年中,虽然NetBeans的市场份额逐年稳步提升,但是在拉动其他产品方面的作用非常有限。Sun 公司之所以坚持做了下来,是因为过去十年的惯性实在是太大,要想停下来的话不管在内在外都免不了要大折腾特折腾一场。换句话说,这些年来Sun 公司大力发展NetBeans确实保住了面子,但是底下里却输掉了钱包。这种死要面子×××的事情,Oracle的Larry Ellison是断然不会做的。
     
    MySQL数据库 2008年3 月,Sun 公司以10亿美元的代价收购MySQL,被Jonathan Schwartz认为是“现代软件史上最重要的并购案”。如此重要的一个角色,在在Oracle与Sun 公司共同发表的新闻稿当中并没有提及。很多业内人士认为,由于MySQL与Oracle的数据库业务之间存在直接的竞争关系,很有可能会被Oracle所抛弃。如果我们将数据库业务这个市场看成一个整体,Oracle与MySQL之间毫无疑问是相互竞争的。但是,如果我们进一步对这个市场进行细分,结论就有可能不太一样。 原MySQL公司的首席执行长官Marten Mickos曾经说过:“如果要在开源软件上取得成功,那么你需要服务于:(1)愿意花费时间来省钱的人;和(2)愿意花钱来节约时间的人。”拿数据库这个市场来说,MySQL所服务的,大部分是第一种用户,小部分是第二种用户;Oracle所服务的,大部分是第二种用户,小部分是第一种用户。MySQL 所拥有的用户数量更多,因为不愿意花钱的人总是比愿意花钱的人多;Oracle所拥有的用户质量更高,因为愿意花钱的都是优质客户。Orqcle更多地被使用于中大型企业应用,MySQL更多地被使用于中小型企业应用,不过这个界限并不严格。因此,MySQL的用户群和Oracle的用户群之间存在一定的重叠,但是重叠的程度并不是很大。Oracle的推广是自上而下的,通过专业广告树立权威形象。一位普通的IT从业人员提起Oracle,可能会觉得 Oracle很强大,什么任务都可以胜任。MySQL的推广是自下而上的,通过口口相传培育用户信心。一位普通的IT从业人员提起MySQL,可能会觉得 MySQL同样很棒,“对付这样的应用足够了”。 但是这并不代表Oracle对MySQL的用户不感兴趣。2005年10月,Oracle收购了与MySQL关系密切的InnoDB。当时 InnoDB为MySQL提供一些事物和外键方面的技术,主要使用于比较复杂的应用当中,对于一般的应用基本上没有什么影响。Oracle收购 InnoDB的本意是希望通过拿走MySQL中的优秀特性来打压MySQL,阻止MySQL进入中大型应用这个市场。遗憾的是开发人员普遍将Oracle 的收购行为理解成对MySQL的恐惧,并且进一步得出MySQL的性能已经足以与Oracle相竞争的推论,反倒帮MySQL做了一次活生生的广告,加速了MySQL的普及。到2008年3 月Sun 收购MySQL的时候,MySQL在数据库业务领域的市场份额已经达到25%以上,更拥有了象Google、Yahoo!、YouTube这样的标杆性用户。 现在一切都顺理成章了,通过对Sun 公司的收购,不管你用的是MySQL还是Oracle,你都是Oracle的用户了。请记住,MySQL被Sun 公司收购之后,基本上是处于独立运作的状态,其现金流还是正的。只要Oracle表示继续支持MySQL数据库,就能够赢得MySQL社区的支持,并在适当的时候向他们提供更好的(要掏钱的)产品或者是服务。在未来的两到三年里,MySQL还是会作为一个独立的产品存在。从长远来看,同时维护多个具有相同或者相似功能的产品会造成用户的困惑。因此,MySQL最终还是需要融入Oracle现有的产品线,只是要等到Oracle将MySQL现有的用户群消化掉而已。 开放源代码 通过这笔金额高达74亿美元的交易,Oracle还将得到一个赠品:按照源代码的行数来计算,Oracle将成为世界上对开放源代码社区贡献最大的实体。从操作系统(OpenSolaris)到编程语言(OpenJDK),从数据库(MySQL)到应用服务器(GlassFish),从开发工具(NetBeans)到办公套件(OpenOffice),这些源代码几乎无所不包。这个赠品来得比较突然,估计Oracle还没有想好要怎样去处理它。 Oracle对开放源代码的态度,可以用四个字来总结:拿来主义。如果一个开源软件足够好用,直接拿过来集成到Oracle的产品中就是了,没有必要为其支付任何费用。用Larry Ellison自己的话来说:“我不能够给开放源代码软件开出上亿美元的支票,因为这并不能够使我们在竞争中得到优势。我们能够做的,别人也能够做。”可惜的是,Oracle收购了InnoDB,并没有拉拢到MySQL的用户;Oracle推出了Oracle Enterprise Linux,也并没有能够拉拢到Red Hat的用户。开放源代码的价值,在于围绕该技术所形成的社区,这个社区包括该技术的开发人员和用户。只有这个社区成了规模,才能够给社区领袖带来经济价值。在这一点上,Marten Mickos看得要比Larry Ellison更为透彻。 和Oracle相比,Sun 公司在开放源代码方面显然拥有更多的实战经验。在过去的四年里,只要是可以开放源代码的软件资产,Sun 公司基本上都开放源代码了 -- 不仅仅是软件,连其最新版本的处理器UltraSparc T2的设计都是开放源代码的。这也难怪有人这么评论道:“在这场轰轰烈烈的开放源代码运动中,Sun 公司无疑是开放得最为彻底得一个。从处理器到操作系统,从编程语言到开发工具,从数据库到办公环境,无一例外。”问题在于,作为一家挂牌交易的上市公司,开放源代码的举措并没有能够使公司摆脱财务上的困境,最终被Oracle收入囊中。Sun 公司的这些“实战经验”,到底有多少能够为Oracle所借鉴,是个值得进一步探讨的问题。
     
    结语 我于2004年10月满怀仰慕之情加入Sun 公司。在过去的4 年多时间里,Sun 公司一直处于动荡之中。每隔三五个月,就来一次结构调整,让大家紧张一阵。这几年来,大大小小的调整经历了不少,竟然慢慢地也就习惯了。这一次经济危机,心里也知道公司的情况非常紧张,但是没有想到竟然这么快就要被卖掉。就借用《金刚经》中的几句话,作为这篇文章的结语吧。 一切有为法,如梦幻泡影,如露亦如电,当做如是观。

    转载于:https://blog.51cto.com/shieldzhang/406899

    展开全文
  • Java发展方向

    2019-09-14 09:00:51
    JAVA项目经验 转自CSDN。 Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1、掌握项目开发的基本步骤 2、具备极强的面向对象的分析与设计技巧...

    JAVA项目经验

    转自CSDN。

     

    Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:
    1、掌握项目开发的基本步骤
    2、具备极强的面向对象的分析与设计技巧
    3、掌握用例驱动、以架构为核心的主流开发方法

    没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!

    关于基础知识:你可以看看这些名词或知识点,看是否能说出个一二三四来。

    JavaSE
    ----基本语法、数据类型、操作符等:int、long、Integer、Long、if、else、for、while
    ----面向对象:class(类)、Object(对象)、instance(实例)、state(状态)、behavior(行为)、field、method、new、可见性(访问控制)、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GC(垃圾回收)、override、overload、对象转型(casting)、多态、this、super
    ----异常处理:理解编译期错误和运行期错误的区别、Exception、RuntimeException、checked exception、unchecked exception、try、catch、finally、throw new XXXException、throws XXXException、异常处理的基本原则
    ----数组与集合:数组的定义和使用方法、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator
    ----常用类:String、intern、常量池、StringBuffer、java.util.Date、SimpleDateFormat、Regex(正则表达式)
    ----反射机制:Class、Method、Field、invoke、newInstance、BeanUtils(apache-commons)、PropertyUtils(apache-commons)
    ----输入输出流:InputStream、OutputStream、Reader、Writer、Adapter设计模式与原始流类、Decorator设计模式与包装流类、对象序列化和反序列化
    ----多线程:Thread、Runnable、sleep、wait、notify、synchronized、lock

    Servlet和JSP
    ----HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter()、request.setAttribute()、request.getAttribute()、request.getSession()、ServletContext、Filter、web.xml、tomcat、forward与redirect、http协议的无状态性、cookie、JSP Scope Object、<c:out …/>、<c:forEach …>

    HTML与JavaScript
    ----你需要能够理解常见的网页标签、理解在网页中引入JavaScript的方法、以及JavaScript的基本语法与使用方法

    以上,就是你进一步学习Java所必备的基本知识。特别是一些个专业术语和名词,看到这些名词,如果你像看到亲爹一样亲切,那么说明你对Java的基础知识就很熟悉了。

    接下来是SSH
    对于初学者来说,这三大框架被赋予了太多神秘的色彩,似乎它们是重中之重的知识!但是对于拥有多年Java开发经验的专业技术人员来说,对于那些Java牛人来说,却对这三大框架不太感冒!难道它们不重要吗?

    现在很多企业都在用这三大框架,所以很多企业也把掌握这三大框架作为招聘的必备条件。不可否认的是,也有很多大型企业没有用这三大框架,这些企业经过多年发展,自身已经有一定的技术积累,也形成了自己独特的技术框架体系。这三大框架既可以说很重要,也可以说不重要。

    说重要的原因在于:这三大框架对JavaEE开发中所存在的普遍的问题,提供了优美的解决方案,它们蕴含了这个行业中最NB的开发人员的努力和想法,所以,学习这三大框架,你就可以窥探到这些处于技术巅峰的牛人们究竟对一个问题是怎么想的,通过一种什么样的设计思路去解决问题的。所以,对于你来说,你没有太多项目开发的经验,经验是什么?经验就是你知道可能会遇到哪些问题,针对哪个问题可以有哪些解决方法,在某个情景下,哪种解决方法是较好的,哪种方法不太好等等!如果你没做过什么项目,你根本就不会去意识到你可能会遇到哪些问题,而这些问题往往又是非常关键的!解决得不好,会影响到你的程序的稳定性、可扩展性等等!三大框架就给初学者提供了了解你以后可能会遇到哪些问题,以及针对这些问题的解决方案!

    当你了解了这三大框架为什么是重要的,那么你也就能理解,为什么这三大框架也可以说是不重要的。如果你曾经开发过很多项目,你碰到了各种各样的问题,凭着你的技术功底,逐个击破了这些问题,在这些人眼里,三大框架(是不是还有N个框架?呵呵)都是浮云!

    你属于哪一种人呢?如果你没有太多项目开发经验,那么三大框架对于你来说就是非常重要的!而且,由此你也知道了该怎么去学这三大框架。对于三大框架的学习而言,着力点在于给你展示问题,并触发你自己主动的思考,我们鼓励你提出自己的想法,也许你的想法很白痴,但那毕竟是你自己的想法,如果你不知道牛人的想法,那你怎么知道自己的想法是很白痴的呢?在这种思想的碰撞过程中,你就会逐渐提高自己!所以,三大框架学完之后,你不应该只是看到一大堆配置文件,你不应该只是看到了一些Action,一些Service,一些映射文件,你不应该只知道session.save/update/delete,你不应该只是知道struts2中有一堆interceptor,你不应该只是看到一堆jar包……

    如果你只是知道拷贝一堆jar包,定义一系列配置文件之后,SSH三大框架就能够运行起来了,也可以给你干活了,那么,很悲哀的是,你仍然没有掌握三大框架的精粹!请你回答以下问题:

    Struts2:
    为什么每次请求都要创建一个Action对象?
    ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题?
    为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求?
    请你给我谈谈ValueStack?
    Struts2是如何实现MVC设计模式的?

    Spring:
    你为什么要用Spring?
    请你聊一聊IOC/DI?
    什么是声明式的事务管理?为什么要使用声明式的事务管理?Spring如何实现声明式的事务管理?
    把spring和hibernate集成,定义事务管理特性的时候,为何要将除了添加、删除、更新操作之外的方法,即主要执行查询任务的方法定义为read-only?

    Hibernate:
    请你谈谈你对OR映射的理解?
    很多人说Hibernate不适合大项目,性能有问题,你是如何理解的?


    Hibernate为什么一定要定义一个数据库标识?
    为什么Hibernate建议你的实体类实现hashCode和equals方法?
    谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识?
    谈谈你对Hibernate关联映射与数据库外键之间关系的认识?
    调用session.save()方法,hibernate一定会发出insert语句吗?谈谈你的理解
    调用session.update()方法,hibernate一定会发出update语句吗?谈谈你的理解
    请你聊一下以下名词、概念或用法:lazy、lazy=”extra”、inverse、fetch、fetch=”join”、fetch=”subselect”、batch-size
    配置了lazy=”true”一定会实现懒加载吗?
    请你谈谈Hibernate中的“N+1”问题
    请你谈谈Hibernate有哪些最佳实践?

    以上并非SSH中全部重点的问题,但它们能考察你能否灵活运用SSH框架!如果你能深刻理解这些问题,再配以合适的实战项目训练,你也会逐渐成为牛人!

    最后是项目开发能力
     

     

    转载于:https://my.oschina.net/precrown/blog/702351

    展开全文
  • java的大方向就是j2eej2ee不仅仅是socket编程,具体包括13中核心技术。J2EE的核心API与组件J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中...
  • Java发展方向是什么?Java是一门编程语言,并不能直接地给你生产出什么东西,但它可以编写出计算机看得明白的代码,叫计算机做一些事情,这些事情可以是某些功能。现在是网络时代,Java给网络带来了前所未有的繁荣。...
  • Java互联网方向Java在互联网方向的应用非常多,如果细分的话可以分为很多种。目前采用Java开发互联网网站及应用的IT企业越来越多,这也增加了Java开发工程师的需求。2011年一线城市Java网站开发工程师的待遇已经有较大...
  • uwa和java_Java发展方向

    2021-03-16 03:13:05
    JAVA项目经验转自CSDN。Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1、掌握项目开发的基本步骤2、具备极强的面向对象的分析与设计技巧3、掌握...
  • Java发展方向路线图

    千次阅读 2019-10-24 22:54:06
    大企内的Java职能分工 作为项目组来说,每当接到一个公司需求后,需要进行如下工作: 1、需求分析 2、二次需求分析并制作流程图,数据库ER图 ...Java职业发展路径 一、Java程序员: 1.Java开发入门:Java开发环境...
  • java发展方向大解析

    2018-08-08 16:23:26
    大多数人选择Java可能只是因为听说Java...一、java工程师发展前景 作为一种最流行的网络编程语言之一,java语言在当今信息化社会中发挥了重要的作用。Java语言具有面向对象、跨平台、安全性、多线程等特点,这使得j...
  • Java发展未来的方向 1.1 3G/移动开发 1.2 云计算(自来水厂) 1.3 物联网 Java与计算环境 1 分布计算(Soket,RIM,CORBA) 2 并行计算 3虚级化计算 4网格计算 Google云计算核心 1 MapReduce 大表...
  • 问下C#和JAVA发展方向

    2012-03-14 13:02:03
    我正在读编程。就快要选择c#或JAVA方向了。请问下各位前辈,这两种语言的方向是怎样的。 我比较想做桌面程序的,比如像QQ这方面的的软件。 谢谢了
  • 浅谈Java未来的发展方向java程序员也有很多方向一般来说,java的应用还是非常广的,有erp等大型系统方面的,有web方面的,还有游戏方面的。java在大型B/S系统方面的应用非常广泛,什么是B/S呢,实际上就是通过...
  • 很多人都不知道学Java有哪些发展方向,可以从事哪些职业,随着互联网技术的发展,导致现在Java培训非常热,是因为通过学习Java能够快速的就业,这对于往年就业压力非常大的大学生来说,无疑是一条就业的捷径,学习了...
  • 展开全部这边列出几个Java就业的主流方向Java互联网方向Java在互联网方向的应用非常多,如果细分的话可以分为很62616964757a686964616fe4b893e5b19e31333335336532多种。目前采用Java开发互联网网站及应用的IT企业...
  • Java程序员的职业规划是非常清晰的,可以分为下面四种方向,可以根据自身条件选择适合自己的发展方向。A、程序员。如果你觉得你喜欢代码,喜欢开发工作,那么一直做开发也是一件的不错的事,不过要考虑当你做开发10...
  • java程序员在内心上渴望转变,那么该怎么转变呢,沈阳java培训的老师给你指出了java程序员转型发展有两个方向,一个是更深层次的后端开发,另一个是转向前端,前端也是一个竞争非常大的区域,而且前端需要学习的东西...
  • Java战略及发展方向

    2011-12-23 10:20:49
    Java战略及发展方向
  • 原标题:Java程序员有哪些职业发展方向Java程序员的职业规划是非常清晰的,可以分为下面四种方向,可以根据自身条件选择适合自己的发展方向。A、程序员。如果你觉得你喜欢代码,喜欢开发工作,那么一直做开发也是...
  • Java程序员的职业规划是非常清晰的,可以分为下面四种方向,可以根据自身条件选择适合自己的发展方向。A、程序员。如果你觉得你喜欢代码,喜欢开发工作,那么一直做开发也是一件的不错的事,不过要考虑当你做开发10...
  • JAVA发展方向

    2014-05-30 00:45:25
    一下是我的建议,也是随便聊聊吧:因为我说的不一定对,可能也有很肤浅的地方。...实话实说JAVA现在确实走下坡路了,特别是web方向 下坡路很严重。所以在对JAVA开发选择方向上确实需要慎重。因为JAVA原...
  • 1 Java战略及发展方向 Chuk-Munn Lee Software Developer 以下内容旨在概述产品的总体发展方向该内容仅供参考 不可纳入任何合同该内容不构成提供任何材料代码或功 能的承诺并且不应该作为制定购买决策的依据 此处所...
  • java 个人职业发展方向规划范文 java 个人应该制定好一份职业发展方向规划书 规划好自身职业 发展的方向以下是精心推荐的一些 java 个人职业发展方向规划范 文希望你能有所感触 ! java 个人职业发展方向规划范文 (一...
  • java个人应该制定好一份职业发展方向规划书,规划好自身职业发展的方向。以下是小编精心推荐的一些java个人职业发展方向规划范文,希望你能有所感触!java个人职业发展方向规划范文(一)一、前言在就业压力日趋激烈的...
  • Java未来的发展方向有哪些呢?下面是小编收集整理的关于JAVA的未来发展及就业方向的相关内容,欢迎阅读!做java程序员也有很多方向一般来说,java的应用还是非常广的,有erp等大型系统方面的,有web方面的,还有游戏...
  • Java技术发展方向必备知识!如何成为一个优秀的软件技术工程师!加QQ群:675997991 1、后端 服务框架:springbootspringclould、zookeeper、Rest服务 缓存:Redis 消息中间件:RabbitMQ 负载均衡:Nginx 分布式...
  • 2016版的java程序员发展方向建议

    千次阅读 2016-12-07 10:09:56
    java程序员发展方向建议

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,452
精华内容 1,380
关键字:

java发展方向

java 订阅