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

这个问题在这里已经有了答案:

  • Android上的“上下文”是什么? 29个答案

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

    在某些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/91353.html

    上一篇: What exactly is a Context in Java?

    下一篇: How do I create 256 bit self