1、首先要对java语法和语义有相当的理解及纯熟的应用,比方说对继承体系中的对象的比较复杂初始化顺序的清晰把握,对内部类和匿名内部类的理解和使用时机的把握,对反射和序列化机制的掌握,等等;
2、规范:编写的代码必须符合流行的编码规范,例如类名首字母大写,成员和方法名首字母小写,方法名的第一个单词一般是动词,包名全部小写等,这样程序的可读性才比较好;
3、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟 悉:appletviewer、 HtmlConverter、jar、 java、 javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java实际上还很不了解;
4、java是一门oo语言,精通java意味着你必需精通面向对象的编程;
5、对虚拟机的内部运作机理、垃圾收集机制及其算法的理解;
6、对java core API的掌握。Java的核心API是非常庞大的,但是有一些内容笔者认为是Java程序员必须熟悉的,否则不可能熟。的运用Java,包括:
◆java.lang包下的80%以上的类的功能的灵活运用;
◆java.util包下的80%以上的类的灵活运用,特别是集合类体系、规则 表达式、zip、以及时间、随机数、属性、资源和Timer;
◆java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合;
◆java.math包下的100%的内容;
◆java.net包下的60%以上的内容,对各个类的功能比较熟悉;
◆java.text包下的60%以上的内容,特别是各种格式化类;
◆java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java;
◆AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印;
◆Swing的基本内容,和AWT的要求类似;
◆XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理;
◆掌握java.rmi、javax.rmi、javax.naming、javax.mail等包;
7、熟练运用JDBC;
8、对j2ee体系结构的宏观把握;
9、对servlet的掌握,包括servlet规范,servlet容器,javax.servlet、javax.servlet.http包的api;
10、对jsp的掌握,包括jsp与servlet的转换关系,jsp的指令和action,el语言,jstl;
11、对ejb的掌握,包括ejb的规范与实现,ejb的部署,javax.ejb包的api,以及ejb的有效运用,ejb陷阱与缺陷的避免;
12、java的开源力量不可轻视,利用得好,可以极大地增强你的开发效率,这方面太广,我也只能随便说说。一个MVC框架,struts或webwork;一个O/R工具,如hiberate或一个jdo的实现;一个测试框架,如junit;一个发布工具,如ant;还有诸如全文检索工具Lucene,jsp页面布局工具Tiles,spring框架,等等;
13、工具 :必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试;
14、管理:Java程序员必须熟悉使用ant完成工程管理的常用任务,例如工程编译、生成javadoc、生成jar、版本控制、自动测试;
15、博学:Java程序员除了精通Java意外,还要掌握J2EE、Oracle、WebLogic、Jboss、Spring、Struts、Hibernate 等流行技术,掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术;
16、最好是能找到一些项目进行实训操作,这样就能对概念和理念性的知识进行熟练和深化,这样才叫做真正的精通java。