万事开头难,java 编程的初学者常常会遇到各种各样的问题。对于自学的读者来说,则是需要花费更多的时间、精力来解决这些问题,而且一旦遇到的问题几天都得不到解决,往往会带来很大的挫败感。
所以本节介绍一些初学者经常出现的错误,以便减少读者在学习中的障碍。
1)大小写问题
之前我们已经提到,Java 是区分大小写的语言。但由于大部分读者都是 Windows 操作系统的忠实拥护者,因此对大小问题往往都不够重视(Linux 平台是区分大小写的)。
例如,有的读者编写的 Java 程序的类是 HelloJava,但当他运行 Java 程序时,运行的则是 java hellojava 这种形式,这种错误的形式没有严格按 Java 程序中编写的来写,可能引起系统提示如图 1 所示的错误。
图 1 大小写错误
因此这里必须提醒大家,在 Java 程序里,HelloJava 和 hellojava 是完全不同的,必须严格注意 Java 程序里的大小写问题。
不仅如此,读者按照教程中示例编写 Java 程序时,必须严格注意 Java 程序中每个单词的大小写,不要随意编写。例如 class 和 Class 是不同的两个词,class 是正确的,但是如果写成 Class,则程序无法编译通过。
实际上,Java 程序中的关键字全部是小写的,无需大写任何字母。
2)路径里包含空格的问题
这是一个更容易引起错误的问题。由于 Windows 系统的很多路径都包含了空格,典型的例如 Program Files 文件夹,而且这个文件夹是 JDK 的默认安装路径。
如果 CLASSPATH 环境变量里包含的路径中存在空格,则可能引发错误。因此,推荐大家安装 JDK 以及 Java 相关程序、工具时,不要安装在包含空格的路径下,否则可能引发错误。
3)main 方法的问题
如果需要用 java 命令直接运行一个 Java 类,这个 Java 类必须包含 main 方法,这个 main 方法必须使用 public 和 static 来修饰,必须使用 void 声明该方法的返回值,而且该方法的参数类型只能是一个字符串数组,而不能是其他形式的参数。对于这个 main 方法而言,前面的 public 和 static 修饰符的位置可以互换,但其他部分则是固定的。
定义 main 方法时,不要写成 Main 方法,如果不小心把方法名的首字母写成了大写,编译时不会出现任何问题,但运行该程序时将给出如图 2 的错误提示:
图 2 错误提示
这个错误提示找不到 main 方法,因为 Java 虚拟机只会选择从 main 方法开始执行。对于 Main 方法,Java 虚拟机会把该方法当成一个普通方法,而不是程序的入口。
main 方法里可以放置程序员需要执行的可执行性语句,例如 System.out.println("Hello Java!"),这行语句是 Java 里的输出语句,用于向控制台输岀“Hello Java!”这个字符串内容,输出结束后还输出一个换行符。
在 Java 程序里执行输岀有两种简单的方式:System.out.print(需要输出的内容) 和 System.out.println (需要输出的内容),其中前者在输出结束后不会换行,而后者在输出结束后会换行。后面会有关于这两个方法更详细的解释,此处读者只能把这两个方法先记下来。
Java程序员必须知道的学习路线
你现在是不是想学 java,但又很迷茫,不知从何下手,不知道该从哪里学起,不知道需要学些什么?那么看完这篇文章你会有一种豁然开朗的感觉。
学习 Java 的第一步,就是制定自己的 Java 学习路线。对 Java 主要的重点知识归纳如下:
对于学习 JavaSE 的读者,分为 JavaSE 初级中级和高级水平,下面分别介绍达到这些水平我们需要掌握什么。
JavaSE 初级水平要求掌握计算机入门:DOS 命令,什么是程序,如何配置 Java 开发环境,Java 编程的过程是怎样的,Java 有什么特点,程序是如何运行的。
编程基础:变量,基本数据类型,进制,转义字符,运算符,分支语句和循环语句等。方法与数组,还有彻底掌握面向对象的思想。如果能掌握这些,你已经入门 Java 语言了。
JavaSE 的中级水平是要求掌握 Eclipse 用法与异常处理技术,Debug 调试技术,Java 常用类库,文件与 IO,集合框架,多线程并发技术,网络编程,反射和泛型特点,正则表达式,枚举和注解,XML 和 JSON,GUI 事件处理,Web 前端开发基础和框架 ,Servlet 和 JSP 在 Web 后端的应用,MVC 和分层架构,以及项目开发流程以及 CASE 工具的使用。
JavaSE 高级水平便是 要求掌握 Mybatis 框架,Spring 框架,使用 Hibernate 实现持 久层 RESTful 架构和移动端接口,设计第三方接口和在线支付功能,MyBatis 的应用和 SSM 整合。
分布式基础知识点:Linux 常见命令,Jdktomcat 配置,maven 私服,阿里云配置 redis 和 mysql 等,JVM 高级特性,JVM 性能监控和调优等等。主要都是向着 Web 开发方面的技术加深。最好还是要有一点 HTML 网页设计基础和数据库理论知识,学习起来会更加轻松一些。
建议大家,如果没有任何编程基础的读者,先学习C语言的语法,Java 的语法和C语言的大同小异;若是有一定编程基础了,那么就可以开始学习 Java 或者直接进入面向对象思想的教程部分了。