博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Java 开发从入门到精通》—— 2.5 技术解惑
阅读量:6293 次
发布时间:2019-06-22

本文共 3394 字,大约阅读时间需要 11 分钟。

本节书摘来异步社区《Java 开发从入门到精通》一书中的第2章,第2.5节,作者: 扶松柏 , 陈小玉,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.5 技术解惑

2.5.1 遵循源文件命名规则

Java中的命名规则有很多,例如变量命名规则和类命名规则等,而在此讲解的是Java源文件的命名规则。在编写Java程序时,源文件名字不能随便起,需要遵循下面的两个规则。

Java源文件的后缀必须是“.java”,不能是其他文件后缀名。

一般来说,可以任意命名Java源文件的名字,但是当Java程序代码中定义了一个public类时,该源文件的主文件名必须与该public类(也就是该类定义使用了public关键字修饰)的类名相同。由此而可以得出一个结论:因为Java程序源文件的文件名必须与public类的类名相同,所以一个Java源文件里最多只能定义一个public类。
根据上述规则,我们可以得出命名程序文件的如下3个建议。

一个Java源文件只定义一个类,不同的类使用不同的源文件定义。

将每个源文件中单独定义的类都定义成public。
保持Java源文件的主文件名与该源文件中定义的public类同名。
2.5.2 忽视系统文件的扩展名
有很多初学者经常犯一个错误,即在保存一个Java文件时经常保存成形如“.java.txt”格式的文件名,因为这种格式文件名从表面看起来太像是“.java”了,所以经常会引发错误。要想解决这个粗心的错误,我们可以修改Windows的默认设置。因为Windows系统的默认设置是“隐藏已知文件类型的扩展名”,所以我们只需将此设置选项取消勾选即可,如图2-46所示。

8d2eb553e2cf76f39c0438e02ac997d8310725ba

2.5.3 环境变量的问题

Java的JDK经过了几年的发展,已经发展到了现在的JDK-7系列,即JDK1.7。新的JDK更加成熟,速度也更快。但是往往程序员总是难以忘记以前版本的一些特点和用法,经常会不自觉地在新版本中按照旧版本的方式进行操作。例如最常见的就是环境变量问题,本章2.1.2节中已经介绍了设置环境变量的问题。其实对于开发纯Java项目来说,如果使用的是JDK1.5以上的版本,则完全不用画蛇添足般地设置环境变量。

设置CLASSPATH环境变量会比较麻烦,在设置CLASSPATH环境变量后,Java解释器会在当前路径搜索Java类,例如在first.class文件所在路径运行java first将没有任何问题。但如果设置了CLASSPATH环境变量,Java解释器会只在CLASSPATH环境变量所指定的系列路径中搜索Java类,这样就容易出现问题了。

在当今很多教科书和资料中,都提到过在CLASSPATH中添加dt.jar和tools.jar这两个文件的教程,所以很多初学者会将CLASSPATH变量的值设置为如下形式。

D:\Java\jdkl.6.0_03\lib\dt.jar;D:\Java\jdkl.7.0_01\lib\tools.jar

这样做会导致Java解释器不在当前路径下搜索Java类,此时如果在文件first.class所在路径运行java first会出现如图2-47所示的错误提示。

752a7e1bc62a7749a4bd55c395ed134ca43fd841

造成上述错误的原因是找不到类定义,这是由于CLASSPATH环境变量设置不正确造成的。所以在此建议广大读者,在设置CLASSPATH环境变量时一定不要忘记在CLASSPATH环境变量中增加一点“.”,强制Java解释器在当前路径搜索Java类。

2.5.4 大小写的问题

Java语言是严格区分大小写的语言,但是很多初学者对大小写问题往往都不够重视。例如有的读者编写的Java程序里的类是“first”,但当他运行Java程序时运行的是“java First”的形式。所以在此因此提醒读者必须注意,在Java程序中的First和first是不同的,必须严格注意Java程序中大小写的问题。在此建议广大读者,在按照书中实例程序编写Java代码时,必须严格注意Java程序中每个单词的大小写,不要随意编写,例如class和Class是不同的两个词,class是正确的,但如果写成Class则程序无法编译通过。这是因为Java程序里的关键字全部是小写的,无须大写任何字母。

2.5.5 main()方法的问题

