有时候我会不知所措,又想研究算法,又怕算法弄多了,java这块又疏忽了,而且有点儿不知道java该怎么走下去。这个是我在百度知道里看到的,真的很好。贴出来和大家共勉。
1.你需要精通面向对象分析与设计(OOA/OOD)、设计模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。
2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。
3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且明白一些基本的汇编指令。
4.如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),必需掌握GUI设计的思想和方法,以及桌面程序的SWING,AWT, SWT。你还应该对UI部件的JAVABEAN组件模式有所了解。JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。
5.你需要学习java数据库技术,如JDBCAPI并且会使用至少一种persistence/ORM构架,例如Hibernate,JDO, CocoBase,TopLink,InsideLiberator(国产JDO红工厂软件)或者iBatis。
6.你还应该了解对象关系的阻抗失配的含义,以及它是如何影响业务对象的与关系型数据库的交互,和它的运行结果,还需要掌握不同的数据库产品运用,比如:oracle,mysql,mssqlserver。
7.你需要学习JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,codesigning, digitalsignatures,cryptography,certification,Kerberos,以及其他)还有不同的安全/认证 API,例如JAAS(JavaAuthenticationandAuthorizationService),JCE (JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS (JavaGeneralSecurityService)。
8.你需要学习Servlets,JSP,以及JSTL(StandardTagLibraries)和可以选择的第三方TagLibraries。
9.你需要熟悉主流的网页框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他们下面的涉及模式,如MVC/MODEL2。
10.你需要学习如何使用及管理WEB服务器,例如tomcat,resin,Jrun,并且知道如何在其基础上扩展和维护WEB程序。
11.你需要学习分布式对象以及远程API,例如RMI和RMI/IIOP。
12.你需要掌握各种流行中间件技术标准和与java结合实现,比如Tuxedo、CROBA,当然也包括javaEE本身。
13.你需要学习最少一种的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。
14.你应该学习如何利用JAVAAPI和工具来构建WebService。例如JAX-RPC(JavaAPIforXML/RPC),SAAJ (SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。
15.你需要学习一门轻量级应用程序框架,例如Spring,PicoContainer,Avalon,以及它们的IoC/DI风格(setter,constructor,interfaceinjection)。
16.你需要熟悉不同的J2EE技术,例如JNDI(JavaNamingandDirectoryInterface),JMS (JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX (JavaManagementeXtensions),以及JavaMail。
17.你需要学习企业级JavaBeans(EJB)以及它们的不同组件模式:Stateless/StatefulSessionBeans,EntityBeans(包含Bean- ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB-QL),或者 Message-DrivenBeans(MDB)。
18.你需要学习如何管理与配置一个J2EE应用程序服务器,如WebLogic,JBoss等,并且利用它的附加服务,例如簇类,连接池以及分布式处理支援。你还需要了解如何在它上面封装和配置应用程序并且能够监控、调整它的性能。
19.你需要熟悉面向方面的程序设计以及面向属性的程序设计(这两个都被很容易混淆的缩写为AOP),以及他们的主流JAVA规格和执行。例如AspectJ和AspectWerkz。
20.你需要熟悉对不同有用的API和frame work等来为你服务。例如Log4J(logging/tracing),Quartz (scheduling),JGroups(networkgroupcommunication),JCache(distributedcaching), Lucene(full-textsearch),JakartaCommons等等。
21.如果你将要对接或者正和旧的系统或者本地平台,你需要学习JNI (JavaNativeInterface) and JCA (JavaConnectorArchitecture)。
22.你需要熟悉JINI技术以及与它相关的分布式系统,比如掌握CROBA。
23.你需要JavaCommunityProcess(JCP)以及他的不同JavaSpecificationRequests(JSRs),例如Portlets(168),JOLAP(69),DataMiningAPI(73),等等。
24.你应该熟练掌握一种JAVAIDE例如sunOne,netBeans,IntelliJIDEA或者Eclipse。(有些人更喜欢VI或EMACS来编写文件。随便你用什么了:)
25.JAVA(精确的说是有些配置)是冗长的,它需要很多的人工代码(例如EJB),所以你需要熟悉代码生成工具,例如XDoclet。
26.你需要熟悉一种单元测试体系(JNunit),并且学习不同的生成、部署工具(Ant,Maven)。
27.你需要熟悉一些在JAVA开发中经常用到的软件工程过程。例如RUP(RationalUnifiedProcess)andAgilemethodologies。
28.你需要能够深入了解加熟练操作和配置不同的操作系统,比如GNU/linux,sunsolaris,macOS等,做为跨平台软件的开发者。
29.你还需要紧跟java发展的步伐,比如现在可以深入的学习javaME,以及各种java新规范,技术的运用,如新起的web富客户端技术。
30.你必需要对opensource有所了解,因为至少java的很多技术直接是靠开源来驱动发展的,如java3D技术。
分享到:
相关推荐
【中班数学接下去是几】的PPT课件是一个为幼儿教育阶段设计的专业教学资源,旨在帮助孩子们理解和掌握基本的数学概念,特别是序列和数的连续性。在这个阶段,儿童的大脑发展正处于对数量、形状和空间感知的关键期,...
知道了自己的方向,知道了为什么要学,那么我们接下来谈一谈,怎么安排自己的时间,或者说,怎么制定一个计划。要有一个大一点的计划,比如年计划,月计划,周计划。然后是精确到小时的日计划。每一天,哪个时间段做...
### Java学习路线与Android学习路线详解 #### 一、Java学习路线概述 Java作为一种广泛使用的编程语言,在软件开发领域有着举足轻重的地位。对于初学者来说,掌握正确的学习...希望每位学习者都能坚持下去,不断进步!
【Java自学之路】对于初学者来说,学习Java编程语言是一个挑战,但也是一个充满机遇的过程。...记住,选择一个方向并坚持下去,即使市场趋势变化,具备扎实的基础和灵活的思维,你总能找到属于自己的位置。
对于c语言接口网上的资料是少之又少,所以下面这些文字全是我一个字一个字打印上来的希望大家 能对的起我的付出: 现在的程序员都面临大量的关于应用... 如果你还没有搞懂c语言的全部内容,我强烈建议你先别看这里
幼儿园小班数学《认识序数-接下去是第几》PPT课件_精美学习课件ppt
并且服务器端是被动的,只能接收请求,然后向请求的原发地发送响应,如果没有请求,服务器没办法凭空发一个响应出去,因为它不知道客户的机器在什么地方。浏览器和服务器之间也不会拉一根电话线,随时保证畅通,每次...
如果您的诉求只是期末拿到高分,那么您不需要继续看下去了。但是,如果您想真正地学习模拟电路,那么您需要问自己一个问题:我学模拟电路可以做什么?很多年以后,我终于搞清楚我为什么老是觉得没有学好模拟电路了。...
学着去这样仔细的分析程序的环节和这些环节可能会产生的问题,你的经验值定然会大幅度快速的提升,这样做很累人,但是一件事情如果做下来一点都不累的话,这个东西还有价值吗? 在网页A输入了一个人的名字,提交...
这个模块提供了对MongoDB的抽象,使得在Spring应用中操作MongoDB就像操作关系数据库一样简单。你可以通过定义Repository接口,利用Spring Data的自动实现功能来执行CRUD操作。此外,还需要配置MongoDB连接信息,包括...
如果继续下去,可能会导致某些学科的落后,全面发展受到影响。李明应尝试调整心态,寻找适应不同教学风格的方法,全面发展各科知识。 8. 达标测试: - 对小刚的劝导应侧重于引导他找出问题原因,提高学习效率,...
2. 选择了就坚持下去,不要盲目跟风,跟着自己的兴趣走 3. 找到一个专业的圈子,累计自己的见识,不要只在基础知识上死磕 4. 学会多给别人解答问题,因为他遇到的也许在某一天你也会遇到,培养解决问题的能力,这...
这一过程可能会让你感到疲惫,但坚持下去,你会逐渐建立起强大的记忆力,对Java的基本用法如数家珍。 第三境:“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处”。随着学习的深入,你需要泛读更多Java相关技术...
记得是8.8号看到这个源码,心态炸裂,500行代码,20多个函数,心生恐惧连看都看不下去,更别说写了,甚至觉得自己不适合学编程,c入门级别的项目都写不出来,(之后偶然看到雷总演讲说的跳读法,不懂就跳过先学其他的,知识不是...
Java编程语言是面向对象的、跨平台的编程语言,它以其强大的功能和易用性而深受程序员喜爱。"Java学习的500个实例"是一个全面的教程集合,旨在...这个过程可能会充满挑战,但坚持下去,你将在编程的世界中游刃有余。
如果你稍稍加快速度,你会比前面更用力地推动你身边的人,但是最终每个人都会停留在与缓慢的情况下相同的位置。 在实际应用中,对于准静态分析,实际的道理也是相同的。分析的速度经常可以提高许多而不会严重地降低...
"Python学习再学习.zip"这个压缩包很可能包含了丰富的Python学习资源,可能是教程文档、代码示例或者是教学视频,用于帮助初学者和有经验的开发者深化对Python的理解。 Python的核心特性包括动态类型、自动内存管理...
因此,如果你对算法感兴趣,特别是想提升在网络协议方面的编程能力,这个“PreContest”压缩包将是一个很好的学习资源。它可能会包含一些实战题目,帮助你深入理解和应用TCP/IP协议,提升在ACM竞赛中的竞争力。
要的是,Linux 上有公认的 C 语言世界最好的编译器 gcc,如果你想得到一个效率更高的开 发环境(并不一定是最友好的,但一定是最强大的),我建议你一定要好好的熟悉一下 Linux。 三.如何得到Linux? 据我所知...
最后指针指到哪一个位置就说明你中了几等奖,非常实用。本节课难点在于转盘的绘制、指针的绘制以及广播和接收广主播语句的配对使用。兴趣是最好的老师。坚持下去是一件很酷的事情。让我们一起加油吧!