java作为跨平台,开源的面向对象语言,已经成为当今企业平台建设里的主流,无论从后台还是前台的开发,都有丰富的开源组件及框架的支持,而且方便开发高扩展,可维护性的企业应用程序。
于是又非常多的初级程序员选择了java作为自己的主打方向。当然我也是从一个菜鸟一步一步走过来,虽然现在可能还是个菜鸟,但回顾起来,有很多感触,在此向选择java的新人们分享。
首先从广义上讲,java分为三个方向,分别是J2SE、J2EE、J2ME。其中J2SE是后两者的基础。大家都知道这样的道理,世界最高的大厦,它一定会有一个非常坚固的地基。没有一个牢固的基础,无法继续更高层的建设。有关什么事J2SE,J2EE,J2ME我不多说了,如果有不明白的,去google。
学习J2SE并非需要了解每一个包中每一个接口和类。当然如果你是从头到尾学的,而且学的很熟,那么最好不过了,但从我工作中来说,常用的几个包中的接口和类一定要掌握,而且要深入理解。这些包分别是java.lang,java.io,java.nio,java.util,java.net,javax.management等包。其中lang包中常用的我不说,但比如线程方面,异常方面需要特殊的深入理解,这两个方面的应用在工作中很能体现一个人的功底的,尤其是异常的处理。java.io,java.nio配合java.net包来做一些关于socket通讯的程序,有助深刻的理解。java.util包着重理解集合和数组等,考虑他们的应用场合,线程安全问题,性能问题,资源回收问题等,其中java.util.concurrent包中的对与多线程的支持很多,用点心掌握。java.management包是新jdk中的特性,看看JMX相关的东西,一般做后台程序需要它。还有其他的如java.text包中的东西,看下。这个包主要是一些format相关的操作,在后台业务逻辑中常用,比如如何构造业务数据,如何解析等等。在XML方面,需要掌握基本的几种解析方法,如dom,dom4j,sax,jdom等,掌握后再掌握几种开源的解析框架,如XStrem,XMLBeans,JAXB等。差不多J2SE的基本语应用掌握这些就能够使你在工作中游刃有余了,其他的需要的时候再去看也不迟。
如果你是个开发后台的程序员,那么J2SE只是一种工具,如何能把工具用好,就要看自面向对象的能力和设计能力了。比如23种设计模式中常用的几种,如单例,原型,工厂,代理,适配器,观察者等模式。多线程模式了解下reactor模式。关键是知道什么场合用这些模式,用的时候要注意什么。在掌握模式的情况下,同时也要掌握一些软件开发原则,比如开闭原则,单一职责原则,包的设计原则等,核心思想就是高扩展,低耦合。关于这些抽象上的思想,不是一时能锻炼出来的,需要多编程,多思考,多参考高人写的代码才能掌握。有关设计模式,个人认为写的好的书是一个叫《敏捷软件开发设计与原则》的一本书,写的很好。
后台的开发能力拥有了,就向j2EE进军,主流几个框架的运行原理,怎么用,2个月能基本会用,SSH相关的视频教程到处都是,个人认为尚学堂马士兵的还不错,其中重点学习下Spring,因为Spring是应用场合比Struts,hibernate要多的多。Struts1,2都要会用,它们是做视图层的最常用的框架,掌握它们再学别的就很快。其中主要思想是MVC的思想。有关MVC设计模式去问google。JSP,Servlet,JavaScript等是基础,好好学下。关于持久层的技术,用的最多的是IBatis和JDBC,有人刚学的会问,不是说Hibernate是老大吗?为什么不用它,我的回答不一定正确,有错误的地方多包涵,那是因为IBatis,JDBC中可以可以用Sql直接操作数据库,赤裸裸的SQL能完成很多业务上的复杂要求,而Hibernate需要非常精通的人才能达到用面向对象的方式来正确的操作数据库,而且性能优化也需要特别的高手。在大型的应用程序上,他要求维护人需是hibernate高手,这无疑给公司带来了额外的成本。所以,一个最基本的原则是,在满足需求的情况下,越简单越好。这样出了问题好解决。所以要先掌握JDBC,再去学其他两种持久层技术。当然也有很多开源的微型数据库,如MongoDB。当然了,像oracle,mysql需要重点学习。sqlserver的话,学习时候可以用,工作中很少用它。
J2ME的话,我不是做这个的,但我认为它更底层些,需要良好的J2EE基础支持着。
希望以上的感受能对需要它的人有帮助,谢谢!
分享到:
相关推荐
主要内容包括:Tomcat和Java Web开发的基础知识、Java Web开发的高级技术、在Java Web应用中运用第三方提供的实用软件(如Struts、Velocity和Log4J)的方法,以及Tomcat的各种高级功能。 书中内容注重理论与实践相...
"作为一个 Java 程序员,从论坛上感受到使用 Java 开发程序的人越来多,心中不免欣慰。但是,同样是从论坛中,看到多数人提到 Java 就以为是网络开发——不是这样的,Java 也可以开发应用程序,而且可以开发出漂亮的...
学习java到一定程度的朋友,一定感受到开发模式的强大 及其 重要性,让我们一起研究一下
Java开发基于知识图谱的航天数据可视化系统源码+项目使用说明.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、...
Java开发工具Eclipse的详细指南,手把手教你如何配置Eclipse,让你感受到Eclipse的强大功能,体验Java的乐趣
一个优秀的程序员,不仅要会编写程序,更要会编写高质量的程序感受Java开发中的大智慧,让你的Java程序更优美。专 注于Java应用程序的优化方法、技巧和思想,深入剖析软件设计层面、代码层面、JVM虚拟机层面的优化...
2022年国内不谈Java--硅谷有感Java教程.docx
。。。
。。。
jstl详解 js正则表达式详解 利用 Java Swing 实现游戏开发 面向对象详解 随机数 专访Java作家孙卫琴:感受Java技术专家的成长经历
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。下面我就列举一下我认为的java的优缺点。
供电公司新员工入职成长有感.doc
这是关于java新手入门的宝典,把更多新手带进java编程世界里,让更多人感受java的魅力。
YMP是一个非常简单、易用的一套轻量级JAVA应用开发框架,设计原则主要侧重于简化工作任务、规范开发流程、提高开发效率,让开发工作像搭积木一样轻松是我们一直不懈努力的目标!主要技术特点:采用组件化、模块化...
读终身成长有感.docx
前段时间因为要参加一个笔试,在准备期间在网上找到了两条关于笔试题目的文章,其中一篇为有感:应聘Java笔试时可能出现问题>>,还有一篇忘了名字,读后深受启发。 在寻找这些答案的过程中,我将相关答案记录下来,...
一个优秀的程序员,不仅要会编写程序,更要会编写高质量的程序,感受Java开发中的大智慧,让你的Java程序更优美 专注于Java应用程序的优化方法、技巧和思想,深入剖析软件设计层面、代码层面、JVM虚拟机层面的优化...
课程设计报告 实验目的 熟悉JAVA GUI程序开发的一般步骤,掌握事件驱动,并能掌握一定的Java编程能力,在实践中能感受Java的奥秘!同时检验学生的学生的学习成果。 实验目标
相信每个人入职第一天就是搭建本地开发环境,因为我司用的是java,看见了多年不见的eclipse的图标出现我的电脑上,我是难过的。后来知道并不是我一个人有此感受。这篇文章是为了解决前后端开发没有彻底分离的坑,...
它可以帮助初学者掌握Java编程的基础知识和面向对象编程思想,同时也为专业开发人员提供了优秀的项目实践和工程设计经验。 如果你喜欢玩游戏或者想学习Java编程,那么Java贪吃蛇小游戏是一款非常不错的选择。它具备...