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基础支持着。
希望以上的感受能对需要它的人有帮助,谢谢!
分享到:
相关推荐
根据提供的文件信息,我们可以提炼出以下相关知识点,主要聚焦于Java程序员在开发过程中经历的转正答辩准备,包括个人简介、工作回顾、项目流程分析、工作体会等方面。 ### 一、个人简介与工作回顾 #### 1.1 入职...
SSH作为Java开发中的主流框架,让我领略到其强大的功能和灵活性。Struts负责表现层,Spring处理业务逻辑,Hibernate则优化了数据持久化。在实际项目中,我不仅学会了如何配置和调优这些框架,更懂得了如何将它们有机...
2. **C#基础知识**:虽然文档主要关注Java开发,但提到了C#,这是一种类似的面向对象编程语言,基础概念如变量、数据类型、控制结构等对于理解Java同样重要。 3. **Java环境变量与命令**:了解`PATH`、`JAVA_HOME`...
【Java程序员成长历程】 本文以一个80后Java程序员的视角,分享了他在计算机行业的职业发展,特别是作为一名Java程序员从入门到高级工程师的成长道路。他最初并非计算机专业出身,但在西安电子科技大学转专业学习...
- Spring框架:一套轻量级Java开发框架,包含一系列有助于开发企业级应用的组件,如Spring MVC、Spring Boot、Spring Data等。 - Hibernate/JPA:Java持久层API和对象关系映射工具,常用于数据库操作和数据持久化。 ...
【Java与JSP实习报告概览】 实习报告主要围绕Java和JSP的...总的来说,这次Java和JSP的实习经历是一次宝贵的学习与成长机会,不仅提升了实习生的技术能力,还促进了其思维方式的转变,为将来步入职场做好了充分准备。
Java不仅仅局限于企业级应用开发,在移动开发、大数据处理等领域也逐渐崭露头角。 #### 技术栈的选择与变迁 对于一名有着10年工作经验的Java开发者来说,选择合适的技术栈是至关重要的。随着时间的推移,许多工具...
对于游戏开发,Java提供了丰富的库,如Swing和JavaFX,用于创建GUI。 在这个项目中,我们主要会用到以下几个技术点: 1. **图形用户界面(GUI)**:使用Java的Swing或JavaFX库来构建游戏界面。这些库允许开发者创建...
在Java开发中,异常处理是一个关键点,良好的异常处理策略可以增强程序的健壮性。文章可能探讨了如何有效地使用try-catch-finally语句,以及何时使用checked异常和unchecked异常。此外,多线程编程是Java的一大特色...
- **个人成长**:回顾过去一年中自己的成长与变化,特别是技术能力、项目经验等方面的提升。 - **未来规划**:明确未来的职业发展方向,设定具体目标,表达对未来充满信心的态度。 - **团队合作**:强调团队合作的...
在这个阶段,我深入学习了Java开发语言和环境,理解了公司的工作流程,熟悉了企业文化,特别是对于CBP产品框架有了深入的认识。通过实际项目开发,我在技术上取得了进步,但同时也暴露了一些不足。 首先,Java开发...
开发Java应用程序通常需要安装Java开发工具包(JDK),以及集成开发环境(IDE)如Eclipse或IntelliJ IDEA。 - **Java语言基础**:Java是一种面向对象的语言,核心概念包括类、对象、继承、封装等。掌握这些基本概念对于...
0-5岁幼儿认字识字教育开发系统是一款专为婴幼儿设计的教育软件,采用Java编程语言构建,致力于提供丰富的学习资源和工具,帮助儿童在关键的成长阶段掌握基本的汉字和词汇。系统的核心功能是幼儿学习成长计划,该...
它可以帮助初学者掌握Java编程的基础知识和面向对象编程思想,同时也为专业开发人员提供了优秀的项目实践和工程设计经验。 如果你喜欢玩游戏或者想学习Java编程,那么Java贪吃蛇小游戏是一款非常不错的选择。它具备...
【Java人力资源面试题集】是针对Java开发人员在面试过程中可能会遇到的人力资源部分的面试问题,这些问题旨在考察应聘者的综合素质、性格特点、工作态度和团队合作能力。以下是对这些常见问题的详细解答: 1. **...
殊不知复杂的算法确实可以体现你个人的逻辑能力,但是绝不代表你的开发水平。我们知道一些开源项目,一些大师级人物写得程序都是极其规范的。并非规范了就代表高水平,实际上是规范的代码更有利于帮助你理解开发语言...
通过第一天的学习,学生们不仅了解了JAVA语言的基本概念,更重要的是感受到了学习的乐趣所在。在接下来的日子里,大家将更加深入地探索JAVA的世界,掌握更多的编程技巧和技术细节。每一天的学习都是一个新的起点,每...
首先,Java工程师在荆门石油石化巡检系统的调研和开发中,不仅锻炼了与客户沟通的能力,还提升了对客户需求的理解。在这个过程中,通过不断的交流和反馈,工程师学会了如何更准确地捕捉客户的需求,并将这些需求转化...