⑴ 描述一下什么是web客户端技术,什么又是富客户端技术
web客户端是指浏览器,其主要包括HTML、javaScritp等技术。而关于富客户端技术可以参考知道http://..com/question/127715039.html中的内容。
⑵ 免费的java快速开发平台有哪些
1、通过我对全国三十几家开发平台厂商的排查,能够提供免费的确实屈指可数,更可况又要是java又要是主流,找来找去只有一个,就是广州天翎Myapps平台,他们最近有推出免费版本,但是是永久免费还是免费一端时间建议直接联系进一步了解呢;
2、我看很多朋友回答中一口咬定不存在免费的,其实不然呢,现在软件行业的商业模式还是有几种的,一种是大家知道的直接卖钱(主流),第二种就是产品免费但是通过部分人工服务收费(力软),第三种就是这两种的结合体,即把产品划分出不同版本,较低配置的作为免费版去引流,而高配置的留着卖钱,我猜天翎应该是这种模式,但是有什么关系呢,对于个人,初创团队和成长型软件公司来说,很多小的业务系统只要有开发平台就足够了!
⑶ 一个合格的Java开发工程师应该具备哪些技能
.CoreJava,就是Java基础、JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合、更高效,这些内容直接看源代码就OK了2.多线程并发编程,现在并发几乎是写服务端程序必须的技术,那对Java中的多线程就要有足够的熟悉,包括对象锁机制、synchronized关键字,concurrent包都要非常熟悉,这部分推荐你看看《Java并发编程实践》这本书,讲解的很详细3.I/O,Socket编程,首先要熟悉Java中Socket编程,以及I/O包,再深入下去就是JavaNIO,再深入下去是操作系统底层的Socket实现,了解Windows和Linux中是怎么实现socket的4.JVM的一些知识,不需要熟悉,但是需要了解,这是Java的本质,可以说是Java的母体,了解之后眼界会更宽阔,比如Java内存模型(会对理解Java锁、多线程有帮助)、字节码、JVM的模型、各种垃圾收集器以及选择、JVM的执行参数(优化JVM)等等,这些知识在《深入Java虚拟机》这本书中都有详尽的解释,或者去oracle网站上查看具体版本的JVM规范.5.一些常用的设计模式,比如单例、模板方法、代理、适配器等等,以及在CoreJava和一些Java框架里的具体场景的实现,这个可能需要慢慢积累,先了解有哪些使用场景,见得多了,自己就自然而然会去用。6.常用数据库(Oracle、MySQL等)、SQL语句以及一般的优化7.JavaWeb开发的框架,比如Spring、iBatis等框架,同样他们的原理才是最重要的,至少要知道他们的大致原理。8.其他一些有名的用的比较多的开源框架和包,Netty网络框架,Apachecommon的N多包,Google的Guava等等,也可以经常去Github上找一些代码看看
⑷ java都学哪些内容学完之后可以做哪些工作
Java的应用领域非常广泛。可以做应用系统、互联网网站、以及移动端的安卓等。
学了Java之后就可以从事Java的软件开发工作,而且目前企业里紧缺的就是软件人才,Java以自身的优势市场份额排在计算机编程语言第一位。
1 java SE 一般基础学的是这个,以后可以开发图形界面等。
2 java EE 一般是做企业级应用,比如网站、XX系统软件等等。
3 java ME 一般是做java手机开发,不过现在用java开发android更火一些。
学习内容大致可分为以下10点,但也要跟上技术发展的步伐,实时更新。
1、Java语言
Java语言体系比较庞大,包括多个模块。从WEB项目应用角度讲有JSP、Servlet、JDBC、JavaBean(Application)四部分技术。
(1)、Java Database Connectivity(JDBC)技术
在Java Web应用开发中,数据库管理系统(RDBMS)的使用是不可缺少的。JDBC(Java Database Connectivity) 是一种用于执行SQL 语句的 Java API。它由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API 来编写数据库应用程序。
简单地说,JDBC 可做三件事:
l 与数据库建立连接,
l 发送SQL 语句,
l 处理结果。
(2)、Servlet技术
Servlet是运行在服务器端的程序,可以被认为是服务器端的applet。servlet被Web服务器(例如Tomcat)加载和执行,就如同applet被浏览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种操作,然后返回结果。
Servlet的主要优点包括
l Servlet是持久的。servlet只需Web服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接)。
l Servlet是与平台无关的。如前所述,servlet是用Java编写的,它自然也继承了Java的平台无关性。
l Servlet是可扩展的。由于servlet是用Java编写的,它就具备了Java所能带来的所有优点。Java是健壮的、面向对象的编程语言,它很容易扩展以适应你的需求。servlet自然也具备了这些特征。
l Servlet是安全的。从外界调用一个servlet的惟一方法就是通过Web服务器。这提供了高水平的安全性保障,尤其是在你的Web服务器有防火墙保护的时候。
l Servlet可以在多种多样的客户机上使用。由于servlet是用Java编写的,所以你可以很方便地在HTML中使用它们。
(3)、JavaServer Pages(JSP)技术
JSP是从Servlet上分离出来的一小部分,简化了开发,加强了界面设计。JSP定位在交互网页的开发。运用Java语法,但功能较Servlet弱了很多,并且高级开发中只充当用户界面部分。JSP容器收到客户端发出的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式响应给客户端。其中程序片段可以是:操作数据库、重新定向网页以及发送 E-Mail 等等,这些都是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,与客户端的浏览器无关,因此,JSP 称为Server-Side Language。
JavaServer Pages的主要优点包括
●一次编写,各处执行(Write Once, Run Anywhere)特性
作为Java 平台的一部分,JavaServer Pages 技术拥有Java语言“一次编写,各处执行”的特点。随着越来越多的供货商将JavaServer Pages 技术添加到他们的产品中,您可以针对自己公司的需求,做出审慎评估后,选择符合公司成本及规模的服务器,假若未来的需求有所变更时,更换服务器平台并不影响之前所投下的成本、人力所开发的应用程序。
● 搭配可重复使用的组件
JavaServer Pages技术可依赖于重复使用跨平台的组件(如:JavaBean或Enterprise JavaBean组件)来执行更复杂的运算、数据处理。开发人员能够共享开发完成的组件,或者能够加强这些组件的功能,让更多用户或是客户团体使用。基于善加利用组件的方法,可以加快整体开发过程,也大大降低公司的开发成本和人力。
● 采用标签化页面开发
Web 网页开发人员不一定都是熟悉Java 语言的程序员。因此,JSP 技术能够将许多功能封装起来,成为一个自定义的标签,这些功能是完全根据XML 的标准来制订的,即JSP 技术中的标签库(Tag Library)。因此,Web 页面开发人员可以运用自定义好的标签来达成工作需求,而无须再写复杂的Java 语法,让Web 页面开发人员亦能快速开发出一动态内容网页。
今后,第三方开发人员和其他人员可以为常用功能建立自己的标签库,让Web 网页开发人员能够使用熟悉的开发工具,如同HTML 一样的标签语法来执行特定功能的工作。
● N-tier 企业应用架构的支持
有鉴于网际网络的发展,为因应未来服务越来越繁杂的要求,且不再受地域的限制,因此,
必须放弃以往Client-Server的Two-tier 架构,进而转向更具威力、弹性的分散性对象系统。由于JavaServer Page 技术是Java 2 Platform Enterprise Edition (J2EE)集成中的一部分,它主要是负责前端显示经过复杂运算后之结果内容,而分散性的对象系统则是主要依赖EJB ( Enterprise JavaBean )和JNDI ( Java Naming and Directory Interface )构建而成。
(4)、JavaBean(Application)应用组件技术
Application是Java应用程序,在WEB项目和一些开发中主要应用JavaBean。它就是Application的一部分,逻辑运算能力很强,能极大的发挥Java语言的优点。JavaBean 被称为是Java 组件技术的核心。JavaBean 的结构必须满足一定的命名约定。JavaBean能提供常用功能并且可以重复使用,这使得开发人员可以把某些关键功能和核心算法提取出来封装成为一个组件对象,这样就增加了代码的重用率和系统的安全性。
高级的WEB项目会应用到以上所有技术,它们之间联合使用和协作开发会提高开发的效率和系统的性能。
2、面向对象分析设计思想
Java语言是完全面向对象的语言,所以在项目设计时会有很大的帮助,在设计时应尽量舍弃以往的面向过程的设计方式。
在分析项目业务关系的时候,应用一些UML(Unified Modeling Language)图,例如常用的用例图(use case diagram),类图(class diagram),时序图(sequence diagram)等等,会有很大的帮助,这样能尽快找出业务逻辑主要面对的对象,然后对每个对象进行行为划分,最后再实现对象之间的集成和通信。
3、设计模式和框架结构
Java从语言角度来讲不是很难,但是从整体设计角度来讲我们还需要了解一些高级应用框架。如果要设计一个良好的框架结构,单单只掌握Java语言远远不够。这就涉及到一个设计模式,还有和设计模式相关的一些知识。
设计模式在Java项目实施过程更是重中之重。主要在与两层的设计模式、三层的设计模式和N层的设计模式。它直接决定着项目的应用、部署和实际开发设计。
在普通的WEB项目中很多采用两层的开发结构。JSP+Servlet或JSP+JavaBean。当对开发要求高的项目中使用很多的还是MVC的三层开发结构,也就是JSP+Servlet+JavaBean。它能分有效的分离逻辑开发,使开发人员能专注于各自的开发。同时也能时整个开发结构流程更清晰,但是需要比较高的开发配合度。
在项目中,我们经常使用着名的Model-View-Controller(MVC)架构。MVC架构是随着smalltalk language语言的发展提出的,它是一个着名的用户界面设计架构。经典的MVC架构把一个组件(可认为是整个应用程序的一个模块)划分成三部分组 Model管理这个模块中所用到的数据和业务逻辑。而View 管理模块如何显示给用户,Controller 决定如何处理用户和该模块交互式时候产生的事件如用户点击一个按钮等。
4、XML语言
在服务器和设计模式结构中会应用到自定义文件,而且在应用高级设计时也会定义自用的标签,现在流行的是用XML去定义配置,所以XML语言应该有一定掌握。
当前,Java 2平台企业版(J2EE)架构在厂商市场和开发者社区中倍受推崇。作为一种工具,可扩展标记语言(XML)简化了数据交换、进程间消息交换这一类的事情,因而对开发者逐渐变得有吸引力,并开始流行起来。自然,在J2EE架构中访问或集成XML解决方案的想法也很诱人。因为这将是强大系统架构同高度灵活的数据管理方案的结合。
XML的应用似乎是无穷无尽的,但它们大致上可以分为三大类:
1、简单数据的表示和交换(针对XML的简单API(SAX)和文档对象模型(DOM)语法解析,不同的文档类型定义(DTDs)和概要(schemas))
2、用户界面相关、表示相关的上下文(可扩展样式表语言(XSL),可扩展样式表语言转换(XSLT))
3、面向消息的计算(XML-RPC(远程过程调用),基于SOAP协议的Web 服务(Web Services),电子化业务XML(ebXML))
5、网页脚本语言
为了提高WEB项目的整体性能,提高人机交互的友好界面,网页的脚本语言是很有用处的,有的时候可以解决很大的难题或提高程序的性能和应用性。
网页脚本语言的执行都是在客户端执行的,速度很很快,并且大多的操作与服务器没有交互运算,所以在一些应用中非常理想。在设计WEB项目的应用中,网页的脚本语言起着不能忽视的作用,所以如果设计WEB项目的应用中,对JavaScript应有一定的了解。
JavaScript是一种基于对象(Object Based)和事件驱动(Event Driven)并具有安全性能(Secure)的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。
⑸ Java是否真的即将被取代
对于最近有关 Java 即将退出历史舞台的传言,您可能想知道在这个时候放弃使用 Java 平台并转而使用更新的技术是否时机成熟?在作出您的判断之前,请先回顾并查看一下 Java 生态系统以及它的竞争者,看看这些传闻是否站得住脚。换而言之,了解整个 Java 世界目前的现状,并客观公正地评判这个平台。 在学生时代,我们可能会想起 Thomas Malthus 所做的预言,他认为人类赖以生存并继而形成人类文明的农业体系,可能无法再承受人口数量的不断攀升,另一方面,这种情况将不可避免地造成严重的后果,通常会引起巨大的灾难或其他自然灾害。他这样写道:若对人口数量不加限制,将呈几何比例增长。而人们赖以生存的物质则以算数比例增长。与后者相比较,如果稍微了解一下这些数字,就会意识到人口增长是多么惊人。这意味着,针对生存物质的匮乏,需要对人口增长进行严格而持久的控制。物质匮乏终究会发生在某些地方,并且必定会严重影响到大部分人类。 Thomas Malthus 在 1798 年发表了 “人口论”。从那时开始,我们一直在等待着验证有关人口增长的 “Malthusian 检验”。 编程人员,特别是使用 Java 平台和语言的人员,可能已经注意到,随着使用难度不断增加,人们的种种预测和统计暗示着他们所选择的平台即将没落。而大量候补接任者跃跃欲试:人们提名 .NET、Ruby 甚至是 Python 作为 “下一代重要技术”。 这两种 “Malthusian 学说” 之间存在着惊人的相似之处。 Malthus 认为,由于食物对人类的生存非常重要,而地球的产出有限,并且繁殖所需的生物体系是不会改变的,我们终将达到一个极限,那时地球将无法承受人口负担。换句话说,如果继续以现在这样的方式生存,将注定灭亡的结局。那么在 1798,很难推翻 Malthus 的学说。 同样,在过去十八个月中,Java 社区出现了一种新趋势:即预测 Java 平台的消亡日期。从一些低级的新闻杂志将其称为 90 年代的技术,到夸大其辞的技术演讲者宣传它的现状,再到各种书籍宣称我们正在 “超越” Java 时代,不难发现一点:通过合理的暗示、代码演示、逻辑或统计性说明,Java 正在走向没落。 Malthus 错过了工业革命,而后者引发了翻天覆地的变化。在 Malthus 一生中,他见证了人类农业生产力的巨大飞跃,这要得益于蒸汽机和轧棉机这些发明。这些设备为他的学说提供了重要的 “缺失的联系”,它们使粮食产量成倍增长,从而使农业系统能够战胜制造了大量人口的 “两性激情”。随后,人口控制方面的技术创新对降低人口增长起到了相同的作用,减轻了人口负担,从而造成了很多西方国家出现人口负 增长,因此情况与 Malthus 的相当合理的逻辑完全相悖。而所有这一切在 Malthus 撰写其论文时是无法预见的,使人类能够超过他所预测的农业系统的承受极限而继续存活,并且避免了由此而来的一系列灾难。 而技术批评家所忽略的则是 Java 虚拟机的替代语言的兴起引发了巨大的变化。不过不要轻易相信我的一家之言,让我们逐一查看支持这种说法的论证,看看它们是否站得住脚。 Malthusian 式的 Java 预测 一些人仅仅引用了一些统计性描述,说明 Java 不再是程序员中最重视的语言,就简单的判定 Java 已经在走下坡路。其他人指出 Java 缺乏其替代环境所提供的某些特殊特性,这些特性被标榜为用户及其应用程序的 “需求”。还有一些人发表(毫无事实依据)诸如 “大企业不会再使用 Java” 等言论,从而明确地暗示,如果大企业不使用 Java,那必定是因为这种技术不值得使用。 Java 语言,从更大的程度来讲,Java 平台及其生态系统,很早以前就超过了 Simon Peyton-Jones 所谓的 “生存阈值(The Threshold of Immortality)”,就像 C++、C、COBOL 和其他语言所经历的一样。这些工具几乎可以永远存在下去,这是因为它们将继续提供有用的功能,或者是因为重写代码的尝试可能要比继续按原样使用和维护系统付出更多的代价(有关特定语言或系统究竟属于这两个原因的哪一种,存在很多的争议,而这对于本文的目的则无关紧要)。 另一个论据让所有聪明人都放弃 Java 而转向平台 X 或语言 Y.在 2005 年的一篇 BusinessWeek 文章 “Java? It's So Nineties”,引用了很久以前就倒闭的应用服务器公司 NetDynamics 的前 CTO Peter Yared 的话,“Java 像恐龙一样古老”。可是,还未来得及搞清楚利益冲突和推理逻辑,这篇文章就写到 Yared 所有的公司正在尝试在 LAMP(Linux?/Apache/MySQL/P-language)栈之上重新创建应用服务器体验。 (指出 Ruby 的构想实际上早于 Java,同样还包括 Perl 和 Python,这样做有些无礼,更不要说 Linux、Apache 和 MySQL……因此这里我就不便再多做解释了)。 引用我喜欢的一部电影,“生活是痛苦的,殿下。持不同观点的人一定有所企图”。或者,为了更恰当地解释这个主题,可以这样说:“过渡到一个新的平台是痛苦的,CTO 先生。持不同观点的人一定有所企图”。也许并不令人惊讶,对于一些已经重新定位到其他技术领域的 Java 专家来说,情况确实如此。 来看看另一个论据,它说 “Java 的顶级语言的位置已经不保,因此它的衰退必定非常悲惨,因此最好避开这场灾难”。这种论据所依据的是一个最基本的前提,即如果 Java 不再是世界上最畅销的技术,则不值得再提供该语言的支持。而这种说法若经过逻辑推理,则根本毫无道理。 统计信息很久以来一直被认为是不可靠的(如果使用不当的话),正如 Benjamin Disraeli 的巧妙解释,他说:“世界上有三种谎言:谎言,诅咒和统计”。统计信息可以用来论证最靠不住脚的论据,只需要根据论据仔细挑选所需的统计信息。注意 BusinessWeek 一文中使用的引用:“调查……显示 Java 的使用逐渐没落,而 LAMP 和 Microsoft? 的 .NET 技术势头强劲”。喔,听上去情况不妙。但是,请继续读下去,“根据 Evans 的秋季调查显示,在北美使用 Java 作为其首选编程语言的开发人员的比例已下降到 47.9%,而 2002 年秋为 51.4%”。因此,在过去六年中,在使用 Java 作为其首选 编程语言的开发人员中,使用率下降了 3.5 个百分点。 请注意,这里使用了 “首选” 编程语言一词,这意味着开发人员自己需要区别什么是他们的 “首选” 语言。考虑到大量的 XML 配置,使用 Spring/Hibernate/JSP Java 栈的开发人员可能可以很好地判断出 Java 不再是他们的首选语言。 注意过去六年中 Java 平台之上兴起的动态语言(Jython、JRuby、Groovy 甚至是 JavaFX),根据我和我的同事(“No Fluff Just Stuff” 的演讲者)在 NFJS 活动的非正式投票中获得的应用数字,这些动态语言可以很轻松地解释这三个百分点的下降。 考虑同样摘取自同一篇文章的引用:“在另一份调查中,今天秋季,PHP 在北美的采用已经上升到 36.1%,而 2002 年同期为 26%.其增长速率几乎和欧洲和亚洲一样快”。考虑到这是一个不同的调查系列,它只是为了显示 PHP 的增长,而不是 Java 市场的萎缩。祝贺 PHP,但是任何研究过企业环境的开发人员都可以证明,生产软件部署并不像这篇文章的作者力图暗示的那样是一个零和(zero-sum)游戏。大型 IT 环境通常由种类繁多的工具、平台、语言和产品组成。事实上,我们几乎可以在这里实现 整合,特别是那些大型机组件。 谈到主机,事实上,COBOL 在几十年前就不再是最重要的语言了,但是,它现在仍然继续用于现金支付、转移存款、支付信用卡等业务并运行主要的金融网络,尽管很多行业权威早已经宣布了它的 “死亡”。对于本应在坟墓里腐烂的技术,这实在是不错;这使我想起 Mark Twain,当他看到家乡报纸上他的讣告时说:“先生们,关于我死亡的报道被严重夸大了。” 然而,撇开统计数字的问题不谈,第二个问题更严重:为什么仅仅因为所选的工具不是最好的就弃而不用?Java 占据软件开发的首要地位近十年,仅仅由于它 “下降” 到第二位,游戏就结束了?甚至认为仅仅因为人们的惰性就会阻止 Java 重新恢复首要语言的位置,事实是,10 个程序员里面有 4 个会继续使用这种语言,这将保证 Java 在未来几十年里仍然保持活跃的生命力。更荒谬的说法是,Java 的增长将面临急刹车,并且再也不会出现 Java 部署,然而,Java 目前在整个行业内得到了广泛的部署,这可以保证 Java 继续出现相当长的时间。 尽管COBOL 被宣布已经死亡,但是要求使用它的人每年达到 6 至 7 位数。 然而指出一个论点的缺点并不能证明另一个观点,对于本文也是一样的。相反地,我们应该用批评的眼光看待 Java 语言和平台,而其强项和劣势经受住了严格的分析。Java 之所以长寿在于它能满足未来十年的需求,而不是由任何作者或批评家来决定它的生死。 最后,我们考虑一下构成 Java 平台的那些组件: Java 编程语言。坦率地讲,这是平台中最能体现其长寿的部分,特别是与一些诸如 C#、Groovy、(j)Ruby 或 Scala 等更 “现代的” 语言比较时。近来涌现出大量关于改善该语言的建议,诸如为该语言添加闭包等极具竞争力的提议,证明了程序员非常渴望 Java 能够具备其他语言的一些特性。然而,Java 5 中最新语言增强功能所带来的联合成功应该成为所有新的重大语言变更的“注意刹车”的提示。某些增强,比如 for 循环或注释,得到(相对)普遍的支持。然而其他一些增强,比如泛型,则受到(相对)普遍的嘲笑和批评。事实是没有任何一种语言功能能得到它本应帮助的开发人员社区的普遍接受,这个事实告诉我们:为一个已存在十年多的语言添加新的语言特性是很棘手的事情,如果完成,也很可能会导致语言自身的崩溃。在 Java 平台的地图中,这个区域标注着“老水手”的警告:“此处有怪物!” 非Java JVM 编程语言。在Java 止步不前的地方,其他语言提供改进和增强的解决方法。Groovy 围绕 Java 对象提供了一个动态、客观的脚本解决方案。(j)Ruby 在 JVM 之上提供 Ruby 实现,为 Java 程序员开辟了 Rails 和 ActiveRecordoffers 的世界。Scala 和 Jaskell 给 JVM 引入了功能概念,为所出现的并发性问题提供可行的解决方案。诸如此类。由于所有这些语言要么编译成字节码,要么通过 javax.script API 作为解释语言在 JVM 上运行,因此 Java 生态系统的所有财富都是可以利用的— 而这是 Ruby 开发人员无法做出同等声明的一个方面。在 Java 平台的地图中,这个区域被标注为“机遇之国”。 Java 虚拟机。 幸运的是,Java 语言已经做出了重大修订和根本性的变化,而 JVM 作为 Java 平台的底层基础,变化并不多。近来,在博客世界中,许多人建议使 JVM 对动态语言更友好,这使 Sun 公司的一名工程师(John Rose)提供了 JVM 的修订版,最初称为多语言虚拟机( Multi-language virtual machine,MLVM), 现改名为 Da Vinci Machine(因为紧密地包装在代码中)。此处的关键在于被提议的 JVM 更改要避免任何有可能使 Sun 公司在 JVM 优化上的庞大投资作废的事件。那些提出建议的人在设计细节时一直将这一点牢记于心。 Java Standard Edition 库。 Java Standard Edition 附带了巨大的函数集,数量级比 C++ 标准库更大,甚至许多因素比它前身 Java 1.0 都大,并且这还没有考虑 Enterprise Edition 库(接下来讨论)。表面上,这看起来像 Java 开发人员的自然优势,但仔细考虑就会发现一些细微的问题。对初学者而言,库的庞大意味着许多 Java 开发人员认识不到他们在写一些实际已经存在的代码,这些代码收藏在一个在此之前未知的包中。根据存在时间的不同,库本身有时也会遇到 API 设计时间的烦恼,其中有许多 都源于 90 年代中期,那个时候开发人员设计类和库的方式与 2008 年的设计方法截然不同。一部分开发人员也深受抽象过多之苦,正如创建对象构建者的工厂所例证的一样,这些对象构建者创建的接口实例不一定能实现开发人员感兴趣的方法。然而,虽然 JSE 库有缺陷,但从整体来说 JSE 依然有优势,尤其是当它与像 Groovy 提供给 JDK 的扩展(称为 GDK)这样的语言支持增强结合时。 Java Enterprise Edition 库。 没有任何技术能够比 EJB 对其社区产生更大的冲击,并且幸运的是,Java 社区看到了轻量级替代方案的兴起,Spring 和 Hibernate 提供了最后的例证,对这些场景来说,轻量级替代方案是理想选择。然而,如果暂时不考虑 EJB,Java EE 库就是非常成功的 — servlets 和 servlet 容器为遍及 Internet 和企业内部网的大量 Web 应用程序提供动力,JMS 提供对多种面向消息中间件系统的访问,JEE 领域中其他不太知名的参与者(如 JNDI) 毫无怨言地执行自己相应的任务。JEE 库很有可能受益于 API 重新设计,JSE 库就是这样,总体来说 JEE 库将满足 Java 程序员的需要。最大的问题往往在于认识何时首先需要 JEE 库。我们将在另一篇文章中讨论相关内容。 Java-API-for-XML (JAX) 库。 尽管名义上是 JEE 库的一部分,但 JAX API 的数量和规模都在以与 JEE 其他部分不相称的速率增长,值得脱离 JEE 的上下文来考虑 JAX API。在近十年,尽管对 XML 支持的需求是巨大并且普遍的,但目前已经有所缓解,尤其是 Web services (WS-*) 周边领域和规范阵营(这些规范允许与其他技术之间实现普遍、轻松的互操作,包括 .NET)。在这里,Java 无疑需要某种类型的修订,由于 SAX、DOM 和 StAX API 经常需要更多的代码来完成重要任务,尤其是和具有更灵活的 XML 支持的语言相比时,比如 E4X、Ruby 或 Scala。此处,以 XML 为中心的思想有了明显的改变,从早期的 WS-* 实现中“不接触 XML”到基于 RESTful 方法的“我希望直接接触 XML 并将其寻址为形式良好、有意义的 URI”,这种方法也强调了 JAX 领域内重构的必要性。在 Java 世界的地图中,这个区域被标注为“(应该)弃用的” 客户端 Java。Sun 公司最近修订的“Java客户端”系统的测试版有个相当糟糕的名字 “Java SE 6 Update 10 Beta”,它提供了增强的客户端特性,包括新的 Swing 外观,称为 Nimbus。遗憾的是,在客户端度量 Java 的使用一直都存在问题,主要是因为专门用于度量的 applet 在 Internet 上已经使用了很长一段时间,还因为众多对 Web 托管应用程序的设计和架构关注点都以 HTML 的生成为中心,而不是生成现在所说的“富客户端”应用程序。随着采用速率的提高,Java 要经过漫长的旅程,追赶它在这个领域中的主要竞争对手,Flash 和微软在该领域新引入的技术 Silverlight 使情况变得更加复杂。Java 可能也会彻底失去阵地,这并不代表着这种平台的“消亡”,但会使问题恶化,当业内学者和商业杂志将其称为“Java 技术弱点的明显例证”时,一定要鼓舞自己! 服务器端 Java。 这实在不容争议:Java 毫无疑问是服务器领域内既定的参与者,特别是在查看非 Windows? 后端场的选项时。LAMP 系列产品可能提供一个前端或垂直筒仓替代方案,正如 Ruby on Rails 所做的一样,但观察重要的服务器计算基础设施时,Java 系列产品的形象十分突出。事实上,正是这种领先地位促使微软最先积极地寻求 WS-* 规范,以使 .NET 代码至少能调用和配合既定的 Java 基础设施。微软最近认可了使互操作性向更正式的水平发展,他们在剑桥大学设立的“Interoperability Lab”也体现了这一点。 生态系统。 没有其他的平台拥有像 Java 平台一样如此丰富多样的生态系统,然而这经常会给 Java 开发人员带来一些麻烦(“我该使用哪种 Web 框架?”),事实上,很多 Java 生态系统都渗入其他环境,尤其是.NET。考虑 .NET 近来在微软内外获得的进步:ObjectBuilder(依赖性注入框架)、ASP MVC(基于 MVC 的 Web 框架)、NHibernate(Hibernate 的一部分)、NAnt 和 MSBuild(在句法或概念上与 Ant 相似的基于 XML 的构建系统)甚至 Silverlight 本身(在浏览器内部托管 CLR,允许执行更丰富的客户端)。在许多方面,.NET 生态系统为 Java 社区做了将近五年的后盾,因为 .NET 开发人员发现了与 Java 开发人员在五年前遭遇的相同痛点。而 Java 仍然坚持向 .NET 社区学习(比如统一通信 API 的有用性或显式轻量级工作流引擎的强大力量)。这只用来说明这些环境都正在互相学习这一事实,而且也表明,.NET 并没有使 Java 成为不必要的能力。 毫无疑问,Java 开发人员可以将他们自己的条目添加到这个列表中,证明这个论点:在 Java 平台中留有太多的优良的东西被认为“消亡了”或“将要消亡”或者甚至在“崩溃的边缘”。 王者终将归来 最简单的事实是:Java、平台、生态系统、环境和开发社区与消亡相去甚远,至少和目前正在使用的其他语言或平台距离一样远。即使是最严格的统计事实筛选也不能否认 Java 的领先地位。 此外,即使 Sun Microsystems 公司倒闭,平台也不会消亡。全世界的 Java 的开发人员,联合起来!不要惧怕束缚的铁链:最终您将看到,这些铁链其实并不存在。多亏 Java 平台的开源,它现在被称为 OpenJDK,更不要说 Java 的其他开源“净室”实现(Apache Harmony 和 Soy Latte 只是其中之二),即使 Sun 公司彻底从地球上消失,包括 IBM?、Apache、BEA 和 Oracle 在内的其他实体也能继续提供 JVM、库和工具,来支持整体生态系统。 Java 总有一天会消亡?它甚至能比刚刚走出大学校园的第二代 Java 程序员走的更长 育路网
⑹ 我要做个oa系统,用什么js富客户端框架比较好
如果是采用java开发,那正好可以借鉴下我们的云海中腾OA办公系统,也是用java的架构,可以看下我们页面中关于技术架构的介绍,希望能够对你的商业开发有所帮助。
如果是要应用oa办公系统,可以在我们oa系统基础上进行二次开发应用,也是非常方便。
--OA办公软件,电子政务OA自动化系统,推荐考察试用
云海中腾OA,采用国际化java语言十余年持续开发升级,安全稳定,功能丰富,安卓、苹果ios移动办公app专业客户端配置完整,操作简便,阿里钉钉、微信企业号接口完善稳定,实用适用,并提供量身定制拓展开发,提供本地化安装配置实施培训服务,贴心无忧的用好OA办公系统。
⑺ java富客户端目用什么比较好swing还是rcp
C#这个开发桌面应用比较快
⑻ java的学习捷径
你的j2se只学了一点而已,不管怎样,都要先把j2se学好,这是基础。j2se的学习顺序一般是这样的:基础语法 -> 面向对象入门 -> 异常处理 -> 数组 -> 常用类 -> 容器(相当重要) -> IO -> 线程 -> 网络 -> GUI。
既然你io,thread都学了,其余那些还有没学的,建议去看看马士兵的j2se视频,其实我觉得如果想打好基础的话,这套视频应该全部过过,特别是开始的内存分析和面向对象分析。学完j2se要做做几个基础的桌面项目,像什么贪吃蛇啊、俄罗斯方块、简单的聊天器等等,这样才能把知识整合起来,加深对j2se的理解。
如果想走j2ee路线的话,接下来应该学数据库,再学html、css、JavaScript、jsp/servlet,也就是web的入门,之后做做web项目,比如小bbs、网上商城等等。学通了就学框架,这期间会穿插很多东西,例如xml、uml、log4j、jUnit等等,最后学设计模式和面向对象的分析。计算机的东西是很多的,不要学死,也不要想着学完,最重要的是学会解决问题的方法。开始肯定要模仿别人的代码,不断模仿,多看,看完一定要自己写几遍,只有能写出来了的,才是自己的东西,建议开始时多背点东西,包括一些常用类啊、一些概念性的东西,因为背多了自己就熟悉了。
马士兵的视频:http://www.verycd.com/topics/93279/
数据库的要另找,网上能找到马士兵的Oracle,讲的很不错的!!
shopping这个项目也有从头带到尾的,也是马士兵的,要找找
做项目是很重要的,从简单的做起,慢慢体会其中的分析与设计
学java还是从视频入门的好,千万不要一开始就去看《Thinking in java》,吃力不讨好,学到web时可以看看张孝祥的《深入体验JAVA Web开发内幕——核心基础》,写的很详细,不过他的视频一般,JavaScript就看《JavaScript高级程序设计》,html比较简单,css也比较简单,不过css布局因人而异,有人觉得很好理解,有人觉得很难,搞个Dreamweaver多练练也就熟悉了。设计模式可以看《大话设计模式》,入门很好!
补充一点:张孝祥的那本《深入体验JAVA Web开发内幕——核心基础》真的很不错的!!而JavaScript的就不行,不够细,而且太多其他内容(html、css的,而且写的一般),他写的那本java的书就没看过,不知道怎样,另外,他的视频实在不好,在念书一样。个人认为,还是马士兵的视频好,讲的很好,而且还讲了很多学习的方法,很适合入门,还有,不要一下子下一大堆的视频,不要把什么孙鑫、张孝祥、马士兵的全下,你是看不完的!你可以先下他们的第一集,看看谁的讲课方式适合自己,再做定夺,不过个人十分推荐马士兵的,真的讲的很好!!!
记住:不断敲代码、敲代码、敲代码..... 程序是写出来的,不写学到死也学不会的!!!
主要还是看你想要走哪个方向!
java的应用主要分三个方向
j2se:传统桌面应用程序
这个现在用的已经越来越少,而且java的优势体现的不够彻底
j2me:手机上的应用程序
这个本人比较看好,但是现在的市场貌似还没有完全打开
j2ee:大型企业级开发,运行在web上的应用程序
这个是我现在的主要发展方向,也是java这个技术的主要发展方向。
前面两个,我不是很熟悉,所以就不帮你介绍了
主要为你介绍一下如何系统的学习j2ee的内容:
1、首先你必须学会java基础
包括java语言基础,以及一些常用的类,多线程,IO流,网络编程等
2、学习jsp
在学习jsp之前,必须了解html和javascript
然后再去学习jsp的基本语法,以及什么是servlet
什么是javabean
3、框架的学习
为了增加开发效率,现在的很多开发人员和很多的公司都会使用第三方框架
主流的是struts,spring,hibernate。
4、学一门富客户端的语言
这个是我现在的学习方向,随着网络的发展,浏览器能展示的东西越来越多,
客户对客户端的需求也越来越高,所以我相信富客户端会是以后web软件的
发展方向。
最后,告诫你一点:基础是最重要的,只有基础牢固才有可能最后面的学习有更加深刻的认识!好吧,就到这,希望能够对你有帮助...
时间控制的话,需要看你自己的学习状况来定。
掌握一个原则,在自己的承受范围之内就可以了。
看完基础知识
开始敲代码!!!
实在不知道敲什么代码
就来
http://..com/browse/870?lm=2
捡着自己会的回答!!!
可以练习自己的能力的!!!
有钱去搞个培训,没钱下套视频。
会看书的话,去搞本《Thinking in Java》,还有那两本黄皮的JAVA 初级基础 和 高级特性。
se学完之后可以先写几个小的项目练练手。
如果感觉好的话,就可以看看自己的方向了,关于方向方面1楼的回答已经很不错了。
⑼ java 前端的技术
java语言本身不能做什么你说的那些前端的东西,现在比较流行的前端技术如jQuery,ext,还有Adobe公司的flex都是不错的
⑽ java 富客户机平台(Rich Client Platform, 即RCP)技术是否会过时
这年头啥东西不是封装的,开发web也是用一些别人封装好的东西啊。程序员的好坏从来不是看他能写多么多么底层的代码。大多数程序员不去做底层开发不是因为他智力不够,而是因为毅力不够,底层的东西实在太枯燥了。个人感觉rcp很有发展前途啊(也许发展到后来就不叫rcp了),喜欢研究底层的直接看别人是怎么封装代码的不一样可以提高吗,最终学会如何思考要比学会怎么使用一些类库来的有价值。有毅力就能成为优先的程序员,但不意味着能挣到大钱。