Java中的上下文究竟是什么?

我search了这个并阅读Java文档,但是我有点困惑。 有人能解释一下Context是纯英文的吗?

在编程方面,它是较大的周边部分,可以对当前工作单元的行为产生任何影响。 例如使用的运行环境,环境variables,实例variables,局部variables,其他类的状态,当前环境的状态等等。

在一些API中,你可以在接口/类中看到这个名字,例如Servlet的ServletContext ,JSF的FacesContext ,Spring的ApplicationContext ,Android的Context ,JNDI的InitialContext等。它们通常都遵循Facade Pattern ,它抽象出最终用户不需要的环境细节在单个界面/类中了解。

在Android中, ContextActivityServiceApplication等基类。 一个Context对象是你的基本Android系统的门户,包括资源,系统服务(例如位置和通知)和Intent消息总线。 由于您的主要组件( ActivityService )从Contextinheritance,因此在需要时通常可以使用Context

上下文表示您的环境。 它代表了你所在系统的状态。

例如,在Java中的Web编程中,您有一个Request和一个Response。 这些被传递给Servlet的服务方法。

Servlet的一个属性是ServletConfig,并且是ServletContext。

ServletContext用于告诉Servlet Servlet所在的Container。

所以,ServletContext表示其容器内的servlet环境。

同样,在Java EE中,您有EBJContext,元素(如会话bean)可以访问它们的容器。

这是今天在Java中使用的两个上下文的例子。

编辑 –

你提到Android。

看看这里: http : //developer.android.com/reference/android/content/Context.html

您可以看到这个Context为您提供关于Android应用程序的部署位置和可用内容的各种信息。

简单地说,Java上下文意味着Java native方法。

在下一个Java代码中,两行代码需要上下文: // (1)// (2)

 import java.io.*; public class Runner{ public static void main(String[] args) throws IOException { // (1) File file = new File("D:/text.txt"); String text = ""; BufferedReader reader = new BufferedReader(new FileReader(file)); String line; while ((line = reader.readLine()) != null){ // (2) text += line; } System.out.println(text); } } 

(1)需要上下文,因为被Java本地方法调用 private native void java.lang.Thread.start0();

(2) reader.readLine()需要上下文,因为调用Java本地方法 public static native void java.lang.System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

PS。

这就是BalusC对模式Facade更严格的说法。

既然你大写这个词,我假设你指的是接口javax.naming.Context 。 一些类实现了这个接口,并且在最简单的描述中,它(一般地)是一组名称/对象对。