Java基础-学习笔记(一)

1、设置了环境变量之后,在命令行中输入“javac”命令,是可以运行的,在不进入java文件路径的前提下,执行javac ***.java文件,报错

C:\>javac Test.java
javac: 找不到文件: Test.java
用法: javac <options> <source files>
-help 用于列出可能的选项

有点绕晕了,为什么设置好了环境变量,在任意的路径下执行javac编译某个java文件,却不行呢?
其实是自己误解了,path环境变量的作用是设置操作系统去寻找和执行应用程序的路径,也就是说,如果操作系统在当前目录下没有找到我们想要执行的程序和命令时,操作系统就会按照path环境变量指定的目录依次去寻找以最先找到的为准。它是为了找到javac.exe程序,而不是你所写的java源文件,必须指定某个路径下的java源文件,系统才能将其找到并运行。

2、一个.java源文件中如果包含多个类,则编译之后,会生成多个以类名为文件名的.class文件

3、在编译过程中一定要注意,所编译的文件扩展名必须是.java

4、现有一个Test.java文件,内容如下
public class Test1
{
}
class Test2
{
}
经编译之后,报错如下

D:\example>javac Test.java
Test.java:1: 错误: 类Test1是公共的, 应在名为 Test1.java 的文件中声明
public class Test1
^
1 个错误

这个错误,说明了如果某个类的前面加上了public关键字,那么这个类所在的源文件名称必须是与这个类名一致。同理可得,一个源文件中是不可能存在两个public类

5、如下一个例子
public class Test
{
public static void main(String args[])
{
system.out.print("Hello!");
System.out.println("Hello,");
System.out.println("Welcome to java world!");
}
}
经编译之后报错

D:\example>javac Test.java
Test.java:5: 错误: 程序包system不存在
system.out.print("Hello!");
^
因为java是严格区分大小写的,所以对小写的system无法识别

6、修改完后,执行5中的代码,得到

D:\example>java Test
Hello!Hello,
Welcome to java world!

print和println都能输出,但是print的输出不换行,println会自动换行
println=print+\n

7、继6后,将路径切到D盘符中,执行java Test

D:\example>cd ..

D:\>java Test
错误: 找不到或无法加载主类 Test

D:\>set classpath=d:\example

D:\>java Test
Hello!Hello,
Welcome to java world!

D:\>set classpath=d:\example

D:\>java Test
Hello!Hello,
Welcome to java world!

D:\>cd example

D:\example>set classpath=c

D:\example>java Test
错误: 找不到或无法加载主类 Test

D:\example>set classpath=

D:\example>java Test
Hello!Hello,
Welcome to java world!
经过这些例子,我们可以知道,java虚拟机查找类时,不是在当前目录下查找,而是在classpath指定目录中查找。当取消了classpath环境变量(set classpath=),则在当前目录下查找。设置classpath时,注意等号两边不能有空格,所输入的路径名中也不要带空格,还有中文

8、Java-垃圾回收器
java类的实例对象和数组所需的存储空间是在堆上分配的,解释其具体承担为类实例分配空间的工作。解释器在为一个实例对象分配完存储空间后,便开始记录对该实例对象所占用的内存区域的使用。一旦对象使用完毕,便将其会收到垃圾箱中

9、反编译工具-jad

 

posted @ 2015-08-08 14:42  巅峰之旅  阅读(1173)  评论(0编辑  收藏  举报