zoukankan      html  css  js  c++  java
  • 关于编译(javac),import,package的再理解

    1.若我们在A.java中用到了类B,当我们仅仅用 javac A.java 编译A时,编译器也会去寻找B,若类B依然是源文件,也会自动编译它。在使用javac和java命令时,有一个参数选项 -verbose ,可以显示虚拟机每一步所做的事情。

    2.类A已经编译成功后,A中用到的B.class依然不能移走,若此时执行java A ,会报NoClassDefFoundError.

    3.编译时,如果程序里用到其它类,不需要该类的源码也一样能够通过编译。这很好理解,我们在编写自己的类时,用到了系统类库,这些类库都是以 .class文件存在于jar包中,而我们能正确编译我们自己的类。

    4.当一个类的源码中有 package 声明时,无论是 .java源文件还是 .class文件都应该置于 package 声明的路径下。

    5.javac和java 命令都可以使用 -cp(-classpath)参数命令,但是对于javac来说,-cp 有两个指引作用,一个是指引ACL(AppClassLoader)去找类A中引用到的B.class,二是如果B.class不存在,则指引编译器找到B.java 文件。而对于 java 命令只有上述的第一个作用。对于每个需要载入的类都要向ACL交代清楚其位置。所以会看到下面的代码。 javac -cp d: A.java  和  java -cp d:;. A  .

  • 相关阅读:
    Laravel 项目中编写第一个 Vue 组件
    laravel 中CSS 预编译语言 Sass 快速入门教程
    Laravel 项目中使用 Bootstrap 框架
    web框架之MVC/MTV
    jQuery补充之jQuery扩展/form表单提交/滚动菜单
    jQuery前端插件以及图片延迟加载
    JavaScript正则表达式补充
    jQuery语法介绍
    DOM
    JavaScript
  • 原文地址:https://www.cnblogs.com/enjoy-ourselves/p/3162265.html
Copyright © 2011-2022 走看看