java 编译顺序_关于java中一次编译多个源文件时的编译顺序的问题

为了节省回答者的时间我先把问题提出来,再针对问题案例作详细说明。如果能不用看问题案例就回答出来当然省时。我的问题是java里面,用命令行提示符环境编译源文件的时候,加上*通配符...

为了节省回答者的时间我先把问题提出来,再针对问题案例作详细说明。如果能不用看问题案例就回答出来当然省时。我的问题是java里面,用命令行提示符环境编译源文件的时候,加上*通配符,

如javac -d .Test*.java的形式,这种情况下编译器将选择怎样的顺序编译文件名里含有Test字段的多个源文件?是不是从Test开始?我已经试验过了,结果是不一定。希望回答者针对自己的答案给我拿出来让我信服的证据,有理想答案的话我会追加可观的积分,希望各路英雄小驻帮忙,谢了。

案例源文件如下:

程序清单1Test.java

package org.it315;

import org.it315.example.*;

public class Test

{

public static void main(String [] args)

{

new TestPackage().print();

}

}

程序清单2TestPackage.java

package org.it315.example;

public class TestPackage

{

public void print()

{

System.out.println("the program is demostrating how to using package!");

}

}

程序源文件来自于张孝祥的java就业培训教程。不过原书源码的类名是反过来的,我为了求证问题把类名掉换了。问题如下:以上是2个源文件,用javac -d . Test*.java命令编译。书中介绍在命令中加上*可以一次编译多个文件,其实不过是通过*通配符实现的编译文件名中带“Test”的所有源文件。可是大家一看就知道上面的2段源码其实是一个整体,Test有调用TestPackage一个方法。我在命令行提示符环境下编译过了,只有通过“javac -d . Test*.java”加通配符方式或者先编译TestPackage再编译Test才能成功,因为很明显在TestPackage所在包还没有编译形成的时候Test是找不到它的内部方法的。我的问题是编译器怎么会知道Test有调用TestPackage的东西而先编译后者?还是说它先编译过了Test发现不好使就转去编译TestPackage了?其中遵循的是怎样一个规则?

展开

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宏定义细节

#define PI(a,b) ab //分析 /* PI(a,b)a,b是参数 后面的ab进行运算 返回值作为PI的宏定义

libgdx和unity_libgdx和Kotlin –类[2D平台原型]

libgdx和unity这篇文章是libgdx和Kotlin文章的后续文章。 我已经决定开发一个简单的2D平台程序的原型(沿着我的早期文章中的Star Assault进行介绍),但是我一直在使用和学习Kotlin,而不是Java。 对于本教程,该项目应处…

java1.7开发环境_在Windows平台搭建Java 1.7开发环境

OS:Windows 7 or laterJava Version: 1.7.x本文具体的演示环境是:Windows 8.1,Java 1.7.0_45。一、安装JDK需要注意的是安装路径中不要出现非西文符号。实际上我一般喜欢在安装路径中也尽可能不出现空格。比如:在我的PC上&#xf…

浅谈人工智能

所谓人工智能,主旨是让它有用“自己的思维模式”

java timer开销_减少Java垃圾收集开销的5条提示

java timer开销保持较低的GC开销的一些最有用的技巧是什么? 随着Java 9即将再次延迟发布,G1(“垃圾优先”)垃圾收集器将设置为HotSpot JVM的默认收集器。 从串行垃圾收集器一直到CMS收集器,JVM在其整个生命周期中都见…

C++STL Vector

#include<iostream> #include<vector> using namespace std;int main() {//vector构造函数vector<int>A(); //无参数&#xff0c;构造一个空的vectorvector<int>B(10, 1);//数量(num)和值(val) - 构造一个初始放入num个值为val的元素的Vector vector&…

java serializable 源码_Java源码分析之-Serializable接口

一、基本概念Serializable接口&#xff1a;1. 实现了Serializable接口的类&#xff0c;可以进行序列化和反序列化&#xff1b;没有实现这个接口的类的任何(state)状态/域或者属性值不能被序列化2. All subtypes of a serializable class are themselves serializable. 所有实现…

gluon_带有Gluon Ignite和Dagger的JavaFX中的依赖注入

gluon依赖注入抽象框架Gluon Ignite在几个流行的依赖注入框架&#xff08;例如Spring&#xff0c;Dagger和Guice&#xff09;上创建了一个通用抽象。 目前&#xff0c;Gluon 页面仅包含一个示例&#xff0c;该示例使用Gluon Ignite和Google Guice作为依赖注入框架&#xff0c;…

