第二章 从JDK到IDE

本文只做自学笔记使用,之前已有一点点java基础,只记录我不知道的一些知识点,具体以书中内容为准。

一、HelloWorld

1、下面代码实际使用java.lang包下的System类的public static成员变量out,out是PrintStream类型的。println()是PrintStream的一个公共方法,可以将其中的字符串输出并进行换行。与其类似的还有print()方法,这个方法不会进行换行。

System.out.println("今天天气真好啊");

2、关于PATH,这里具体指javac的路径设置,javac将.java文件编译成.class文件。

(1)  安装JDK(JRE)时,Windows会自动把javac放到C:\Windows\system32,但由于系统的原因,这个路径有可能不同。所以为了在编译时能够稳定找到javac,可以设置javac的路径,有以下几种方法:命令行set命令、设置用户环境变量、设置系统环境变量。

(2) 命令行 SET PATH=路径,但是每次打开命令行都要设置,比较麻烦,一般我们都会直接设置用户/系统环境变量。

(3) 当配置多个JDK,以求多个编译方式时,如果所有的JDK的javac路径都放在用户/系统环境变量中,优先级按照“系统>用户”,“前面设置>后面设置”

(4) 可以通过指定javac的路径的方式,在命令行或IDE中使用指定方式进行编译。

3、命令行执行java程序语句

javac HelloWorld.java //编译为.class文件
java HelloWorld //执行.class文件,不可有.class

JVM默认CLASSPATH是当前文件夹中的.class文件,我们也可再执行时指定.class文件的路径CLASSPATH,注意“.;”可以使JVM优先搜索默认目录后再去搜索指定路径,如果没有“.”则只可以搜索指定路径。多个路径要使用“;”进行隔开。

.jar文件实际上是多个.class文件通过zip压缩而成,也可作为CLASSPATH。

java -cp .;C:\workspace HelloWorld

也可以直接设置CLASSPATH,方法与PATH类似:

SET CLASSPATH=C:\classes;C:\lib\abc.jar

4、如果代码中使用本类外的其他类,必须在编译和执行的时候指定对应的.java文件的PATH和.class文件的CLASSPATH。

管理原始码与位码文档

1、javac与SOURCEPATH。

.java文件和.classs文件通常是分离的,为了便于管理。这时,编译指令有些变化,如下。首先确保该路径下有classes和src两个文件夹,src下的文件夹下有Main.Class文件。下面指令表示,src文件夹下的Main类中调用的方法来自于src中,编译后产生的.class文件将会保存在classes文件夹中。

javac -sourcepath src -d classes src/Main.java

更完整的如下,-verbose可以帮助我们在命令行中看到整个编译过程,-cp指定CLASSPATH,如果编译的类中调用其他的类,并且编译成功的.class文件已在指定的CLASSPATH中,则可以减少反复编译的时间。

javac -verbose -sourcepath src -cp classes -d classes src/Main.java

注意:JAR文档的搜索路径与类加载器有关,在17章介绍

2、package和import。为避免多个组织在编写代码是会对类名相同,或者功能分离,所以必须有包管理,其实可以简单看作这个部门的代码都统一放在一个文件夹下,在import时要引入包的某个类,或者是使用*,import这个包下的所有类。不过慎用*,因为当多个包下有相同名称的类,恰好代码中调用该类,则会在编译过程中会因为无法确定该类属于哪个包而失败。

如果不使用import,使用一个类的时候,要通过“包.类”来进行,当包名过长会很不方便。比如“Student student;”,写成如下的方式,zg.practice是Student类所在的包。

zg.practice.Student student;

Java SE API中有很多常用类,如java.lang下的类,不需要import,编译程序会先默认从其中寻找。

位码和原始码都可使用JAR文档进行封装。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值