Java中的上下文究竟是什么?
这个问题在这里已经有了答案:
在编程方面,它是较大的周边部分,可以对当前工作单元的行为产生任何影响。 例如使用的运行环境,环境变量,实例变量,局部变量,其他类的状态,当前环境的状态等等。
在某些API中,你可以在界面/类中看到该名称,例如Servlet的ServletContext
,JSF的FacesContext
,Spring的ApplicationContext
,Android的Context
,JNDI的InitialContext
等。它们通常遵循Facade Pattern ,它抽象出最终用户不需要的环境细节在单个界面/课程中了解。
上下文代表你的环境。 它代表了你所在系统的状态。
例如,在Java中的Web编程中,您有一个请求和一个响应。 这些被传递给Servlet的服务方法。
Servlet的一个属性是ServletConfig,并且它是一个ServletContext。
ServletContext用于告诉Servlet Servlet所在的Container。
所以,ServletContext表示其容器内的servlet环境。
同样,在Java EE中,您有EBJContexts元素(如会话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说的。
链接地址: http://www.djcxy.com/p/16221.html