如果需要用Java解释器直接运行一个Java类,则这个Java类必须包含main()方法。在Java中必须使用public和static来修饰main(),并且必须使用void来声明该方法的返回值,而且该方法的形参只能是一个字符串数组,而不能是其他形式的参数。对于这个main()方法来说,修饰它的修饰符public和static的位置可以互换,但其他部分则是固定的。

在定义main()方法时也需要注意大小写的问题,如果不小心把方法名的首字母写成了大写,编译时不会出现任何问题,但运行该程序时将引发错误。

2.5.6 注意空格问题

空格问题是初学者很容易犯的一个错误,在Windows系统中的很多路径都包含有空格,例如C盘中的“Program Files”,而这个文件夹恰好是JDK的默认安装路径。如果在CLASSPATH环境变量中包含的路径中含有空格,则可能会引发错误。所以推荐大家在安装JDK和Java相关程序/工具时,不要安装在包含空格的路径里,否则可能引发错误。

2.5.7 到底用不用IDE工具

笔者对初学者的建议是:在初期尽量不要使用IDE工具,但是现在一个追求速成的年代,大多数人都希望用最快的速度掌握Java技术。其实市面中的IDE工具居多,除了Eclipse、Jbuilde和NetBeans之外,还有IBM提供的WSAD、JetBrains提供的IntelliJ IDEA、IBM提供的VisualAge、Oracle提供的JDeveloper、Symantec提供的Visual Cafe以及BEA提供的WorkShop,每个IDE都各有特色,各有优势。如果从工具学起,势必造成对工具的依赖,当换用其他IDE工具时会变得极为困难。而如果从Java语言本身学起,把Java语法和基本应用熟记于心,到那时再使用IDE工具才会得心用手。

在我们日常使用的Windows平台上可以选择记事本来编码,如果嫌Windows下记事本的颜色太单调,可以选择使用EditPlus或UltraEdit工具。

如果实在要用IDE工具,例如Eclipse,则建议纯粹将它作为一款编辑器来用,将所有代码靠自己一个个字符敲打并输入来完成,而不是靠里面的帮助文档和操作菜单来完成编码工作。

2.5.8 区分JRE和JDK

对于很多初学者来说,对JDK和JRE两者比较迷糊,不知道到底有什么异同。

JRE:表示Java运行时环境,全称是Java Runtime Environment,是运行Java程序的必需条件。

JDK:表示Java标准版开发包,全称是Java SE Development Kit,是Sun提供的一套用于开发Java应用程序的开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。
Sun把Java分为Java SE、Java EE和Java ME三部分,而且为Java SE和Java EE分别提供了JDK和Java EE SDK (Software Development Kit)两个开发包。如果读者只学习Java SE的编程知识,可以下载标准的JDK,如果学完Java SE之后还需要继续Java EE相关内容,也可以选择下载Java EE SDK。因为有一个Java EE SDK版本里已经包含了最新版的JDK,所以在安装的Java EE SDK中已经包含了JDK。

一般来说,如果我们只是要运行Java程序,可以只安装JRE,而无须安装JDK。但是如果要开发Java程序,则应该安装JDK。安装JDK之后就包含JRE了,也可以运行Java程序。但如果只是需要运行Java程序,而不是开发Java程序,则只需在计算机上安装JRE即可。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

你可能感兴趣的文章
9.VMware View 4.6安装与部署-connection server(View Replica Server)
查看>>
项目管理和产品管理绉议
查看>>
Rafy 领域实体框架设计 - 重构 ORM 中的 Sql 生成
查看>>
编程之基础:数据类型(二)
查看>>
倒排索引PForDelta压缩算法——基本假设和霍夫曼压缩同
查看>>
java基础--相等
查看>>
记一次网站服务器搬迁实录
查看>>
Sql server restore script(还原数据库正确的步骤)
查看>>
牛客网刷题汇总(一)附解析
查看>>
(转) Deep Learning in a Nutshell: Reinforcement Learning
查看>>
微信说中国人的国庆长假 境内游西湖外滩上榜
查看>>
VR/AR会是微信后马化腾进军的战场吗
查看>>
推荐系统的评分描述
查看>>
Junit测试中找不到junit.framework.testcase
查看>>
SAP HU02 to Unpack for HU, Need Transfer HU to Package Storage Type First.
查看>>
1.3. Getting Started Guides
查看>>
三十而立,立的是什么?(r11笔记第70天)
查看>>
Log4jdbc demo
查看>>
(13)[Xamarin.Android] 不同分辨率下的图片使用概论
查看>>
12.3、Libgdx的图像之截屏
查看>>