快速排序 自带时间复杂度检测

//时间复杂度 O(N*log2N //稳定性&#xff1a;不稳定 //来源于分治思想 /* 确定分界点 调整区间 递归处理两端算法思想&#xff0c;快排是基于冒泡排序的优化&#xff0c;冒泡排序从一侧开始进行&#xff0c;而快排是两边同时进行从而时间复杂度折半&#xff0c;同时包含了二…

java arraylist 常用方法_分享ArrayList中的几个常用方法的源码

jdk1.7.0_79上文里解析了有关ArrayList中的几个常用方法的源码——《有关ArrayList常用方法的源码解析》&#xff0c;本文将对LinkedList的常用方法做简要解析。LinkedList是基于链表实现的&#xff0c;也就是说它具备了链表的优点和缺点&#xff0c;随机访问慢、插入删除速度快…

java8 streams_Java 8 Streams API:对流进行分组和分区

java8 streams这篇文章展示了如何使用Streams API中可用的Collectors将具有groupingBy的流元素和具有partitioningBy的流元素进行groupingBy 。 考虑一系列Employee对象&#xff0c;每个对象都有名称&#xff0c;城市和销售数量&#xff0c;如下表所示&#xff1a; ---------…

【FFMPEG应用篇】使用FFMPEG解析H264编码为YUV格式

头文件 #pragma once#ifndef _VIDEO_DECODING_HEADER_ #define _VIDEO_DECODING_HEADER_#define INBUF_SIZE 4096 #define AUDIO_INBUF_SIZE 20480 #define AUDIO_REFILL_THRESH 4096extern "C" { #include "libavutil/opt.h" #include "libavcodec/…

java 反射api_Java学习笔记--反射API

反射API1.反射API的介绍通过反射API可以获取Java程序在运行时刻的内部结构。比如Java类中包含的构造方法、域和方法等元素&#xff0c;并可以与这些元素进行交换。按照 一般地面向对象的设计思路&#xff0c;一个对象的内部状态都应该通过相应的方法来改变&#xff0c;而不是直…

c++各类型有效范围

int -2147483648 ~ 2147483647 float 有6-7位有效数字 double 有15-16位有效数字

couchbase_具有Couchbase,Java EE和WildFly的CRUD Java应用程序

couchbaseCouchbase是一个开源的NoSQL文档数据库。 它允许访问&#xff0c;索引和查询JSON文档&#xff0c;同时利用集成的分布式缓存来实现高性能数据访问。 开发人员可以使用不同的语言&#xff08;Java&#xff0c;Go&#xff0c;.NET&#xff0c;Node&#xff0c;PHP&…

java 对象的态_Java面向对象-------多态总结

1.多态&#xff1a;是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口&#xff0c;使用不同的实例而执行不同操作&#xff0c;如图所示&#xff1a;多态性是对象多种表现形式的体现。2.多态作用&#xff1a;1. 消除类型之间的耦合关系2. 可替换性3. 可扩充性4…

C++ 【随想录】(六)C++后端向JS前端转换

需要包含的头文件 #include"comutil.h" #include"<string> BSTR转string BSTR bstrText ::SysAllocString(L"Test"); string str _com_util::ConvertBSTRToString(bstrText); SysFreeString(bstrText); string转BSTR…

netbeans连接数据库_NetBeans Java EE技巧#1 –数据库中的实体类

netbeans连接数据库NetBeans IDE是开发各种应用程序的绝佳选择。 具体来说&#xff0c;我每天都使用它来开发和维护Java EE应用程序。 在过去的几个发行版中&#xff0c;不仅Java EE的生产力提高了&#xff0c;而且NetBeans IDE还减少了开发应用程序的时间……使Java EE和NetBe…

java spring eventbus_spring集成guava的event bus

Guava的event busguava&#xff0c; https://github.com/google/guava 是一个非常有名的Java类库&#xff0c;提供了很多在日常开发中常用的集合、函数接口等。此外&#xff0c;guava还提供了一个模块叫做event bus&#xff0c;生产者往event bus上投递消息&#xff0c;event b…

LeetCode 66 加一

原题链接 关键词 &#xff1a;数组 模拟法 解题思路: 此题为处理数组&#xff0c;数组特点 --数组下标 可以前后覆盖 数组元素可交换等。 此题分为三种情况 1.传入数为234形式 &#xff0c;加一后无进位。直接在最后一个数组1即可 2.传入数为239形式&#xff0c;即…