`
dianziermu
  • 浏览: 139720 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何才算掌握Java(J2SE篇)

    博客分类:
  • J2SE
阅读更多

时常看到一些人说掌握了Java,但是让他们用Java做一个实际的项目可能又困难重重,在这里,笔者根据自己的一点理解斗胆提出自己的一些对掌握 Java这个说法的标准,当然对于新手,也可以提供一个需要学习哪些内容的参考。另外这个标准仅限于J2SE部分,J2EE部分的内容有时间再另说。
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。
2、 命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、HtmlConverter、jar、java、 javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java 实际上还很不了解。
3、工具:必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试。
4、API:Java的核心API是非常庞大的,但是有一些内容笔者认为是必须熟悉的,否则不可能熟练的运用Java,包括:
    1)、java.lang包下的80%以上的类的功能的灵活运用。
    2)、java.util包下的80%以上的类的灵活运用,特别是集合类体系、规则表达式、zip、以及时间、随机数、属性、资源和Timer。
    3)、java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。
    4)、java.math包下的100%的内容。
    5)、java.net包下的60%以上的内容,对各个类的功能比较熟悉。
    6)、java.text包下的60%以上的内容,特别是各种格式化类。
    7)、熟练运用JDBC。
    8)、java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java。
    9)、AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印。
    10)、Swing的基本内容,和AWT的要求类似。
    11)、XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。
5、测试:必须熟悉使用junit编写测试用例完成代码的自动测试。
6、管理:必须熟悉使用ant完成工程管理的常用任务,例如工程编译、生成javadoc、生成jar、版本控制、自动测试。
7、排错:应该可以根据异常信息比较快速的定位问题的原因和大致位置。
8、思想:必须掌握OOP的主要要求,这样使用Java开发的系统才能是真正的Java系统。
9、规范:编写的代码必须符合流行的编码规范,例如类名首字母大写,成员和方法名首字母小写,方法名的第一个单词一般是动词,包名全部小写等,这样程序的可读性才比较好。

看来还差得远呢!  继续努力吧!

=============================

以上文章简称标准篇,提出了标准。以下文字将告诉新手如何才能达到那个标准。

首先需要说的是达到这个标准是比较困难的,没有三年的时间一般是不可能的,没有实际的项目的经验的熏陶也是不可能的,下文会说明为什么。
然后给出两个宝典:一个就是TIJ(Thinking in Java),另外一个就是chm格式的JDK的API。
TIJ可以看看Java编程思想(完整的中文简体第二版),如果英文可以的话强烈要求看英文原版,
而chm格式的JDK的API的下载地址可以看看Cherami站长的推荐。
虽 然我没有把TIJ看完(我开始用Java做项目的时候TIJ还没有出来),但是我浏览过目录和看过一些章节的内容,感觉作者对Java非常的熟悉,实际经 验也非常的丰富,很多内容一看就是经验之谈。需要说明的是,我说的看包括内容和领会作者的意思,如果用Java做过一些项目以后你再回头看看TIJ你会发 现如果你刚开始就记得并掌握了TIJ所讲的内容后会对的项目有多大的帮助。掌握TIJ的内容至少可以达到标准篇中所讲的语法、思想以及规范的标准,对于 API的掌握也有很大的助益。
之所以需要chm格式的JDK的API是因为JDK的API实在是很大,个人认为不大可能记得那么多,而站长推荐的 那个API可以非常方便的根据类名或者方法名查到对应的说明,有时候我们就是大致记得应该用哪个类或者某个方法,但是忘记了具体的细节,这个时候就可以查 那个东东了,我现在已经养成先把那个chm打开再开始做事情的习惯了。需要提醒的是你不能完全依赖它,有些东西还是需要自己记的,如果你都不知道要用什么 你怎么去查呢?你至少要记得一个索引,哪个类或者方法可以完成什么样的功能的索引。
接下来就是实际项目的熏陶了。
如果你不做 applet,你就不会去用appletviewer和HtmlConverter,如果你不打包你就不会用jar,如果你不做类库你可能就不会用 javadoc,如果你对系统的运行性能不关心你可能根本不会考虑使用javap,如果你不做独立运行的程序你可能根本就不会注意到我们有时候是多么的讨 厌那个多于的dos窗口而用javaw代替java来运行你的程序,如果你没有做过国际化,你怎么可能去使用native2ascii进行转换编码呢,如 果你没有做序列化并且升级你的类你是不会知道你为什么需要serialver的。
而离开了这些命令或者说工具,你可能不知道java到底都能做哪些内容。
这些命令都是基于命令行的,对于习惯的图形界面的新时代来说可能会很不习惯,但是你必须知道在命令行下如何使用他们,因为很可能你真正项目中需要运行的环境就是一个命令行(UNIX/Linux服务器)。
在 开发一个实际的系统的时候,你不可能使用editplus或者notepad或者vi或者emcs写代码,因此你必须有一个你熟悉的IDE工具,这样你才 能管理庞大的工程,而这些IDE工具不可能仅仅用来做编辑器,你可能更需要的是使用他们的调试功能追踪疑难杂症(如何设置各种断点,特别是在循环里面设置 条件断点),另外就是他们的代码提示功能以及集成的版本控制功能。
实际项目对API的掌握也是一个莫大的考验,真正的项目的工期都会比较紧凑,因此要完成什么功能需要使用什么那些类以及如何完成都是对你对API掌握情况的真正考验。
如 果你没有做过需求频繁变更的项目,那你很幸运,但是实际情况往往不是这样。你修改代码以后以为没有问题了,你往往只是测试了你眼前的部分,但是其他的部分 怎么办?难道都要我测试一下,天哪!是的,情况往往就是这样的,因为需求变更导致的回归错误可能是我们最大的噩梦!如果你的代码结构良好,那么你可以使用 JUnit编写单元测试用例来保证你的修改对各个部分的接口没有造成不良的影响。一个符合OO的系统应该也是一个易于测试或者易于编写单元测试用例的系 统!
如果你没有完整的参与过一个项目,你不会知道拷贝文件、发布版本、打包、生成javadoc、运行测试用例、版本维护、建立里程碑、建立基准 版本、增量更新版本是多么痛苦的事情,但是如果你使用Ant编写一个脚本帮你完成这些项目必须而又琐碎的事情,你会觉得其实开发项目有时候也是很轻松的。
一旦你经历了这些项目的真正的磨难的时候,你看到错误信息的时候就不会手忙脚乱了,你可以很清楚的知道是哪个地方出问题了,可能的原因以及解决方法是什么。
没有遇到问题,你就不会学会解决问题,你也就不可能提高!

最后总结一下:
掌 握TIJ,你对Java的语法、API、思想和规范会有一个比较好的基础,而通过实际项目的锻炼,你对API会更熟悉、你也会掌握那些基本的命令在命令行 下怎么用,怎么选用一个IDE以及最重要的:如何排错、调试程序、测试程序以及使用工具让电脑完成那些琐碎的例行工作。

以上只是个人的一点看法,希望对于那些迫切的想掌握Java的新手有所启迪和帮助。
不满意的人可以丢西红柿,不要丢臭鸡蛋了。^_^

 

 

 

分享到:
评论

相关推荐

    如何才算掌握Java(J2SE篇

    ### 如何才算真正掌握Java(J2SE篇) 在当今的软件开发领域中,Java作为一门重要的编程语言,被广泛应用于各种应用场景之中。对于初学者来说,如何判定自己是否已经掌握了Java,特别是在J2SE(Java 2 Standard ...

    如何才算掌握Java(J2SE)

    要真正掌握Java J2SE,你需要深入理解并熟练应用一系列关键概念和技术。以下是对这些知识点的详细说明: 1. **基础语法**: - **变量与数据类型**:了解基本数据类型(如int、double、boolean等)和引用数据类型...

    java j2se源码

    Java J2SE(Java Standard Edition)是Java平台的核心部分,主要用于桌面应用开发。它提供了丰富的类库和API,使得开发者可以构建跨平台的应用程序。马士兵老师的J2SE课程是许多初学者和进阶者学习Java的重要资源。...

    Java j2se QQ 毕业论文

    总的来说,Java J2SE QQ毕业论文会涵盖Java编程基础、GUI设计、网络编程、多线程、文件操作等多个方面,通过实现一个类似QQ的即时通讯软件,学生可以深入理解和掌握这些关键知识点,并且在实践中提升自己的编程技能...

    J2SE基础,内容是JAVA

    Java J2SE(Java 2 Platform, Standard Edition)是Java平台的核心部分,它提供了用于开发和部署桌面应用程序的API和运行环境。这个平台包含了Java语言的基础类库,如集合、多线程、网络编程、I/O操作等核心功能。在...

    实验1 JAVA开发环境J2SE实验报告.doc

    在本实验中,我们学习了JAVA开发环境J2SE的基本概念和使用方法,并掌握了下载和安装J2SE开发工具的方法,熟悉了J2SE开发工具的使用,编写了简单的Java Application和Java Applet程序,了解了Java源代码、字节码文件...

    图书管理系统java j2se mysql mcx模式

    1. **Java J2SE**: Java J2SE(Java Platform, Standard Edition)是Java平台的标准版,用于开发和运行桌面应用程序。它提供了丰富的类库,包括基础的I/O、网络编程、多线程以及GUI组件,使得开发者能够构建功能强大...

    java j2se部分笔记

    这份笔记将深入探讨Java J2SE中的关键概念和技术,帮助开发者理解和掌握这个强大的编程语言。 1. **基础语法**: Java是一种面向对象的、静态类型的编程语言。它的语法结构清晰,强调代码的可读性和可维护性。基础...

    java j2se 变位词游戏

    Java J2SE(Java Standard Edition)是Java平台的一个版本,主要针对桌面应用和服务器环境。在这个实例中,我们探讨的是一个变位词游戏,变位词是指由相同字母但顺序不同的单词,例如“act”和“cat”就是变位词。在...

    java j2se 3d 源码

    J2SE(Java Standard Edition)是Java平台的一个版本,它包含了用于开发和部署桌面应用的基本工具和API。Java 3D是J2SE中的一个模块,提供了丰富的图形功能,能够创建复杂、交互式的3D场景。 Java 3D 是基于OpenGL...

    Java-J2se、J2ee开发全程视频教程和源码(87集)

    资源名称:Java-J2se、J2ee开发全程视频教程和源码(87集)资源目录:【】Java-J2se-J2ee全程教程(01-10)【】Java-J2se-J2ee全程教程(11-20)【】Java-J2se-J2ee全程教程(21-30)【】Java-J2se-J2ee全程教程(31...

    java J2SE 进销存系统

    Java J2SE进销存系统是一款基于Java标准版(J2SE)开发的库存管理软件,主要用于企业管理进货、销售和库存等日常业务。系统的核心特点是采用Java编程语言,利用其跨平台的优势,确保代码在不同操作系统上都能稳定...

    java j2se基础知识总结

    Java J2SE基础知识是Java开发的核心,涵盖了类定义、函数、对象创建、关键字、异常处理、导入语句、包管理、接口以及数组等多个方面...以上知识点构成了Java J2SE的基础,理解和掌握这些内容对于进行Java开发至关重要。

    Java记事本 J2se练习

    Java记事本是一款基于J2SE(Java 2 Standard Edition)平台开发的简单文本编辑器,它实现了类似于系统记事本的基本功能,如新建、打开、保存、复制、粘贴、剪切、查找、替换等。这个项目是Java初学者进行Swing图形...

    Java-J2SE学习笔记

    Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记Java-J2SE学习笔记

    (java)J2SE_核心技术基础

    本教程“J2SE_核心技术基础”针对Java初学者,通过详实的例子代码帮助学习者快速掌握Java编程的基本概念和技巧。 一、Java语言基础 Java是一种面向对象的编程语言,其设计目标是简洁、安全、高效。学习Java首先要...

    java-j2se.rar_j2se

    通过深入学习和理解这些知识点,并结合提供的面试题目进行实践,学习者可以全面掌握Java J2SE的基础,并为实际开发或面试做好充分准备。文档可能还包含了一些实战案例和最佳实践,帮助学习者更好地理解和应用这些...

    日历程序,JAVA j2se

    本项目是一个基于JAVA J2SE(Java Standard Edition)的日历程序,它提供了查看日期的功能,对于初学者来说是一个很好的学习资源。下面将详细探讨Java中的日期处理和日历类相关知识。 在Java中,日期和时间处理主要...

Global site tag (gtag.js) - Google Analytics